- Nepieciešams materiāls
- Ķēdes shēma
- 128 * 64 grafiskais LCD
- Attēla konvertēšana sešstūra kodā:
- Arduino kods un darba skaidrojums
Elektroniskajos projektos tiek izmantoti daudz veidu LCD. Mēs jau esam izmantojuši 16X2 LCD daudzos projektos, kā arī izmantojām TFT LCD ar Arduino. Jūs varat atrast visu mūsu ar 16X2 LCD saistīto projektu, izmantojot šo saiti, ieskaitot saskarni ar 8051, AVR, Arduino un daudz ko citu.
ST9720 Grafiskais LCD ir pilnīgi atšķirīgs no parastā LCD. Parastais LCD var izdrukāt tikai vienkāršu tekstu vai ciparus fiksētā izmērā. Bet grafiskajos LCD displejos mums ir 128 * 64, kas ir vienāds ar 8192 punktiem vai 8192/8 = 1024 pikseļiem, tāpēc neatkarīgi no rakstzīmēm šajā GLCD var parādīt jebkuru grafisko attēlu.
Mēs jau saskarējāmies GLCD ar 8051, šodien mēs saskarnēsim grafisko LCD ar Arduino, lai tajā parādītu tekstu un attēlus.
Nepieciešams materiāls
- Arduino UNO
- 128 * 64 grafiskais LCD ST9720
- Potenciometrs-10k
- Savienojošie vadi
- Maizes dēlis
Ķēdes shēma
128 * 64 grafiskais LCD
Šim grafiskajam LCD ir mazs enerģijas patēriņš, un tas ir piemērots arī portatīvām ierīcēm ar akumulatora enerģiju. Tam ir plašs darba sprieguma diapazons no 2.2v līdz 5.5v, un tas atbalsta gan sērijveida, gan 8/4-bitu paralēlo komunikāciju, un tam ir ST7290 LCD kontroliera / draivera IC. Saskarnes sakaru režīmu var pārslēgt starp paralēlu un seriālu, izmantojot PSB PIN 15. Šim grafiskajam LCD ir automātiska ieslēgšanas un atiestatīšanas funkcija, un to var viegli vadīt ar tādu MCU kā 8051, AVR, ARM, Arduino un Raspberry Pi.
Lai iegūtu detalizētu informāciju par ST7290 128 * 64 grafisko LCD, varat apskatīt datu lapu
Piespraudes konfigurācija
PIN Nr. |
Piespraudes nosaukums |
Apraksts |
1 |
Gnd |
Zemes terminālis |
2 |
Vcc |
Ievades barošanas spriegums (2,7v līdz 5,5v) |
3 |
Vo |
LCD kontrasts |
4 |
RS |
Reģistrēties Atlasiet RS = 0: instrukciju reģistrs RS = 1: Datu reģistrs |
5 |
R / W |
Lasīšanas / rakstīšanas vadība |
6 |
E |
Iespējot |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Data Pins (izmanto paralēli 8 / 4bit sakaru režīmā) |
15 |
PSB |
Saskarnes izvēle: Zems (0) sērijveida sakaru režīmam Augsts (1) 8/4 bitu paralēlās kopnes režīmam. |
16 |
NC |
Nav savienots |
17 |
RST |
Atiestatīt tapu |
18 |
Vout |
LCD sprieguma dubultotāja izeja. VOUT ≦ 7V. |
19 |
BLA |
Fona apgaismojums pozitīvs |
20 |
BLK |
Fona apgaismojums Negatīva padeve |
Pieteikumi
- Rūpnieciskā ierīce
- Iegultās sistēmas
- Drošība
- Medicīniskā
- Rokas aprīkojums
Attēla konvertēšana sešstūra kodā:
Lai parādītu jebkuru attēlu grafiskajā LCD, mums ir nepieciešams šī attēla HEX kods, tāpēc šeit ir daži soļi, lai attēlu pārveidotu par HEX kodu. Pirms tam jums jāpārliecinās, ka attēla izmērs nedrīkst pārsniegt 128 * 64.
1. solis: samaziniet parastā attēla izmēru līdz 128 * 64 vai mazāk, ko varat izdarīt, izmantojot jebkuru attēlu rediģēšanas programmatūru, piemēram, MS paint.
Kā parādīts attēlā iepriekš, mēs iestatām attēla platumu un augstumu uz 128 * 64.
2. solis: Tad attēls jāsaglabā formātā “image_name .bmp ”.
Atlasiet formātu, kas parādīts augšējā attēlā, un saglabājiet failu tālākam procesam.
3. solis: Pēc tā saglabāšanas “.bmp” formātā attēls drukāšanai jāpārvērš par heksu kodu. Šim nolūkam es izmantoju programmatūru ar nosaukumu GIMP 2, kas pārveido Bmp failu hex kodā.
Kā parādīts attēlā iepriekš, GIMP 2 programmatūrā mēs atvērām “.bmp” formāta failu.
4. solis: Pēc programmatūras lejupielādes atveriet BMP formāta attēla failu, kuru vēlaties izdrukāt, un pēc tam saglabājiet to formātā “ .xbm ” (X BitMap). Pēc tā saglabāšanas atveriet šo failu, izmantojot Notepad, un jūs saņemsiet attēla Hex kodu.
Kā parādīts zemāk esošajā attēlā, izvēlieties opciju Eksportēt, lai saglabātu failu xbm formātā:
Atlasiet formātu, kas parādīts zemāk esošajā attēlā, un eksportējiet attēla failu.
Pēc faila eksportēšanas jūs iegūsiet failu “.xbm” formātā. Atveriet xbm failu, izmantojot Notepad, un jūs saņemsiet HEX kodu, kā parādīts attēlā zemāk.
Arduino kods un darba skaidrojums
Lai saskarnes grafisko LCD savienotu ar Arduino, vispirms mums jānosaka bibliotēka, ko izmanto grafiskajam LCD. Arduino nav šīs bibliotēkas, jums ir jāielādē un jāinstalē šī bibliotēka no šīs saites. Tad jūs varat iekļaut bibliotēku, piemēram, zemāk:
#include "U8glib.h"
Šeit ' u8g (10) ' nosaka grafiskā LCD RS (Register Select) kontakta savienojumu ar Arduino UNO 10. kontaktu. RS tapa, kas tiek izmantota kā “mikroshēmas izvēle” un “Reģistrēt atlasi”, ja to izmanto attiecīgi sērijveida un paralēlajā režīmā. Tātad, mēs izmantojam sērijveida režīmu un RS pin, kas iestatīts uz High (1), lai iespējotu mikroshēmu, un Low (0), ja mikroshēma ir atspējota.
U8GLIB_ST7920_128X64_4X u8g (10);
Tagad, lai drukātu attēlu, mums ir jāievieto attēla Hex kods zemāk esošajā kodā. Jūs varat izdrukāt jebkuru citu attēlu, kas jums jādara, tikai jāielīmē attēla sešstūra kods.
const uint8_t rook_bitmap U8G_PROGMEM = {Šeit ielīmējiet attēla Hex kodu };
Šī raksta beigās pārbaudiet pilnu Arduino kodu.
Attēla drukāšanai tiek izmantota zemāk redzamā funkcija, drukāšanai izmantotā komanda ir “u8g.drawXBMP (x, y, attēla platums, attēla augstums)” . Kur X un Y ir attēla sākuma pozīcija LCD ekrānā, un mums ir arī jāuzraksta attēla izmērs, kas nedrīkst pārsniegt 128 * 64, un pēdējā argumentā mēs esam izsaukuši funkciju, kurā ievietojām attēla HEX kodu.
void picture (void) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Mēs esam izveidojuši divas funkcijas, ko sauc par “draw” un “next”, kurās kods satura drukāšanai tiek ierakstīts, izmantojot komandu “u8g.drawStr (x, y,” abcd ”). Šeit x un y ir LCD displeja vieta, kur tiks drukāts saturs, un ' abcd ' ir drukājamais saturs.
void draw (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "CIRCUIT DIGEST"); } void next (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, "Saskarne"); u8g.drawStr (0, 35, "Grafiskais LCD"); u8g.drawStr (0, 55, "ar Arduino"); }
clearLCD () funkcija ir paredzēta, lai notīrītu LCD, vienkārši piešķirot funkcijai nulles vērtību.
void clearLCD () {u8g.firstPage (); do {} while (u8g.nextPage ()); }
Pikseļa, krāsas un intensitātes iestatīšana, izmantojot zemāk esošo kodu
void setup (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // white} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // maksimālā intensitāte} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // pixel on} cits if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
Neesošu cilpa turpina drukāt tekstu un attēlu, pēc tam, kad attiecīgajā kavēšanos. Pirmkārt, mēs esam izdrukājuši “Circuit Digest”, izmantojot zīmēšanas funkciju, un pēc 2 sek. ar nokavēšanos mēs notīrījām ekrānu, izmantojot clearLCD funkciju, un pēc tam izdrukājām “ Interfacing Graphical LCD using Arduino ”, izmantojot nākamo funkciju. Tad attēls ir izdrukāts, izmantojot attēla () funkciju, kas ekrānā paliks 3 sekundes. Tas turpināsies līdz strāvas padeves ieslēgšanai.
void loop (void) {u8g.firstPage (); do {izdarīt (); } while (u8g.nextPage ()); kavēšanās (2000); clearLCD (); u8g.firstPage (); darīt {nākamo (); } while (u8g.nextPage ()); kavēšanās (2000); clearLCD (); u8g.firstPage (); do {attēls (); } while (u8g.nextPage ()); kavēšanās (3000); clearLCD (); kavēšanās (50); }
Pēc Arduino programmēšanas, izmantojot norādīto kodu, pievienojiet grafisko LCD saskaņā ar shēmu ar Arduino un piegādājiet Arduino, izmantojot adapteri vai USB. Jūs saņemsiet grafiskajā LCD ekrānā drukātu saturu un attēlu, kā parādīts zemāk redzamajā video.
Pārbaudiet arī Nokia 5110 grafiskā LCD saskarni ar Arduino,