- Vaadittu laitteisto:
- OLED-näytöihin tutustuminen:
- Laitteisto ja liitännät:
- SSD1306 OLED -näytön ohjelmointi Arduinolle:
Suurimmalle osalle meistä olisi tuttu 16 × 2-pisteinen matriisi-LCD-näyttö, jota käytetään useimmissa projekteissa jonkin verran tietojen näyttämiseksi käyttäjälle. Mutta näillä LCD-näytöillä on paljon rajoituksia siihen, mitä he voivat tehdä. Tässä opetusohjelmassa aiomme oppia OLED-näytöistä ja niiden käytöstä Arduino. Markkinoilla on paljon erilaisia OLED-näyttöjä, ja on monia tapoja saada ne toimimaan. Tässä opetusohjelmassa keskustelemme sen luokituksista ja siitä, mikä sopii parhaiten projektiisi.
Vaadittu laitteisto:
- 7-nastainen 128 × 64 OLED -näyttömoduuli (SSD1306)
- Arduino UNO / Nano
- Leipälauta
- Johtojen liittäminen
- Tietokone / kannettava tietokone
OLED-näytöihin tutustuminen:
Termi OLED tarkoittaa ” orgaanista valoa emittoivaa diodia”. Se käyttää samaa tekniikkaa, jota käytetään useimmissa televisioissamme, mutta siinä on vähemmän pikseleitä. On todella hauskaa saada nämä viileän näköiset näyttömoduulit liitettäviksi Arduinoon, koska se saa projektimme näyttämään hienolta. Olemme käsittäneet koko artikkelin OLED-näytöistä ja sen tyypeistä täällä.
Käytämme yksiväristä 7-nastaista SSD1306 0,96 tuuman OLED-näyttöä. Syynä tämän näytön valitsemiseen on se, että se voi toimia kolmella erilaisella tiedonsiirtoprotokollalla, kuten SPI 3 Wire -moodilla, SPI: n nelijohtimella ja IIC-tilalla. Tässä opetusohjelmassa käsitellään moduulin käyttöä SPI 4-johdin-tilassa, koska se on nopein ja oletustapa.
Tapit ja niiden toiminnot on selitetty alla olevassa taulukossa.
Pin koodi |
PIN-nimi |
Muut nimet |
Käyttö |
1 |
Gnd |
Maa |
Moduulin maadoitettu tappi |
2 |
Vdd |
Vcc, 5 V |
Virtatappi (3-5V siedettävä) |
3 |
SCK |
D0, SCL, CLK |
Toimii kellotapina. Käytetään sekä I2C: lle että SPI: lle |
4 |
SDA |
D1, MOSI |
Moduulin datanasta. Käytetään sekä IIC: lle että SPI: lle |
5 |
RES |
RST, NOLLAA |
Nollaa moduulin (hyödyllinen SPI: n aikana) |
6 |
DC |
A0 |
Data Command -tappi. Käytetään SPI-protokollaan |
7 |
CS |
Sirun valinta |
Hyödyllinen, kun SPI-protokollassa käytetään useampaa kuin yhtä moduulia |
Tässä opetusohjelmassa yksinkertaisesti käytämme moduulia 4-johdin SPI-tilassa, jätämme loput muuhun opetusohjelmaan.
Arduino-yhteisö on jo antanut meille paljon kirjastoja, joita voidaan käyttää suoraan tekemään tästä paljon yksinkertaisempaa. Kokeilin muutamia kirjastoja ja huomasin, että Adafruit_SSD1306-kirjasto oli erittäin helppokäyttöinen ja sillä oli kourallinen graafisia vaihtoehtoja, joten käytämme samaa tässä opetusohjelmassa. Mutta jos projektissasi on muistin / nopeuden rajoitus, yritä käyttää U8g-kirjastoa, koska se toimii nopeammin ja vie vähemmän ohjelmamuistia.
Laitteisto ja liitännät:
Piirikaaviohahmotelma SSD1306 OLED vuorovaikutuksessa Arduino on todella yksinkertainen ja se on esitetty alla
Meillä on yksinkertaisesti muodostettu SPI-yhteys OLED-moduulin ja Arduinon välille. Koska OLED toimii 3V-5V: llä ja kuluttaa hyvin vähän virtaa, se ei tarvitse ulkoista virtalähdettä. Voit yksinkertaisesti käyttää johtoja yhteyden muodostamiseen tai käyttää leipälautaa, kuten olen käyttänyt, jotta se on helppo kokeilla. Yhteys on myös lueteltu alla olevassa tarinassa
S. ei |
PIN-nimi OLED-moduulissa |
Pin-nimi Arduinossa |
1 |
Gnd, maa |
Maa |
2 |
Vdd, Vcc, 5 V |
5 V |
3 |
SCK, D0, SCL, CLK |
10 |
4 |
SDA, D1, MOSI |
9 |
5 |
RES, RST, RESET |
13 |
6 |
DC, A0 |
11 |
7 |
CS, sirun valinta |
12 |
Huomautus: Et voi visualisoida mitään OLED-moduulin taustavaloa / hehkua vain virran avulla. Sinun on ohjelmoitava se oikein havaitaksesi muutoksia OLED-näytössä.
SSD1306 OLED -näytön ohjelmointi Arduinolle:
Kun yhteydet ovat valmiit, voit aloittaa Arduinon ohjelmoinnin. Kuten aiemmin mainittiin, käytämme Adafruit-kirjastoa ja GFX-kirjastoa työskennellessäsi tämän OLED-moduulin kanssa. Testaa OLED-näytön suorittaminen noudattamalla ohjeita.
Vaihe 1: Lataa Adafruit-kirjasto ja GFX-kirjasto Githubista alla olevan linkin avulla
- Adafruit-kirjasto
- GFX-grafiikkakirjasto
Vaihe 2: Sinun pitäisi ladata kaksi Zip-tiedostoa. Lisää ne nyt Arduinoon seuraamalla
Luonnos-> Sisällytä kirjasto -> Lisää Zip-kirjasto alla olevan kuvan mukaisesti. Valitse sitten juuri lataamasi kirjasto. Voit valita vain yhden kirjaston kerrallaan, joten sinun on toistettava tämä vaihe uudelleen.
Vaihe 3: Käynnistä esimerkkiohjelma valitsemalla Tiedosto-> Esimerkit-> Adafruit SSD1306 -> SSD1306_128 * 64_SPI.ino alla olevan kuvan mukaisesti.
Vaihe 4: Lisää esimerkkiohjelman sisälle rivin 64 päälle rivi "#define SSD1306_LCDHEIGHT 64", kuten alla olevassa kuvassa näkyy.
Vaihe 5: Lataa nyt ohjelma ja sinun pitäisi nähdä OLED-näyttö, joka käynnistyy oletusarvoisella Adafruit-esimerkkikoodilla alla olevan kuvan mukaisesti. Täysi työ videota annetaan lopussa.
Tämä esimerkkiohjelma näyttää kaikki mahdolliset grafiikat, jotka voidaan näyttää OLED-näytöllä. Tämän koodin pitäisi olla tarpeeksi, jotta voit luoda bittikarttoja, piirtää viivoja / ympyröitä / suorakulmioita, pelata pikseleillä, näyttää merkkejä ja merkkijonoja eri kirjasimilla ja kooilla jne…
Jos haluat ymmärtää kirjastoa ja sen toimintoja paremmin, voit lukea lisää. Jokainen koodin junks on jaettu ja selitetty kommenttirivien avulla. Täydellinen koodi annetaan tämän artikkelin lopussa
Näytön näyttäminen ja tyhjentäminen:
OLED-näytölle kirjoittaminen on aivan kuin kirjoittamista mustalle taululle, meidän on kirjoitettava arvot ja puhdistettava se ennen kuin se voidaan korvata. Seuraavia komentoja käytetään näytön kirjoittamiseen ja tyhjentämiseen
display.display (); // Kirjoita näyttöön display.clearDisplay (); // tyhjennä näyttö
Merkkimuuttujan näyttäminen:
Seuraavan koodin avulla voidaan näyttää sisältö muuttujan sisällä.
char i = 5; // näytettävä muuttuja display.setTextSize (1); // Valitse tekstinäytön koko.setTextColor (VALKOINEN); // vain mustavalkoiselle näytölle mahdollinen display.setCursor (0,0); // 0,0 on OLED-näytön vasemmassa yläkulmassa. Kirjoita (i); // Kirjoita näytettävä muuttuja
Viivan, ympyrän, suorakulmion, kolmion piirtäminen:
Jos haluat lisätä symboleja näyttöön, voit piirtää minkä tahansa seuraavista koodista seuraavan koodin avulla
display.drawLine (display.width () - 1, 0, i, display.height () - 1, WHITE); // void drawLine (x0, y0, x1, y1, väri); display.drawRect (i, i, display.width () - 2 * i, display.height () - 2 * i, WHITE); // void drawRect (x0, y0, w, h, väri); display.drawTriangle (display.width () / 2, display.height () / 2-i, display.width () / 2-i, display.height () / 2 + i, display.width () / 2+ i, display.height () / 2 + i, VALKOINEN); // void drawTriangle (x0, y0, x1, y1, x2, y2, väri); display.drawCircle (näyttö.leveys () / 2, näyttö.korkeus () / 2, i, VALKOINEN); // void drawCircle (x0, y0, r, väri);
Merkkijonon piirtäminen näytölle:
Seuraavaa koodipalaa voidaan käyttää o näyttää mikä tahansa viesti näytöllä tietyssä paikassa ja koossa
display.setTextSize (2); // aseta tekstinäytön koko.setTextColor (VALKOINEN); // väriasetusnäyttö.setCursor (10,0); // Merkkijono alkaa kohdasta 10,0 (x, y) display.clearDisplay (); // Pyyhi kaikki aikaisemmat näytöt ruudulla display.println ("Circuit Digest"); // Tulosta merkkijono tähän ”Circuit Digest” display.display (); // lähetä teksti näyttöön
Bittikarttakuvan näyttäminen:
Yksi epäluotettava asia, joka voidaan tehdä OLED-moduulilla, on se, että sitä voidaan käyttää bittikarttojen näyttämiseen. Seuraavaa koodia käytetään bittikarttakuvan näyttämiseen
staattinen const unsigned char PROGMEM logo16_glcd_bmp = {B00000000, B11000000, B00000001, B11000000, B00000001, B11000000, B00000011, B11100000, B11110011, B11100000, B11111110, B11111000, B01111110, B11111111, B00110011, B10011111, B00011111, B11111100, B00001101, B01110000, B00011011, B10100000, B00111111, B11100000, B00111111, B11110000, B01111100, B11110000, B01110000, B01110000, B00000000, B00110000}; display.drawBitmap (XPO], YPOS, bittikartta, w, h, VALKOINEN); // void drawBitmap (x, y, * bittikartta, w, h, väri);
Kuten näette, kuvan näyttämiseksi bittikarttatiedot on tallennettava ohjelmamuistiin PROMGMEM-direktiivin muodossa. Yksinkertaisesti sanottuna meidän on annettava OLED-näytölle ohjeet siitä, mitä tehdä jokaiselle pikselille, välittämällä sille sarja tai arvot taulukosta, kuten yllä on esitetty. Tämä taulukko sisältää kuvan bittikarttatiedot.
Se saattaa kuulostaa monimutkaiselta, mutta verkkotyökalun avulla on erittäin helppo muuntaa kuva pieniksi kartta-arvoiksi ja ladata ne yllä olevaan ryhmään.
Lataa vain kuva ja säädä asetuksia saadaksesi haluamasi esikatselun kuvasta. Napsauta sitten "Luo koodi", kopioi koodi ja liitä se taulukkoosi. Lataa ohjelma ja olet valmis. Yritin näyttää batman-logon ja näin se osoittautui.
Näillä kirjastoilla voi vielä tehdä paljon asioita. Jos haluat tietää kaikki mahdollisuudet, käy Adafruit GFX graphics Primitives -sivulla.
Toivottavasti sinulla on tämä käynnissä ja olet valmis ottamaan käyttöön OLED-näytön joissakin projekteissasi. Jos sinulla on ongelmia, jaa ne kommenttiosassa ja yritän korjata ne parhaalla mahdollisella tavalla.