danske karakterer på Lcd



Relaterede dokumenter
LCD intro. LCD Character display-intro. Redigeret 4/6-2019

LCD Character display Intro

Programmeringskursus Kursusaften 3. Programmering for begyndere Brug af Arduino. Display. Kursusaften 3 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Indholdsfortegnelse Indledning... 2 Projektbeskrivelse... 2 Dette bruger vi i projektet... 2 Komponenter... 2 Software... 2 Kalibrering...

Arduinostyret klimaanlæg Afsluttende projekt programmering C

Start på Arduino og programmering

Arduinostyret klimaanlæg Afsluttende projekt informationsteknologi B

Analoge indgange og A/D konvertering. Analoge udgange

Fra programmering til mikroprocessor

Internt interrupt - Arduino

LCD Modul. Ved Power-on skal LCD-displayet initieres, og evt. indstilles til 4-bit kommunikation.

// inkluder library kode: #include <LiquidCrystal.h> #include <Serial.h> // Initialiser display LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

Brug af digitale ind og udgange

RF-ID Kompendium. RF-ID & Radio control. Dette kompendium indeholder materiale om RF-ID. Materialet er meget foreløbigt.

Arduino Programmering

I 2 C BUSSEN KØRER MED ARDUINO IND I FORÅRET

Microcontroller, Arduino

Af: OZ7EC Erik Christiansen Chiptemperatur med Arduino

// Definition af porte og funktioner

Arduino Programmering

Arduino opgaver. I dette dokument er der inspiration til en række programmerings-opgaver til Arduino.

Lektion 6 / Analog Arduino

Microcontroller, Arduino

Interrupt - Arduino. Programmering for begyndere Brug af Arduino. Kursusaften 6 EDR Hillerød Knud Krogsgaard Jensen / OZ1QK

Demonstration af transitmetoden

Arduino opgaver Teknologi

Dokumentation af UR Med børnetimer til TV-visning

Dette korte foredrag er opdelt i 3 dele: 1. ARDUINO i flere versioner, hvad er det? 2. DEMO-video 3. Din fremtidige Oscillator, SI5351A 4.

Arduino. Processoren på kittet er fra Atmel, af AVR-familien, og hedder Atmega 328.

Indholdsfortegnelse :

Løkkestrukturer mm. Trykknap: Button, Se eksempler / Digital / Button. Decision: If: Version 05/ Arduino, Loops, løkker, programfunktioner mm.

Intro til AVR. Mads Pedersen, OZ6HR

Embedded controller, almen.

Der er derfor, for at alle kan sende, kun tilladt, at sende intermitterende. Altså korte pakker. ( Dette skal dog verificeres!!)

Arduino opgaver. I dette dokument er der inspiration til en række programmerings-opgaver til Arduino.

Automatisk varmeregulering

TinkerCad - Arduino simulator

Hvorfor & Hvordan lære Elever At programmere Arduinoer

Arduino opgaver. For at få hjælp til at lave opgaverne, brug Arduino-kompendiet, eller søg på nettet!

Lidt om Bits & Bytes. Talsystemer

Debug-vinduet. // run once, when the sketch starts. Serial.println("Lets calculate a hypoteneuse"); // send data til // Debugvinduet

Delay(100); Man skriver fx blot delay(100); for at få Microcontrolleren til at vente 100 ms inden programmet fortsætter.

Arduino kursus lektion 3:

Programmering i C Intro og grundlæggende C 5. marts 2007

Hvorfor & Hvordan lære Elever At programmere Arduinoer

Under 'Microsoft Block Editor', klik 'New project' for at åbne block editor-værktøjet.

Arduino opgaver Teknologi

Programmering i C. Lektion december 2008

Andreas Nordbek & Kristoffer Skude Jensen. DMX Styring Side 1 af 15

INSTRUKTIONSMANUAL QHW+

Formål: Indledning: Notationer

Opgaver - Tele - ISDN-tjenester - evaluering...3

Vær klar over, at man sagtens kan bruge en Arduino Uno V3 i stedet for kontrolleren, beskrevet herunder.

Solid Edge 2D Drafting

