- Reikalinga medžiaga
- Grandinės schema
- 128 * 64 grafinis LCD ekranas
- Vaizdo konvertavimas į šešiakampį kodą:
- „Arduino“ kodas ir darbo paaiškinimas
Elektroniniuose projektuose naudojami daugybė skystųjų kristalų ekranų tipų. Daugelyje savo projektų jau naudojome 16X2 skystųjų kristalų ekraną ir TFT skystųjų kristalų ekraną su „Arduino“. Spustelėdami šią nuorodą, galite rasti visą su 16X2 LCD susijusį projektą, įskaitant sąsają su 8051, AVR, Arduino ir daugeliu kitų.
ST9720 Grafinis LCD ekranas yra visiškai skiriasi nuo paprasto LCD. Paprastas skystųjų kristalų ekranas gali spausdinti tik fiksuoto dydžio paprastą tekstą ar skaičius. Bet grafiniuose skystųjų kristalų ekranuose turime 128 * 64, kuris yra lygus 8192 taškams arba 8192/8 = 1024 taškams, taigi, be simbolių, šiame GLCD galime rodyti bet kokį grafinį vaizdą.
Mes jau susiejome GLCD su 8051, šiandien mes sąsajos grafinį LCD su „Arduino“, kad jame būtų rodomas tekstas ir vaizdai.
Reikalinga medžiaga
- „Arduino UNO“
- 128 * 64 grafinis LCD ekranas ST9720
- Potenciometras-10k
- Jungiamieji laidai
- Bandomoji Lenta
Grandinės schema
128 * 64 grafinis LCD ekranas
Šis grafinis skystųjų kristalų ekranas sunaudoja mažai energijos, taip pat tinka nešiojamiems akumuliatoriaus prietaisams. Jis turi platų darbinės įtampos diapazoną nuo 2,2 iki 5,5 V ir palaiko tiek nuoseklųjį, tiek 8/4 bitų lygiagrečią ryšį, taip pat yra su ST7290 LCD valdikliu / tvarkyklės IC. Sąsajos ryšio režimą galima perjungti iš lygiagretaus ir nuoseklaus naudojant PSB PIN 15. Šis grafinis skystųjų kristalų ekranas turi automatinio įjungimo atstatymo funkciją ir gali būti lengvai valdomas MCU, pvz., 8051, AVR, ARM, Arduino ir Raspberry Pi.
Norėdami peržiūrėti išsamią informaciją apie ST7290 128 * 64 grafinį skystųjų kristalų ekraną, galite peržiūrėti duomenų lapą
Smeigtuko konfigūracija
Smeigtukas Nr. |
PIN vardas |
apibūdinimas |
1 |
Gnd |
Antžeminis terminalas |
2 |
Vcc |
Įvesties maitinimo įtampa (nuo 2,7 iki 5,5 v) |
3 |
Vo |
LCD kontrastas |
4 |
RS |
Registruotis Pasirinkite RS = 0: instrukcijų registras RS = 1: duomenų registras |
5 |
R / W |
Skaitymo / rašymo valdymas |
6 |
E |
Įgalinti |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
„Data Pins“ (naudojami lygiagrečiai 8 / 4bit ryšio režimu) |
15 |
PSB |
Sąsajos pasirinkimas: Žemas (0) serijinio ryšio režimui Aukštas (1), skirtas 8/4 bitų lygiagrečios magistralės režimui. |
16 |
NC |
Neprisijungęs |
17 |
RST |
Iš naujo nustatyti kaištį |
18 |
Vout |
LCD įtampos dvigubinimo išėjimas. VOUT ≦ 7V. |
19 |
BLA |
Foninis apšvietimas teigiamas tiekimas |
20 |
BLK |
Foninis apšvietimas Neigiamas tiekimas |
Programos
- Pramoninis prietaisas
- Įterptinės sistemos
- Saugumas
- Medicinos
- Rankinė įranga
Vaizdo konvertavimas į šešiakampį kodą:
Norėdami parodyti bet kokį vaizdą grafiniame skystųjų kristalų ekrane, mums reikia to vaizdo HEX kodo, todėl čia yra keli veiksmai, kaip konvertuoti vaizdą į HEX kodą. Prieš tai turite įsitikinti, kad vaizdo dydis neturėtų viršyti 128 * 64.
1 žingsnis: sumažinkite įprasto vaizdo dydį iki 128 * 64 arba mažiau, kurį galite padaryti naudodami bet kurią vaizdo redagavimo programinę įrangą, pvz., „MS paint“.
Kaip parodyta aukščiau esančiame paveikslėlyje, mes nustatome vaizdo plotį ir aukštį iki 128 * 64.
2 žingsnis: Tada turite išsaugoti vaizdą „image_name .bmp “ formatu.
Pasirinkite aukščiau esančiame paveikslėlyje rodomą formatą ir išsaugokite failą tolesniam procesui.
3 žingsnis: Išsaugoję jį „.bmp“ formatu, turite konvertuoti vaizdą į šešioliktainį kodą spausdinti. Tam aš naudoju programinę įrangą pavadinimu GIMP 2, kuri konvertuoja Bmp failą į hex kodą.
Kaip parodyta aukščiau esančiame paveikslėlyje, „GIMP 2“ programinėje įrangoje atidarėme „.bmp“ formato failą.
Žingsnis 4: Po atsisiųsti programinę įrangą, atidarykite BMP formato vaizdo failą, kurį norite spausdinti, ir tada išsaugokite kaip jį " .xbm " (X Bitmap) formatu. Išsaugoję atidarykite tą failą naudodami „Notepad“ ir gausite vaizdo Hex kodą.
Kaip parodyta paveikslėlyje žemiau, pasirinkite parinktį Eksportuoti, kad išsaugotumėte failą xbm formatu:
Pasirinkite žemiau esančiame paveikslėlyje rodomą formatą ir eksportuokite vaizdo failą.
Eksportavę failą gausite failą „.xbm“ formatu. Atidarykite „ xbm“ failą naudodami „Notepad“ ir gausite HEX kodą, kaip parodyta paveikslėlyje žemiau.
„Arduino“ kodas ir darbo paaiškinimas
Norėdami susieti grafinį LCD su „Arduino“, pirmiausia turime apibrėžti biblioteką, naudojamą grafiniam LCD. „Arduino“ neturi šios bibliotekos, turite atsisiųsti ir įdiegti šią biblioteką iš šios nuorodos. Tada galite įtraukti biblioteką, kaip nurodyta toliau:
#include „U8glib.h“
Čia „ u8g (10) “ apibrėžia grafinio LCD RS („Register Select“) kaiščio sujungimą su 10-uoju „Arduino UNO“ kaiščiu. RS kaištis naudojamas kaip „mikroschemos pasirinkimas“ ir „Registracijos pasirinkimas“, kai naudojamas atitinkamai „Serial“ ir „Parallel“ režimuose. Taigi, mes naudojame serijinį režimą ir RS kaištį, nustatytą kaip „High“ (1), jei lustas įjungtas, ir „Low“ (0), jei lustas yra išjungtas.
U8GLIB_ST7920_128X64_4X u8g (10);
Dabar, norėdami atsispausdinti vaizdą, turime įdėti vaizdo Hex kodą į žemiau esantį kodą. Galite atsispausdinti bet kurį kitą vaizdą, kurį jums tereikia įklijuoti paveikslėlio šešiakampį kodą.
const uint8_t rook_bitmap U8G_PROGMEM = {Čia įklijuokite vaizdo šešiakampį kodą };
Patikrinkite visą „Arduino“ kodą šio straipsnio pabaigoje.
Žemiau pateikta funkcija naudojama vaizdui spausdinti, komanda, naudojama spausdinti, yra „u8g.drawXBMP (x, y, vaizdo plotis, vaizdo aukštis)“ . Kur, X ir Y yra pradinė vaizdo padėtis LCD ekrane, taip pat turime parašyti vaizdo dydį, kuris neturėtų viršyti 128 * 64, ir paskutiniame argumente mes iškvietėme funkciją, į kurią įdėjome HEX paveikslėlio kodą.
negaliojantis paveikslėlis (negaliojantis) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Mes sukūrėme dvi funkcijas, vadinamas „draw“ ir „next“, kuriose turinio spausdinimo kodas rašomas naudojant komandą „u8g.drawStr (x, y,„ abcd “)“. Čia x ir y yra vieta LCD ekrane, kur bus spausdinamas turinys, o „ abcd “ yra turinys, kurį reikia spausdinti.
void draw (negaliojantis) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "CIRCUIT DIGEST"); } negaliojantis kitas (negaliojantis) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, „Sąsaja“); u8g.drawStr (0, 35, "Grafinis LCD"); u8g.drawStr (0, 55, "su Arduino"); }
funkcija „ clearLCD ()“ skirta LCD valymui tiesiog suteikiant nulinę funkcijos reikšmę.
negaliojantis clearLCD () {u8g.firstPage (); do {} while (u8g.nextPage ()); }
Pikselių, spalvų ir intensyvumo nustatymas naudojant žemiau esantį kodą
negaliojanti sąranka (negaliojanti) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // white} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // maksimalus intensyvumas} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // pikselis ant} else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
Negaliojančiu kilpa ir toliau spausdinti tekstą ir vaizdą po tikro delsimo. Pirma, mes išspausdinome „Circuit Digest“ naudodami piešimo funkciją ir po 2 sek. vėluodami išvalėme ekraną naudodami „ clearLCD“ funkciją, tada naudodami kitą funkciją išspausdinome „ Interfacing Graphical LCD using Arduino “. Tada mes atspausdinome vaizdą naudodami „ picture“ () funkciją, kuri liks ekrane 3 sekundes. Tai tęsis tol, kol bus įjungtas maitinimas.
void loop (void) {u8g.firstPage (); daryti {piešti (); } while (u8g.nextPage ()); vėlavimas (2000); clearLCD (); u8g.pirmas puslapis (); daryti {kitą (); } while (u8g.nextPage ()); vėlavimas (2000); clearLCD (); u8g.pirmas puslapis (); daryti {paveikslėlį (); } while (u8g.nextPage ()); vėlavimas (3000); clearLCD (); vėlavimas (50); }
Užprogramavę „Arduino“ naudodami nurodytą kodą, prijunkite grafinį LCD ekraną pagal grandinės schemą su „Arduino“ ir tiekite „Arduino“ naudodami adapterį arba USB. Turinį ir vaizdą atspausdinsite grafiniame LCD, kaip parodyta toliau pateiktame vaizdo įraše.
Taip pat patikrinkite sąsają su „Nokia 5110“ grafiniu LCD su „Arduino“,