- Tarvittava materiaali
- Piirikaavio
- 128 * 64 graafinen LCD
- Kuvan muuntaminen kuusikoodiksi:
- Arduino-koodi ja selitys
Elektronisissa projekteissa käytetään monenlaisia nestekidenäyttöjä. Olemme jo käyttäneet 16X2 LCD: tä monissa projekteissamme ja myös TFT LCD: tä Arduinon kanssa. Löydät koko 16X2 LCD -projektimme seuraamalla tätä linkkiä, mukaan lukien liitäntä 8051, AVR, Arduino ja monet muut.
ST9720 Graafinen LCD on täysin erilainen kuin tavallinen nestekidenäytöt. Tavallinen LCD-näyttö voi tulostaa vain yksinkertaista tekstiä tai numeroita kiinteässä koossa. Mutta graafisissa LCD-näytöissä meillä on 128 * 64, joka on yhtä suuri kuin 8192 pistettä tai 8192/8 = 1024 pikseliä, joten merkkien lisäksi voimme näyttää minkä tahansa graafisen kuvan tällä GLCD: llä.
Olemme jo liittäneet GLCD: n 8051: een, tänään liitämme graafisen LCD-näytön Arduinoon tekstin ja kuvien näyttämiseksi siinä.
Tarvittava materiaali
- Arduino UNO
- 128 * 64 graafinen LCD ST9720
- Potentiometri-10k
- Johtojen liittäminen
- Leipälauta
Piirikaavio
128 * 64 graafinen LCD
Tällä graafisella LCD-näytöllä on vähän virrankulutusta ja se soveltuu myös kannettaville akkuvirralla toimiville laitteille. Sillä on laaja käyttöjännitealue 2,2 - 5,5 V ja se tukee sekä sarjaliikennettä että 8/4-bittistä rinnakkaista tiedonsiirtoa, ja sen mukana tulee ST7290 LCD-ohjain / ohjainpiiri. Rajapintaliikennetila voidaan vaihtaa rinnakkais- ja sarjaliikenteen välillä PSB PIN 15: n avulla. Tällä graafisella LCD-näytöllä on automaattinen käynnistysnollaustoiminto ja sitä voidaan helposti ohjata MCU: lla, kuten 8051, AVR, ARM, Arduino ja Raspberry Pi.
Voit käydä läpi tietolomakkeen saadaksesi lisätietoja ST7290 128 * 64 -näytöstä
Pin-määritys
PIN-numero |
PIN-nimi |
Kuvaus |
1 |
Gnd |
Maadoituspääte |
2 |
Vcc |
Syöttöjännite (2,7 - 5,5 V) |
3 |
Vo |
LCD-kontrasti |
4 |
RS |
Rekisteröidy Valitse RS = 0: Ohjekirja RS = 1: Tietorekisteri |
5 |
R / W |
Luku- / kirjoitusohjaus |
6 |
E |
ota käyttöön |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Data Pins (käytetään rinnakkain 8 / 4bit tiedonsiirtotilassa) |
15 |
PSB |
Liitännän valinta: Matala (0) sarjaliikennetilaa varten Korkea (1) 8/4-bittiselle rinnakkaisväylän tilalle. |
16 |
NC |
Ei yhteyttä |
17 |
RST |
Nollaa tappi |
18 |
Vout |
LCD-jännitteen tuplaimen lähtö. VOUT ≦ 7V. |
19 |
BLA |
Taustavalon positiivinen syöttö |
20 |
BLK |
Taustavalo Negatiivinen syöttö |
Sovellukset
- Teollinen laite
- Sisällytetty järjestelmä
- Turvallisuus
- Lääketieteellinen
- Kädessä pidettävät laitteet
Kuvan muuntaminen kuusikoodiksi:
Tarvitsemme kuvan HEX-koodin, jotta voimme näyttää minkä tahansa kuvan graafisella LCD-näytöllä, joten tässä on muutama vaihe kuvan muuntamiseksi HEX-koodiksi. Ennen sitä sinun on varmistettava, että kuvan koko ei saa ylittää 128 * 64.
Vaihe 1: Pienennä normaalikuvan kokoon 128 * 64 tai vähemmän, jonka voit tehdä millä tahansa kuvankäsittelyohjelmalla, kuten MS-maalilla.
Kuten yllä olevassa kuvassa näkyy, asetamme kuvan leveydeksi ja korkeudeksi 128 * 64.
Vaihe 2: Sitten sinun on tallennettava kuva muodossa "image_name .bmp ".
Valitse yllä olevassa kuvassa esitetty muoto ja tallenna tiedosto jatkokäsittelyä varten.
Vaihe 3: Kun olet tallentanut sen.bmp-muotoon, sinun on muunnettava kuva hex-koodiksi tulostamista varten. Tätä varten käytän ohjelmistoa nimeltä GIMP 2, joka muuntaa Bmp-tiedoston hex-koodiksi.
Kuten yllä olevassa kuvassa näkyy, avasimme.bmp-muotoisen tiedoston GIMP 2 -ohjelmistossa.
Vaihe-4: Kun olet ladannut ohjelman, avaa BMP kuvatiedosto jonka haluat tulostaa ja sitten tallentaa se ” .xbm ” (X Bitmap) muodossa. Tallentamisen jälkeen avaa tiedosto Notepadilla ja saat kuvan Hex-koodin.
Kuten alla olevassa kuvassa näkyy, valitse Vie-vaihtoehto, jos haluat tallentaa tiedoston xbm- muodossa:
Valitse alla olevassa kuvassa esitetty muoto ja vie kuvatiedosto.
Kun olet vienyt tiedoston, saat tiedoston.xbm-muodossa. Avaa xbm- tiedosto Notepadilla ja saat HEX-koodin alla olevan kuvan mukaisesti.
Arduino-koodi ja selitys
Graafisen nestekidenäytön liittämiseksi Arduinoon meidän on ensin määritettävä graafisen nestekidenäytön kirjasto. Arduinolla ei ole tätä kirjastoa, sinun on ladattava ja asennettava tämä kirjasto tästä linkistä. Sitten voit sisällyttää kirjaston alla olevalla tavalla:
#include "U8glib.h"
Tässä ' u8g (10) ' määrittelee graafisen nestekidenäytön RS (Register Select) -tapin yhteyden Arduino UNO: n 10. nastaan. RS-nasta, jota käytetään 'sirun valitsemisena' ja 'Rekisteröi valinta', kun sitä käytetään Sarja- ja Rinnakkaistilassa. Joten käytämme sarjamoodia ja RS-nastaa, joka on asetettu korkeaksi (1) sirulle ja matalaksi (0) sirulle.
U8GLIB_ST7920_128X64_4X u8g (10);
Nyt kuvan tulostamiseksi meidän on sijoitettava kuvan Hex-koodi alla olevaan koodiin. Voit tulostaa minkä tahansa muun kuvan, sinun tarvitsee vain liittää kuvan heksakoodi.
const uint8_t rook_bitmap U8G_PROGMEM = { Liitä kuvan heksakoodi tähän };
Tarkista koko Arduino-koodi tämän artikkelin lopussa.
Alla olevaa toimintoa käytetään kuvan tulostamiseen, tulostukseen käytetty komento on “u8g.drawXBMP (x, y, kuvan leveys, kuvan korkeus)” . Missä, X ja Y on kuvan lähtökohta LCD-näytöllä, ja meidän on myös kirjoitettava kuvan koko, joka ei saisi ylittää 128 * 64, ja viimeisessä argumentissa olemme kutsuneet funktiota, johon sijoitimme kuvan HEX-koodin.
void picture (void) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Olemme tehneet kaksi toimintoa, joita kutsutaan "piirtää" ja "seuraava", joissa sisällön tulostuskoodi kirjoitetaan komennolla "u8g.drawStr (x, y," abcd ")". Tässä x ja y ovat LCD-näytön sijainti, johon sisältö tulostetaan, ja ' abcd ' on tulostettava sisältö.
void draw (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "PIIRIN DIGEST"); } void next (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, "Rajapinta"); u8g.drawStr (0, 35, "graafinen LCD"); u8g.drawStr (0, 55, "Arduinon kanssa"); }
clearLCD () -toiminto on tarkoitettu LCD-näytön tyhjentämiseen antamalla toiminnolle vain nolla-arvo.
void clearLCD () {u8g.firstPage (); tee {} while (u8g.nextPage ()); }
Pikselin, värin ja voimakkuuden määrittäminen alla olevan koodin avulla
void setup (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // white} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // enimmäisintensiteetti} muu if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // pikseli päällä} else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
Mitätön silmukka edelleen tulostaa tekstin ja kuvan jälkeen annetulla viiveellä. Ensinnäkin, olemme tulostaneet "Piirin Digest" käyttäen piirtotoimintoa ja 2 s jälkeen. Tyhjennimme näytön viiveellä clearLCD- toiminnolla ja tulostimme sitten ” Interfacing Graphical LCD using Arduino ” seuraavaa toimintoa käyttämällä. Sitten olemme tulostaneet kuvan käyttämällä kuva () -toimintoa, joka pysyy näytöllä 3 sekunnin ajan. Tämä jatkuu, kunnes virtalähde kytketään päälle.
void loop (void) {u8g.firstPage (); tee {piirtää (); } while (u8g.sextPage ()); viive (2000); clearLCD (); u8g.firstPage (); tee {seuraava (); } while (u8g.sextPage ()); viive (2000); clearLCD (); u8g.firstPage (); tee {kuva (); } while (u8g.sextPage ()); viive (3000); clearLCD (); viive (50); }
Kun olet ohjelmoinut Arduinon annetulla koodilla, kytke graafinen LCD-näyttö piirikaavion mukaisesti Arduinoon ja toimita Arduino adapterilla tai USB: llä. Saat sisältöä ja kuvaa graafiselle LCD - näytölle alla olevan videon mukaisesti.
Tarkista myös Nokia 5110 -näytön ja Arduinon liitäntä,