Kuinka kytkeä OLED I2C -näyttö ARDUINO: han

Pin
Send
Share
Send

Johdanto: Esittelyssä 128 * 64/128 * 32 OLED I2C -näyttö.

Tervehdys! Koska olen amatööri - elektroniikan harrastaja, olen varma, että teemme vain elektronisia leluja - kotitekoisia tuotteita tai suuria projekteja - uteliaisuudesta ja laiskuudesta. Uteliaisuus pyrkii ymmärtämään ja ymmärtämään sen valtavan, tuntemattoman, ymmärtämään kuinka se toimii siellä, mitä se tekee, miten se liikkuu. Ja laiskuus keksii tämän keksimiseksi, jotta ei nouse ylös, ei sovi, ei nosta, likaannu tai jotain muuta tärkeää.
Koska tietojen näkeminen on parempi kuin sen ymmärtäminen, mitä laitteellemme tapahtuu tai on jo tapahtunut tai tapahtuu, haluamme ehdottomasti saada tämän erittäin hyödyllisen tiedon mikro-ohjaimilta, antureilta tai muilta laitteilta. Ja haluan joka tapauksessa vastaanottaa viestejä, kuten kysymyksiä, varoituksia, muistutuksia, hymiöitä, tähtiä, sydäntä ja vastaavia.
Niille, joilla on myös samanlainen halu, tässä on pikaopas pienten ja edullisten OLED-näyttöjen kytkemiseen ja tarkistamiseen.
Seuraavaksi puhumme yhdestä laajasti saatavilla olevista SSD1306-sirun ohjaamien OLED-näyttöjen kinkkradiomalleista, joiden näytön koko on 0,96 tuumaa ja resoluutio 128 * 64 tai 128 * 32 pikseliä. Nämä näytöt ovat ihanteellisia pienille amatööriradiokuvioille ja kotitekoisille tuotteille.

Vaihe 1: Avainkäsitteet


Yhdistämme sen Arduino UNO / NANO: seen, ja ohjelmoimme vastaavasti myös Arduinon kautta.
  • OLED on orgaaninen valoa emittoiva diodi, ts. Orgaanisista yhdisteistä valmistettu puolijohdelaite, joka alkaa emittoida valoa, kun sen läpi kulkee sähkövirta.
  • ARDUINO on alusta koulutus- ja rakennusautomaatio- ja robottijärjestelmiin.
  • ArduinoIDE on kehitysympäristö. Tämä on ilmainen Arduino-ohjelmointityökalu.
  • I2C - integroidut piirit, mikropiirien välinen tiedonsiirtolinja.
  • Luonnos, se on koodi, se on ohjelma - Arduino-terminologia.

Noudata ohjeita ymmärtääksesi kuinka OLED-näyttö kytketään ja määritetään oikein Arduinoon ja miten oma viesti näytetään näytöllä.
Teemme kaiken vaiheittain.

Vaihe 2: Lisävarusteet


Tarvitsemme vain neljä asiaa:
  • 1. OLED-näyttö itsessään on 0,96 ”(voi ostaa Aliexpressistä tai Ebaystä, - pitkä, mutta halpa!).
  • 2. Arduino UNO / Nano (samassa paikassa kuin näyttö).
  • 3. Liitäntäjohdot (ibid.).
  • 4. Tietokone tai kannettava tietokone, johon ArduinoIDE on asennettu.

Yleensä osien ostaminen erilaisille projekteille Aliexpressillä ja Ebayllä on erittäin hienoa, kun teet yhtä hanketta, toisen osat ovat jo matkalla. Tärkeintä on unohtaa tilauksen tekeminen.

Vaihe 3: Yhdistä näyttö


Näyttöä ohjaa SSD1306-siru, joka tukee viittä tiedonsiirtoprotokollaa ja joista yksi on I2C. Tätä protokollaa koskevat tiedot siirretään vain kahdella johdolla, ja mitä vähemmän johdossa tapauksessa, sitä parempi, joten se sopii meille hyvin. Mutta! Moduuleissa on SPI-protokollaa ja jopa protokollanvaihtoa, joten ole varovainen ostaessasi tätä moduulia.

