- Material krävs
- Kretsschema
- 128 * 64 Grafisk LCD
- Konvertera bild till hexkod:
- Arduino-kod och arbetsförklaring
Det finns många typer av LCD-skärmar som används i elektroniska projekt. Vi har redan använt 16X2 LCD i många av våra projekt och även använt TFT LCD med Arduino. Du hittar hela vårt 16X2 LCD-relaterade projekt genom att följa den här länken, inklusive gränssnitt med 8051, AVR, Arduino och många fler.
Den ST9720 grafiska LCD är helt annorlunda från det vanliga LCD-skärmar. Vanlig LCD kan bara skriva ut enkel text eller siffror inom en fast storlek. Men i grafiska LCD-skärmar har vi 128 * 64 vilket är lika med 8192 punkter eller 8192/8 = 1024 pixlar, så förutom tecken kan vi visa vilken grafisk bild som helst på denna GLCD.
Vi har redan gränssnitt GLCD med 8051, idag kommer vi gränssnitt Grafisk LCD med Arduino för att visa text och bilder på den.
Material krävs
- Arduino UNO
- 128 * 64 Grafisk LCD ST9720
- Potentiometer-10k
- Anslutande ledningar
- Bakbord
Kretsschema
128 * 64 Grafisk LCD
Denna grafiska LCD-skärm har låg strömförbrukning och är också lämplig för bärbar enhet med batteriström. Den har ett brett driftsspänningsområde 2,2 v till 5,5 v och stöder både seriell och 8/4-bitars parallellkommunikation och levereras med ST7290 LCD-kontroller / drivrutins-IC. Gränssnittskommunikationsläget kan växlas mellan parallellt och seriellt med PSB PIN 15. Denna grafiska LCD-skärm har en automatisk återställningsfunktion och kan enkelt styras av MCU som 8051, AVR, ARM, Arduino och Raspberry Pi.
Du kan gå igenom databladet för detaljerad information om ST7290 128 * 64 grafisk LCD
Pin-konfiguration
Stift nr. |
Pin-namn |
Beskrivning |
1 |
Gnd |
Markterminal |
2 |
Vcc |
Ingångsspänning (2,7V till 5,5V) |
3 |
Vo |
LCD-kontrast |
4 |
RS |
Registrera Välj RS = 0: Instruktionsregister RS = 1: Dataregister |
5 |
R / W |
Läs- / skrivkontroll |
6 |
E |
Gör det möjligt |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Datapinnen (används i parallellt 8/4-bitars kommunikationsläge) |
15 |
PSB |
Gränssnittsval: Låg (0) för seriekommunikationsläge Hög (1) för 8/4-bitars parallellbussläge. |
16 |
NC |
Ej ansluten |
17 |
RST |
Återställ stift |
18 |
Vout |
LCD-spänningsdubbelutgång. VOUT ≦ 7V. |
19 |
BLA |
Positiv tillgång på bakgrundsbelysning |
20 |
BLK |
Bakgrundsbelysning Negativ leverans |
Applikationer
- Industriell anordning
- Inbyggda system
- säkerhet
- Medicinsk
- Handhållen utrustning
Konvertera bild till hexkod:
För att visa någon bild på grafisk LCD behöver vi HEX-koden för den bilden, så här är några steg för att konvertera bild till HEX-kod. Innan det måste du se till att bildens storlek inte får överstiga 128 * 64.
Steg 1: Minska storleken på den normala bilden till 128 * 64 eller mindre, vilket du kan göra med alla bildredigeringsprogram som MS-färg.
Som visas i bilden ovan ställer vi in bredden och höjden på bilden till 128 * 64.
Steg 2: Då måste du spara bilden i “image_name .bmp ” -format.
Välj det format som visas i bilden ovan och spara filen för vidare process.
Steg 3: När du har sparat den i “.bmp” -format måste du konvertera bilden till hexkod för utskrift. För detta använder jag programvaran som heter GIMP 2, som konverterar Bmp-fil till hex-kod.
Som visas i bilden ovan öppnade vi formatet ".bmp" i GIMP 2-programvaran.
Steg-4: Efter att ladda ner mjukvaran, öppna BMP-format bildfil som du vill skriva ut och sedan spara som den i ” .xbm ” (X bitmap) format. När du har sparat den öppnar du filen med Notepad och du får bildens Hex-kod.
Som visas på bilden nedan väljer du alternativet Export för att spara filen i xbm- format:
Välj det format som visas på bilden nedan och exportera bildfilen.
Efter att ha exporterat filen får du filen i “.xbm” -format. Öppna xbm- filen med Notepad och du får HEX-koden som visas i bilden nedan.
Arduino-kod och arbetsförklaring
För att ansluta grafisk LCD med Arduino måste vi först definiera det bibliotek som används för den grafiska LCD-skärmen. Arduino har inte detta bibliotek, du måste ladda ner och installera det här biblioteket från den här länken. Sedan kan du inkludera biblioteket som nedan:
# inkludera "U8glib.h"
Här definierar ' u8g (10) ' anslutningen av RS-stift (Register Select) på grafisk LCD med den 10: e stiftet i Arduino UNO. RS-stift används som 'chip select' och 'Register Select' när det används i serie- och parallelläge. Så vi använder det seriella läget och RS-stiftet inställt på Hög (1) för chipaktiverad och Låg (0) för chipinaktiverad.
U8GLIB_ST7920_128X64_4X u8g (10);
Nu, för att skriva ut bilden måste vi placera Hex-kod av bilden i nedanstående kod. Du kan skriva ut någon annan bild allt du behöver göra är att klistra in bildens hexkod.
const uint8_t rook_bitmap U8G_PROGMEM = { Klistra in Hex-koden för bilden här };
Kontrollera hela Arduino-koden i slutet av denna artikel.
Nedanstående funktion används för utskrift av bild, kommandot som används för utskrift är “u8g.drawXBMP (x, y, bildens bredd, höjd på bilden)” . Där, X och Y är bildens startposition på LCD och vi måste också skriva bildens storlek som inte ska överstiga 128 * 64 och i slutargument har vi kallat funktion där vi placerade HEX-bildkoden.
ogiltig bild (ogiltig) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Vi har gjort två funktioner som kallas "draw" och "next", där koden för att skriva ut innehållet skrivs med kommandot "u8g.drawStr (x, y," abcd ")". Här är x och y den position i LCD-skärmen där innehållet kommer att skrivas ut och ' abcd ' är det innehåll som ska skrivas ut.
ogiltig dragning (ogiltig) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "CIRCUIT DIGEST"); } ogiltig nästa (ogiltig) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, "gränssnitt"); u8g.drawStr (0, 35, "Grafisk LCD"); u8g.drawStr (0, 55, "med Arduino"); }
clearLCD () -funktionen är gjord för att rensa LCD-skärmen genom att bara ge nullvärdet till funktionen.
ogiltig clearLCD () {u8g.firstPage (); gör {} medan (u8g.nextPage ()); }
Ställa in pixel, färg och intensitet med hjälp av koden nedan
ogiltig installation (ogiltig) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // vit} annat om (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // max intensitet} annat om (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // pixel på} annat om (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
Det tomrum slingan fortsätter att skriva ut text och bild efter den givna fördröjningen. För det första har vi tryckt ”Circuit Digest” med hjälp av dragfunktion och efter 2 sek. av fördröjning rensade vi skärmen med clearLCD- funktionen och skrev sedan ut " Interfacing Graphical LCD using Arduino " med nästa funktion. Sedan har vi skrivit ut bilden med hjälp av bild () -funktionen som kommer att förbli på skärmen i 3 sekunder. Detta fortsätter tills strömförsörjningen är påslagen.
void loop (void) {u8g.firstPage (); gör {draw (); } medan (u8g.nextPage ()); fördröjning (2000); clearLCD (); u8g.firstPage (); gör {nästa (); } medan (u8g.nextPage ()); fördröjning (2000); clearLCD (); u8g.firstPage (); gör {bild (); } medan (u8g.nextPage ()); fördröjning (3000); clearLCD (); fördröjning (50); }
Efter programmering av Arduino med den angivna koden, anslut den grafiska LCD-skärmen enligt kretsschemat till Arduino och mata Arduino med Adapter eller USB. Du får innehåll och bild skrivas ut på den grafiska LCD-skärmen, som visas i videon nedan.
Kontrollera även gränssnittet Nokia 5110 Grafisk LCD med Arduino,