Netværk repetition. - lidt om talsystemer, Bits og Bytes! Netteknik 1

Merging og Hashing (del I)

Programmering C RTG

Styrecomputer til high end CD-afspiller Kristoffer Jørgensen

Micro:Bit Indbygget sensorer og Monk Makes sensorbord

Indholdsfortegnelse :

REDCAPS DATADICTIONARY. Ekport og overblik over datadictionary Redigering af instrumenter via datadictionary Import a datadictionary

Talsystemer I V X L C D M Hvad betyder halvanden??. Kan man også sige Halvtredie???

Betjeningsvejledning. SMS modul

EKSEMPEL PÅ ELEVOPGAVE TIL ARBEJDET MED PROGRAMMERING AF ARDUIONO MED LED BÅND

Arduino opgaver Teknologi

Alt elektronik heri er købt via og arduino udviklingssoftware er hentet fra

Lonbox PCM2001 betjeningsenhed

Introduktion til programmering. Af mikroprocessor Atmel ATmega328P i en Arduino Uno

Scope start stop Space bar kan også bruges. Start/Stop

Example sensors. Accelorometer. Simple kontakter. Lysfølsomme. modstande. RFID reader & tags. Temperaturfølsomme. Flex Sensor.

Skriftlig eksamen i Datalogi

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam) { int wmid, wmevent; programmering med

MP3 player med DMX interface.

q-værdien som skal sammenlignes med den kritiske Chi-i-Anden værdi p-værdien som skal sammenlignes med signifikansniveauet.

Vejledning til upload af regnskabsfil i Regnskab Basis

Bruger manual for SW 3.06

Port & Bitmanipulation

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Transkript:

Arduino og LCD ( 16/3-13 ) Når Arduinoen kobles til et LCD-display, kan man ikke umiddelbart skrive de danske karakterer æ, ø og å. Bag hver karakterplads i LCD-en er der en 8-bit RAM. Hvis der skrives en værdi i denne, vil den fungere som en pointer til en indbygget mønstertabel, hvis mønster vil fremkomme på LCDskærmen. Heldigvis er der overensstemmelse mellem tabellens mønstre og ASCII-tabellen. Men det betyder også, at der ikke er mønstre for de specielle danske karakterer. Men heldigvis er nogle af pladserne i mønster-karakter-tabellen i LCD-displayet udført som RAM. Dvs. at man kan uploade selvdefinerede karakterer. Der er plads til 8 stk. på adresserne 0 til 7. På nettet findes flere steder, hvor man kan få hjælp til at definere sine egne karakterer. Karaktererne defineres i et 5 x 8 matrix De skal kopieres ind i en Sketch, og uploades til LCDen i Setup() eller evt. on the fly. http://omerk.github.com/lcdchargen/ Selvdefinerede tegn kan evt. erstatte de, jeg har lavet i følgende eksempler, i linje 0 og 7. Her følger 3 eksempler: Vælg evt. én og kopier ind i en Arduino-sketch. Eksempel 1: /* LCD-displayet har en RAM-adresse knyttet til alle displayets 20 x 4 karakter-positioner. Den værdi, der skrives til pågældende RAM, refererer til en bitmønstertabel. Heldigvis er det lavet sådan, at hvis der fx skrives værdien 65 decimal, eller 41 hex, som i ASCII-tabellen svarer til et A, vil der skrives et A på displayet. I ASCII-tabellen er der ikke bit-mønstre for de danske karakterer. Men heldigvis er LCD-displayet's indbyggede Mønster-ROM udlagt som RAM på pladserne 0 til 7. Side 1 af 6

*/ Dette gør det muligt, at uploade 8 selv-definerede mønstre til LCD-en. For at lave egne karakterer, se: http://omerk.github.com/lcdchargen/ / Valle 16/3-2013 // include the library code: #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // rs, en, D4, D5, D6, D7 ) // Definer 8 karakter-mønstre byte newchar0[8] = B10000,B01000,B00100,B00010,B00001,B00010,B00100,B00000; // > byte Lae[8] = B00000,B00000,B11010,B00101,B01111,B10100,B11111,B00000; // æ byte Loe[8] = B00000,B00001,B01110,B10101,B10101,B01110,B10000,B00000; // ø byte Laa[8] = B00100,B00000,B01110,B00001,B01111,B10001,B01111,B00000; // å byte Sae[8] = B01111,B10100,B10100,B11110,B10100,B10100,B10111,B00000; // Æ byte Soe[8] = B00001,B01110,B10011,B10101,B11001,B01110,B10000,B00000; // Ø byte Saa[8] = B00100,B00000,B01110,B10001,B11111,B10001,B10001,B00000; // Å byte VT[8] = B11111,B10101,B10101,B01110,B01110,B00100,B00100,B00000; // VT // >, æ, ø, å, Æ, Ø, Å, VT er placeret i RAMadresse 0, 1, 2, 3, 4, 5, 6, 7 //---------------------- void setup() lcd.createchar(0, newchar0); // upload 8 selvdef. karakterer lcd.createchar(1, Lae); // æ lcd.createchar(2, Loe); // ø lcd.createchar(3, Laa); // å lcd.createchar(4, Sae); // Æ lcd.createchar(5, Soe); // Ø lcd.createchar(6, Saa); // Å lcd.createchar(7, VT); // VT ( ;-) lcd.clear(); // Nødvendig efter Upload lcd.begin( 20, 4 ); // //-------------------------------- void loop() ////...danske karakterer skrives som:...//// lcd.clear(); lcd.print(char(0)); // Skriver > lcd.print(char(1)); // Skriver æ lcd.print(char(2)); // skriver ø lcd.write(3); // skriver å lcd.write(4); // skriver Æ lcd.write(5); // skriver Ø Side 2 af 6

lcd.write(6); lcd.write(7); // skriver Å // skriver VT lcd.setcursor( 3, 2 ); // Flyt cursor: ( pos, lin ), 0-19, 0-3 lcd.print("s" ); // Skriv Sønderborg lcd.print( char(2)); lcd.print("nderborg"); while(1); // stop looping ; Eksempel 2: Her er upload lagt ud i en funktion /* LCD-displayet har en RAM-adresse knyttet til alle displayets 20 x 4 karakter-positioner. Den værdi, der skrives til pågældende RAM, refererer til en bitmønstertabel. Heldigvis er det lavet sådan, at hvis der fx skrives værdien 65 decimal, eller 41 hex, som i ASCII-tabellen svarer til et A, vil der skrives et A på displayet. I ASCII-tabellen er der ikke bit-mønstre for de danske karakterer. Men heldigvis er LCD-displayet's indbyggede Mønster-ROM udlagt som RAM på pladserne 0 til 7. Dette gør det muligt, at uploade 8 selv-definerede mønstre til LCD-en. Denne sketch viser hvordan For at lave egne symboler, se: http://omerk.github.com/lcdchargen/, d. 16/3-2013 */ // include the library code: #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // rs, en, D4, D5, D6, D7 ) void upload_char() // Funktion // Definer 8 karakter-mønstre byte _0[8] = B10000,B01000,B00100,B00010,B00001,B00010,B00100,B00000; // > byte Lae[8] = B00000,B00000,B11010,B00101,B01111,B10100,B11111,B00000; // æ byte Loe[8] = B00000,B00001,B01110,B10101,B10101,B01110,B10000,B00000; // ø byte Laa[8] = B00100,B00000,B01110,B00001,B01111,B10001,B01111,B00000; // å byte Sae[8] = B01111,B10100,B10100,B11110,B10100,B10100,B10111,B00000; // Æ byte Soe[8] = B00001,B01110,B10011,B10101,B11001,B01110,B10000,B00000; // Ø byte Saa[8] = B00100,B00000,B01110,B10001,B11111,B10001,B10001,B00000; // Å byte VT[8] = B11111,B10101,B10101,B01110,B01110,B00100,B00100,B00000; // VT Side 3 af 6

// >, æ, ø, å, Æ, Ø, Å, VT er placeret i RAMadresse 0, 1, 2, 3, 4, 5, 6, 7 // Upload: lcd.createchar(0, _0); // upload 8 selvdef. karakterer lcd.createchar(1, Lae); // æ lcd.createchar(2, Loe); // ø lcd.createchar(3, Laa); // å lcd.createchar(4, Sae); // Æ lcd.createchar(5, Soe); // Ø lcd.createchar(6, Saa); // Å lcd.createchar(7, VT); // VT ( ;-) lcd.clear(); void setup() upload_char(); // kald upload-funktion lcd.begin( 20, 4 ); // void loop() ////...danske karakterer skrives som:...//// lcd.print(char(0)); // Skriver > lcd.print(char(1)); // Skriver æ lcd.print(char(2)); // skriver ø lcd.write(3); // skriver å lcd.write(4); // skriver Æ lcd.write(5); // skriver Ø lcd.write(6); // skriver Å lcd.write(7); // skriver VT lcd.setcursor( 3, 2 ); lcd.write("s"); lcd.print( char(2)); lcd.print("nderborg"); // Skriv Sønderborg while(1); // stop looping ; Eksempel 3: Upload i funktion, og upload-data er lagt i et Array. /* LCD-displayet har en RAM-adresse knyttet til alle displayets 20 x 4 karakter-positioner. Den værdi, der skrives til pågældende RAM, refererer til en bitmønstertabel. Heldigvis er det lavet sådan, at hvis der fx skrives værdien 65 decimal, eller 41 hex, som i ASCII-tabellen svarer til et A, Side 4 af 6

vil der skrives et A på displayet. I ASCII-tabellen er der ikke bit-mønstre for de danske karakterer. Men heldigvis er LCD-displayet's indbyggede Mønster-ROM udlagt som RAM på pladserne 0 til 7. Dette gør det muligt, at uploade 8 selv-definerede mønstre til LCD-en. For at lave egne karakterer, se: http://omerk.github.com/lcdchargen/, d. 16/3-2013 */ // include the library code: #include <LiquidCrystal.h> // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // rs, (rw), en, D4, D5, D6, D7 ) //----------------------------------------- void upload_char() // Funktion, Upload selvdefinerede karakterer til LCD // Definer 8 karakter-mønster: byte custom[8][8] = B00000,B00000,B00000,B00000,B00000,B00000,B11111,B00000, //?? B00000,B00000,B11010,B00101,B01111,B10100,B11111,B00000, // æ B00000,B00001,B01110,B10101,B10101,B01110,B10000,B00000, // ø B00100,B00000,B01110,B00001,B01111,B10001,B01111,B00000, // å B01111,B10100,B10100,B11110,B10100,B10100,B10111,B00000, // Æ B00001,B01110,B10011,B10101,B11001,B01110,B10000,B00000, // Ø B00100,B00000,B01110,B10001,B11111,B10001,B10001,B00000, // Å B11111,B10101,B10101,B01110,B01110,B00100,B00100,B00000 // VT ; //?, æ, ø, å, Æ, Ø, Å, VT er placeret i RAMadresse 0, 1, 2, 3, 4, 5, 6, 7 for (int i=0; i < 8; i++) // Upload 8 selvdef. karakterer til LCD. lcd.createchar(i, custom[i]); lcd.clear(); // nødvendig efter upload Side 5 af 6

//--------------------------------- void setup() upload_char(); // Kald Upload-funktion lcd.begin(20,4); //--------------------------------- void loop() for (char i=0; i < 8; i++) // eksempel, skriv de 8 uploadede karakterer lcd.print(char(i)); lcd.setcursor( 3, 1 ); // cursor til plads 3, 2. linje lcd.print("htx S" ); lcd.print( char(2)); lcd.print("nderborg"); // Skriv Sønderborg lcd.setcursor( 2, 3 ); lcd.print("made by Valle"); lcd.setcursor( 17, 3 ); lcd.print(char(7)); // Skriv mønstret i RAM # 7 while(1); // stop looping http://playground.arduino.cc/code/serlcdcreatechar Bitmønster-generator: http://omerk.github.com/lcdchargen/ ;------------------------------------------------------- Side 6 af 6