Käytetyt päätelmät:
OLED-näyttö - SCL / SCK (kello) ja SDA (data), "Plus" -teho (VCC) ja "Miinus" -teho (GND).

Käytetyt päätelmät:
Arduino UNO - SCL / SCK A5: llä ja SSD A4: llä, "Plus" -teho (+ 5V) ja "Miinus" -teho (GND).
Kytke näyttö Arduinoon:
  • Vcc - 5 V
  • GND - GND
  • SDA - A4
  • SCL - A5

Vaihe 4: I2C-skanneri


Jokaisella I2C-väylän laitteella on heksadesimaalinen osoite, et voi muuttaa sitä, se on ommeltu tiukasti. Jokaisen vastuullisen valmistajan on ilmoitettava se jonnekin kotelossa tai ohjeissa. On olemassa kytkimillä ja puseroilla varustettuja moduuleja, joilla voit muuttaa osoitetta, mutta ... jos laitteet ovat halpoja, rumuuteen, valmistaja ei ehkä viitsi käsitellä tällaista pikkuruutta, joten sinun on määritettävä se itse.
Kaikkiaan väylässä voidaan käyttää jopa 127 osoitetta - 119 laitteille ja 8 palveluosoitetta. Viestintä tapahtuu näissä osoitteissa. Siellä on mestari, hän on mestari, mutta on myös orja, hän on myös orja - Mestarit kysyvät, seuraajat vastaavat, kaikki on yksinkertaista.
Koska OLED-näyttömme käyttää I2C-tiedonsiirtoprotokollaa ja osoitetta ei välttämättä ilmoiteta, yritämme löytää tämän osoitteen.
Tämä voidaan tehdä lataamalla lyhyt luonnos Arduino-kortillesi OLED-yhteydellä. MUTTA!
Ota aikaa ladataksesi luonnoksen Arduinoon heti! Lataa ensin "ohjain", ts. yhdistämme kirjastot, ja tätä varten siirrymme suoraan vaiheeseen 5 ja palaamme sitten takaisin ja jatkamme.

Vaihe 4: Jatkuu:


Lataa CODE Finder_I2C_Hex_Address.ino, lähetä Arduinoon.
Avaa "Port Monitor", aseta nopeudeksi 9600 ja jos kaikki on kytketty oikein, ohjelma näyttää laitteen osoitteen, minun tapauksessani OLED osoitteella 0x3F.

Vaihe 5: Lataa ja yhdistä kirjastot


Jotta kaikki toimisi oikein, ja sinun ei tarvinnut keksiä pyörää uudelleen, sinun on kytkettävä pari kirjastoa ArduinoIDE-ympäristöön, nimittäin: ADAFRUIT GFX ja ADAFRUIT SSD1306, ne ovat välttämättömiä Arduinolle voidakseen kommunikoida OLED-näytön kanssa itsenäisesti.
Voit yhdistää nämä kirjastot noudattamalla näitä vaiheita.
  • 1. Siirry ArduinoIDE: ssa Sketch-valikkoon.
  • 2. Valitse "Sisällytä kirjastot" / Sisällytä kirjastot.
  • 3. Valitse "Hallitse kirjastoja" / Hallitut kirjastot.
  • 4. Etsi ADAFRUIT GFX ja asenna ne.
  • 5. Etsi ADAFRUIT SSD1306 ja asenna ne.

Uusimmissa kirjastojen versioissa näyttö toimi minulle vinosti, kenties tietysti tämä johtuu käsien kaarevuudesta, mutta sen jälkeen kun olen asentanut näiden kirjastojen ensimmäiset versiot, kaikki alkoi näyttää sujuvasti ja kauniisti. Jostain syystä Pushkinin rivit ilmestyvät hänen muistokseen:
... ja kokemus, vaikeiden virheiden poika,
ja nero, ystäväparadoksit.

