- Kinakailangan na Materyal
- Diagram ng Circuit
- 128 * 64 Graphical LCD
- Pag-convert ng Imahe sa Hex Code:
- Arduino Code at Paggawa ng Paliwanag
Maraming uri ng LCD na ginagamit sa Mga Elektronikong Proyekto. Gumamit na kami ng 16X2 LCD sa marami sa aming mga proyekto at gumamit din ng TFT LCD kasama ng Arduino. Maaari mong makita ang aming buong proyekto na nauugnay sa 16X2 LCD sa pamamagitan ng pagsunod sa link na ito, kasama ang interfacing sa 8051, AVR, Arduino at marami pa.
Ang ST9720 Graphical LCD ay ganap na naiiba mula sa Ordinary LCDs. Ang ordinaryong LCD ay maaari lamang mag-print ng simpleng teksto o mga numero sa loob ng isang nakapirming laki. Ngunit sa mga graphic na LCD mayroon kaming 128 * 64 na katumbas ng 8192 tuldok o 8192/8 = 1024 na mga pixel, kaya bukod sa character, maaari nating ipakita ang anumang Larawan ng Grapiko sa GLCD na ito.
Na-interfaced na namin ang GLCD sa 8051, ngayon ay makikipag- interface kami sa Graphical LCD sa Arduino upang ipakita ang teksto at mga imahe dito.
Kinakailangan na Materyal
- Arduino UNO
- 128 * 64 Graphical LCD ST9720
- Potensyomiter-10k
- Mga kumokonekta na mga wire
- Breadboard
Diagram ng Circuit
128 * 64 Graphical LCD
Ang Graphical LCD na ito ay nagkakaroon ng mababang pagkonsumo ng kuryente at angkop din para sa aparato na portable power ng baterya. Mayroon itong malawak na saklaw ng boltahe ng operating 2.2v hanggang 5.5v at sinusuportahan ang parehong serial at 8/4-bit parallel na komunikasyon at may ST7290 LCD controller / driver IC. Ang interface mode ng komunikasyon ay maaaring mailipat sa pagitan ng parallel at serial gamit ang PSB PIN 15. Ang graphic na LCD na ito ay may awtomatikong kapangyarihan sa pag-reset ng pagpapaandar at maaaring madaling kontrolin ng MCU tulad ng 8051, AVR, ARM, Arduino at Raspberry Pi.
Maaari kang dumaan sa datasheet para sa detalyadong impormasyon tungkol sa ST7290 128 * 64 Graphical LCD
I-configure ang Pin
Pin No. |
Pangalan ng Pin |
Paglalarawan |
1 |
Gnd |
Ground terminal |
2 |
Vcc |
Input boltahe ng suplay (2.7v hanggang 5.5v) |
3 |
Vo |
Pagkakaiba ng LCD |
4 |
Ang RS |
Magrehistro Piliin RS = 0: Rehistro sa Tagubilin RS = 1: Rehistro ng Data |
5 |
R / W |
Pagkontrol sa Basahin / Isulat |
6 |
E |
Paganahin |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Mga Data Pins (ginamit sa parallel 8 / 4bit na mode ng komunikasyon) |
15 |
PSB |
Pagpili ng interface: Mababang (0) para sa serial mode ng komunikasyon Mataas (1) para sa 8/4-bit parallel bus mode. |
16 |
NC |
Hindi konektado |
17 |
RST |
I-reset ang Pin |
18 |
Vout |
Output ng LCD voltage doble. VOUT ≦ 7V. |
19 |
BLA |
Positibong supply ng backlight |
20 |
BLK |
Negatibong supply ng Backlight |
Mga Aplikasyon
- Pang-industriya na aparato
- Mga naka-embed na Sistema
- Seguridad
- Medikal
- Kagamitan na hinawakan ng kamay
Pag-convert ng Imahe sa Hex Code:
Upang maipakita ang anumang imahe sa Graphical LCD, kailangan namin ng HEX code ng imaheng iyon, kaya narito ang ilang mga hakbang upang mai-convert ang Imahe sa HEX code. Bago ito kailangan mong tiyakin na ang laki ng imahe ay hindi dapat lumagpas sa 128 * 64.
Hakbang-1: Bawasan ang laki ng normal na imahe sa 128 * 64 o mas kaunti, na maaari mong gawin gamit ang anumang software sa pag-edit ng imahe tulad ng pinturang MS.
Tulad ng ipinakita sa larawan sa itaas, itinatakda namin ang lapad at taas ng imahe sa 128 * 64.
Hakbang-2: Pagkatapos ay kailangan mong i-save ang imahe sa format na "image_name .bmp ".
Piliin ang format na ipinakita sa imahe sa itaas at i-save ang file para sa karagdagang proseso.
Hakbang-3: Pagkatapos i-save ito sa format na ".bmp" kailangan mong i- convert ang imahe sa hex code para sa pag-print. Para sa mga ito, gumagamit ako ng software na pinangalanang GIMP 2, na nagko-convert ng Bmp file sa hex code.
Tulad ng ipinakita sa imahe sa itaas, binuksan namin ang format na ".bmp" na file sa GIMP 2 software.
Step-4: Pagkatapos ng pag-download ng software, buksan ang BMP format ng file ng imahe na kung saan nais mong i-print at pagkatapos ay i-save bilang mga ito sa " .xbm " (X bitmap) na format. Matapos i-save ito buksan ang file na iyon gamit ang Notepad at makukuha mo ang Hex code ng imahe.
Tulad ng ipinakita sa larawan sa ibaba, piliin ang pagpipiliang I-export upang mai-save ang file sa format na xbm :
Piliin ang format na ipinapakita sa larawan sa ibaba at i-export ang file ng imahe.
Pagkatapos i-export ang file, makukuha mo ang file sa format na ".xbm". Buksan ang xbm file gamit ang Notepad at makukuha mo ang HEX code tulad ng ipinakita sa larawan sa ibaba.
Arduino Code at Paggawa ng Paliwanag
Upang mai-interface ang grapikong LCD sa Arduino, kailangan muna nating tukuyin ang library na ginamit para sa Graphical LCD. Ang Arduino ay walang library na ito, kailangan mong i-download at mai-install ang library na ito mula sa link na ito. Pagkatapos ay maaari mong isama ang library tulad ng sa ibaba:
# isama ang "U8glib.h"
Dito, tinutukoy ng ' u8g (10) ' ang koneksyon ng RS (Select Select) na pin ng grapikong LCD na may ika-10 na pin ng Arduino UNO. Ginamit ang RS pin bilang 'chip select' at 'Rehistro Piliin' kapag ginamit sa Serial at Parallel mode ayon sa pagkakabanggit. Kaya, ginagamit namin ang serial mode at ang RS pin na nakatakda sa Mataas (1) para sa chip na pinagana at Mababa (0) para sa chip na hindi pinagana.
U8GLIB_ST7920_128X64_4X u8g (10);
Ngayon, para sa pag-print ng imahe kailangan namin upang ilagay ang Hex code ng imahe sa ibaba code. Maaari mong i-print ang anumang iba pang imahe na kailangan mo lang gawin ay i-paste ang hex code ng imahe.
const uint8_t rook_bitmap U8G_PROGMEM = { Idikit ang Hex code ng imahe dito };
Suriin ang Buong Arduino Code sa pagtatapos ng Artikulo na ito.
Ang pagpapaandar sa ibaba ay ginagamit para sa pag-print ng imahe, ang utos na ginamit para sa pag-print ay "u8g.drawXBMP (x, y, lapad ng imahe, taas ng imahe)" . Kung saan, ang X at Y ay ang panimulang posisyon ng imahe sa LCD at kailangan din naming isulat ang laki ng imahe na hindi dapat lumagpas sa 128 * 64 at sa panghuling argumento ay tinawag namin ang pagpapaandar kung saan inilagay namin ang HEX code ng imahe.
walang bisa na larawan (walang bisa) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Gumawa kami ng dalawang pagpapaandar na tinatawag na "draw" at "susunod", kung saan ang code para sa pag-print ng nilalaman ay nakasulat gamit ang command na "u8g.drawStr (x, y," abcd ")". Dito, x at y ang posisyon sa LCD kung saan mai-print ang nilalaman at ' abcd ' ang nilalaman na mai-print.
walang bisa draw (void) {u8g.setFont (u8g_ font_unifont); u8g.drawStr (07, 35, "CIRCUIT DIGEST"); } walang bisa sa susunod (walang bisa) {u8g.setFont (u8g_ font_unifont); u8g.drawStr (0, 15, "Interfacing"); u8g.drawStr (0, 35, "Graphical LCD"); u8g.drawStr (0, 55, "kasama si Arduino"); }
Ang function ng clearLCD () ay ginawa para sa pag- clear ng LCD sa pamamagitan lamang ng pagbibigay ng null na halaga sa pagpapaandar.
void clearLCD () {u8g.firstPage (); gawin {} habang (u8g.nextPage ()); }
Pagse-set up ng pixel, kulay at intensity sa pamamagitan ng paggamit ng code sa ibaba
void setup (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // white} iba kung (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // max intensity} kung iba pa (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // pixel on} pa kung (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
Ang void loop ay patuloy na nai- print ang teksto at imahe pagkatapos ng ibinigay na pagkaantala. Una, nai-print namin ang "Circuit Digest" gamit ang paggana ng pagguhit at pagkatapos ng 2sec. ng pagkaantala na-clear namin ang screen gamit ang clearLCD function at pagkatapos ay i-print ang " Interfacing Graphical LCD gamit ang Arduino " gamit ang susunod na pag- andar. Pagkatapos ay nai-print namin ang imahe gamit ang function na larawan () na mananatili sa screen ng 3 segundo. Magpapatuloy ito hanggang sa nakabukas ang suplay ng kuryente.
void loop (void) {u8g.firstPage (); gawin ang {gumuhit (); } habang (u8g.nextPage ()); pagkaantala (2000); clearLCD (); u8g.firstPage (); gawin ang {susunod (); } habang (u8g.nextPage ()); pagkaantala (2000); clearLCD (); u8g.firstPage (); gawin ang {larawan (); } habang (u8g.nextPage ()); pagkaantala (3000); clearLCD (); antala (50); }
Matapos ma-program ang Arduino gamit ang naibigay na code, ikonekta ang Graphical LCD ayon sa circuit diagram sa Arduino at ibigay ang Arduino gamit ang Adapter o USB. Ikaw, makakakuha ng nilalaman at imaheng nakalimbag sa Graphical LCD, tulad ng ipinakita sa video na ibinigay sa ibaba.
Suriin din ang pag-interfaces ng Nokia 5110 Graphical LCD sa Arduino,