Toinen tapa asentaa kirjastot on löytää, ladata ja asentaa nämä kirjastot itse.
Esimerkki Githubista:
//github.com/adafruit/Adafruit-GFX-Library
//github.com/adafruit/Adafruit_SSD1306

Nämä ovat samoja Adafruit-kirjastoja, mutta vastaavia kirjastoja haetaan helposti hakukoneissa OLED I2C: n pyynnöstä. Monet harrastajat kirjoittavat kirjastot "itselleen" ja laittavat ne sitten verkkoon. Minkä kirjaston haluat valita.
Jotta näytössä voidaan näyttää venäläisiä kirjaimia, tarvitaan myös erityisiä kirjastoja, mutta tämä on erillinen aihe erilliselle artikkeleelle.
Kun kirjastot on asennettu, voit palata vaiheeseen 4 ja lopulta selvittää näytön heksadesimaaliosoitteen.

Vaihe 6: Näytön testaaminen


Suorita ArduinoIDE-testiesimerkki varmistaaksesi, toimiiko kaikki odotetusti.
Voit tehdä tämän:
Mene TIEDOSTO> ESIMERKIT> SSD 1306> Valitse 128x64 i2c
Jos saat virheilmoituksen, kokeile valita SSD 1306> 128x32 i2c.
Jos virhe ilmenee uudelleen, yritä muuttaa I2C-osoitetta esittelykoodin rivillä 61 ja korvata se näytön osoitteella, jonka määritit vaiheessa # 4.
Jos virhe ilmenee uudelleen, voit yrittää muokata Adafruit_SSD1306.h-tiedostoa, se sijaitsee Arduino-kirjastojen kansiossa.

Avaa tekstieditorissa Adafruit_SSD1306.h-tiedosto ja etsi rivit:
// # määrittele SSD1306_128_64 #define SSD1306_128_32 // #define SSD1306_96_16

Peruuta linja:
#define SSD1306_128_64.

Sen pitäisi olla tällainen:
#define SSD1306_128_64 // # define SSD1306_128_32 // #define SSD1306_96_16

Jos virhe toistuu, on tarpeen tarkistaa yhteyksien oikeellisuus.
Kun lataus on valmis, näytöllä näkyy testianimaatio, mikä tarkoittaa, että OLED-näyttö on määritetty onnistuneesti.

Kun nautit tästä animaatiosta, voit siirtyä seuraavaan vaiheeseen.

Vaihe 7: Oman viestin kirjoittaminen


Voit kirjoittaa oman viestin luomalla ensin uuden luonnoksen ArduinoIDE-ohjelmointiympäristöön.
Yhdistämme otsikossa 4 kirjastoa:
#include #include #include #include 

Sitten kirjoitamme nollausprotokollan:
#define OLED_RESET 4 Adafruit_SSD1306 -näyttö (OLED_RESET);

Määritä VOID SETUP -kohdassa 0x3C-näytön heksadesimaalinen osoite, jonka löysimme vaiheessa 4.
Alusta sitten näyttö ja tyhjennä se:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay ();

Seuraavaksi, VOID LOOP, kirjoitamme pääkoodin, eli viestin, jonka haluamme näyttää näytöllä.
Tätä varten kuvaillaan tekstin koko, tekstin väri, kohdistimen sijainti ja lopuksi näytetään viesti println-komennolla:
display.setTextSize (2); display.setTextColor (WHITE); display.setCursor (0,0); display.println ("Hyvin tehty!"); näyttö.näyttö ();

Lopussa älä unohda kirjoittaa display.displayjotta kuva näkyy näytöllä, muuten tyhjäksi tulee.
Jos teit kaiken oikein, näyttöön tulee viesti.

Tässä on ohjelman CODE Starting_with_Arduino_OLED.ino:
code.zip 946 b (lataukset: 1366)

Pin
Send
Share
Send