Kuinka yhdistää OLED I2C -näyttö ARDUINOON
Johdanto: OLED I2C -näytön esittely 128*64 / 128*32.
Hei! Amatöörielektroniikan ystävänä olen varma, että kaikki mitä teemme - elektroniset lelut - kotitekoiset tuotteet tai suuret projektit - on kaikki uteliaisuudesta ja laiskuudesta. Uteliaisuus pyrkii ymmärtämään ja ymmärtämään valtavaa, tuntematonta, ottamaan selvää, miten se siellä toimii, mitä se tekee, miten se liikkuu. Ja laiskuus keksii jotain, jottei nouse ylös, ei lähesty, ei nosta, ei likaannu tai mitään muuta tärkeää.
Koska tietojen näkeminen on parempi kuin selvittää, mitä laitteellamme tapahtuu, mitä on jo tapahtunut tai tapahtuu, haluamme ehdottomasti saada tämän hyödyllisimmän tiedon mikrokontrollereiltamme, antureiltamme tai muilta laitteiltamme. Ja joka tapauksessa haluan vastaanottaa viestejä, kuten kysymyksiä, varoituksia, muistutuksia, hymiöitä, tähtiä, sydämiä ja vastaavia.
Niille, joilla on myös samanlainen toive, tässä on lyhyt opas pienten ja edullisien OLED-näyttöjen liittämiseen ja testaamiseen.
Seuraavaksi puhumme yhdestä radioamatööreille yleisesti saatavilla olevista OLED-näyttömalleista, jota ohjaa SSD1306-siru, jonka näytön koko on 0,96 tuumaa ja resoluutio 128 * 64 tai 128 * 32 pikseliä. Nämä näytöt ovat ihanteellisia pieniin radioamatöörimalleihin ja kotitekoisiin projekteihin.
Yhdistämme sen Arduino UNO / NANOon ja ohjelmoimme sen myös Arduinon kautta.
Seuraa ohjeita ymmärtääksesi, kuinka OLED-näyttö liitetään oikein ja konfiguroidaan Arduinoon ja kuinka mukautettu viesti näytetään sen näytössä.
Teemme kaiken askel askeleelta.
Tarvitsemme vain neljä asiaa:
Yleensä osien ostaminen eri projekteihin Aliexpressistä ja Ebaysta on erittäin siistiä, kun työskentelet yhden projektin parissa, toisen osia on jo tulossa. Tärkeintä ei ole unohtaa tilauksen tekemistä.
Näyttöä ohjaa SSD1306-siru, joka tukee viittä tiedonsiirtoprotokollaa, joista yksi on I2C. Tätä protokollaa käyttävä data välitetään vain kahdella johdolla, ja mitä vähemmän johtoja kotelossa on, sitä parempi, joten se sopii meille varsin hyvin.Mutta! On moduuleja SPI-protokollalla ja jopa protokollan vaihtamisella, joten ole varovainen ostaessasi tätä moduulia.
Käytetyt pinssit:
OLED-näyttö - SCL/SCK (kello) ja SDA (data), plus-teho (VCC) ja miinusteho (GND).
Käytetyt pinssit:
Arduino UNO - SCL/SCK A5:llä ja SSD A4:llä, "Plus" teho (+5V) ja "miinus" teho (GND).
Näytön liittäminen Arduinoon:
Jokaisella I2C-väylän laitteella on heksadesimaaliosoite, sitä ei voi muuttaa, se on kiinteästi kytketty, jokaisen vastuullisen valmistajan on ilmoitettava se jossain kotelossa tai ohjeissa. On olemassa moduuleja, joissa on kytkimet ja jumpperit, joilla voi vaihtaa osoitetta, mutta... jos laitteet ovat naurettavan halpoja, niin valmistaja ei välttämättä vaivaudu käsittelemään sellaista yksityiskohtaa, joten sinun on määritettävä se itse.
Yhteensä väylässä voidaan käyttää jopa 127 osoitetta - 119 laitteille ja 8 palveluosoitetta. Yhteydenpito tapahtuu näissä osoitteissa. On pää, eli isäntä, ja on orja, alias Slave - Mestarit kysyvät, orjat vastaavat, kaikki on yksinkertaista.
Koska OLED-näyttömme käyttää I2C-tiedonsiirtoprotokollaa ja osoitetta ei välttämättä ole määritetty, yritämme selvittää tämän osoitteen itse.
Voit tehdä tämän lataamalla lyhyen luonnoksen Arduino-levyllesi, kun OLED on kytketty. MUTTA!
Älä kiirehdi lataamaan luonnosta Arduinoon heti! Ladataan ensin "ajurit", ts. Yhdistämme kirjastot ja siirrymme välittömästi vaiheeseen 5 ja palaamme sitten jatkamaan.
Lataa CODE Finder_I2C_Hex_Address.ino, lataa Arduinoon.
Avaa "Port Monitor", aseta nopeus 9600:aan ja jos kaikki on kytketty oikein, ohjelma näyttää laitteen osoitteen, minun tapauksessani OLED osoitteella 0x3F.
Jotta kaikki toimisi oikein ja sinun ei tarvitse keksiä pyörää uudelleen, sinun on yhdistettävä muutama kirjasto ArduinoIDE-ympäristöön, nimittäin: ADAFRUIT GFX ja ADAFRUIT SSD1306, ne ovat välttämättömiä, jotta Arduino voi kommunikoida itsenäisesti OLED-näytön kanssa.
Voit sisällyttää nämä kirjastot noudattamalla näitä ohjeita.
Kirjastojen uusimmissa versioissa näyttöni toimi vinosti, tämä voi tietysti johtua käsieni kaarevuudesta, mutta kun asensin ensimmäiset versiot näistä kirjastoista, kaikki alkoi näyttää sileältä ja kauniilta. Jostain syystä tulee mieleen Pushkinin lauseet:
...ja kokemus, vaikeiden virheiden poika,
ja nero, paradoksien ystävä.
Toinen tapa asentaa kirjastoja on etsiä, ladata ja asentaa nämä kirjastot itse.
Githubin esimerkki:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Nämä ovat samoja Adafruit-kirjastoja, mutta samankaltaisia kirjastoja voidaan helposti etsiä hakukoneilla OLED I2C:n pyynnöstä. Monet harrastajat kirjoittavat kirjastoja "itsekseen" ja julkaisevat ne sitten verkkoon. Valitset itse, mitä kirjastoa haluat käyttää.
Jotta näyttö näyttäisi venäläisiä kirjaimia, tarvitaan myös erikoiskirjastoja, mutta tämä on erillinen aihe erilliselle artikkelille.
Kun kirjastot on asennettu, voit palata vaiheeseen 4 ja selvittää lopuksi näytön heksadesimaaliosoitteen.
Tarkista, toimiiko kaikki odotetulla tavalla, suorittamalla testiesimerkki ArduinoIDEsta.
Tätä varten:
Siirry kohtaan TIEDOSTO > ESIMERKIT > SSD 1306 > Valitse 128x64 i2c
Jos saat "Error"-ilmoituksen, kokeile valita SSD 1306 > 128x32 i2c.
Jos "Error" toistuu, yritä muuttaa I2C-osoitetta esittelykoodin rivillä 61 ja korvaa se näytön osoitteella, jonka määritit vaiheessa 4.
Jos virhe toistuu, voit yrittää muokata Adafruit_SSD1306.h-tiedostoa, joka sijaitsee Arduino-kirjastot-kansiossa.
Avaa Adafruit_SSD1306.h-tiedosto tekstieditorissa ja etsi rivit:
Poista rivin kommentti:
Sen pitäisi näyttää tältä:
Jos virhe toistuu, sinun on tarkistettava oikeat liitännät.
Kun lataus on valmis, näytöllä näkyy testianimaatio, mikä tarkoittaa, että olet onnistuneesti määrittänyt OLED-näytön.
Kun olet täysin nauttinut tästä animaatiosta, voit siirtyä seuraavaan vaiheeseen.
Jos haluat kirjoittaa oman viestin, luo ensin uusi luonnos ArduinoIDE-ohjelmointiympäristössä.
Otsikossa on 4 kirjastoa:
Sitten kirjoitamme nollausprotokollan:
VOID SETUP -kohdassa ilmoitamme näyttömme heksadesimaaliosoitteen 0x3C, jonka opimme "Vaiheessa nro 4".
Sitten alustamme näytön ja tyhjennämme sen:
Seuraavaksi VOID LOOPiin kirjoitamme pääkoodin, eli viestimme, jonka haluamme näyttää näytöllä.
Tätä varten kuvaamme tekstin koon, tekstin värin, kohdistimen sijainnin ja lopuksi näytämme viestin println-komennolla:
Lopuksi älä unohda kirjoittaa näyttö.näyttöniin, että kuva näkyy näytöllä, muuten saat tyhjiön.
Jos teit kaiken oikein, näyttöön tulee viesti.
Tässä on ohjelmamme Starting_with_Arduino_OLED.ino KOODI:
Hei! Amatöörielektroniikan ystävänä olen varma, että kaikki mitä teemme - elektroniset lelut - kotitekoiset tuotteet tai suuret projektit - on kaikki uteliaisuudesta ja laiskuudesta. Uteliaisuus pyrkii ymmärtämään ja ymmärtämään valtavaa, tuntematonta, ottamaan selvää, miten se siellä toimii, mitä se tekee, miten se liikkuu. Ja laiskuus keksii jotain, jottei nouse ylös, ei lähesty, ei nosta, ei likaannu tai mitään muuta tärkeää.
Koska tietojen näkeminen on parempi kuin selvittää, mitä laitteellamme tapahtuu, mitä on jo tapahtunut tai tapahtuu, haluamme ehdottomasti saada tämän hyödyllisimmän tiedon mikrokontrollereiltamme, antureiltamme tai muilta laitteiltamme. Ja joka tapauksessa haluan vastaanottaa viestejä, kuten kysymyksiä, varoituksia, muistutuksia, hymiöitä, tähtiä, sydämiä ja vastaavia.
Niille, joilla on myös samanlainen toive, tässä on lyhyt opas pienten ja edullisien OLED-näyttöjen liittämiseen ja testaamiseen.
Seuraavaksi puhumme yhdestä radioamatööreille yleisesti saatavilla olevista OLED-näyttömalleista, jota ohjaa SSD1306-siru, jonka näytön koko on 0,96 tuumaa ja resoluutio 128 * 64 tai 128 * 32 pikseliä. Nämä näytöt ovat ihanteellisia pieniin radioamatöörimalleihin ja kotitekoisiin projekteihin.
Vaihe 1: Peruskäsitteet
Yhdistämme sen Arduino UNO / NANOon ja ohjelmoimme sen myös Arduinon kautta.
- OLED on orgaaninen valoa emittoiva diodi eli orgaanisista yhdisteistä valmistettu puolijohdelaite, joka alkaa säteillä valoa, kun sähkövirta kulkee sen läpi.
- ARDUINO on alusta automaatio- ja robotiikkajärjestelmien koulutukseen ja rakentamiseen.
- ArduinoIDE - kehitysympäristö. Tämä on ilmainen Arduino-ohjelmointiohjelma.
- I2C – Inter-Integrated Circuits, sirujen välinen viestintälinja.
- Sketch, eli koodi, eli ohjelma - Arduino-terminologia.
Seuraa ohjeita ymmärtääksesi, kuinka OLED-näyttö liitetään oikein ja konfiguroidaan Arduinoon ja kuinka mukautettu viesti näytetään sen näytössä.
Teemme kaiken askel askeleelta.
Vaihe 2: Lisävarusteet
Tarvitsemme vain neljä asiaa:
- 1. Itse OLED-näyttö on 0,96 tuumaa (voit ostaa sen Aliexpressistä tai Ebaysta, se on pitkä, mutta halpa!).
- 2. Arduino UNO / Nano (sama paikka kuin näyttö).
- 3. Kytkentäjohdot (ibid.).
- 4. Tietokone tai kannettava ArduinoIDE asennettuna.
Yleensä osien ostaminen eri projekteihin Aliexpressistä ja Ebaysta on erittäin siistiä, kun työskentelet yhden projektin parissa, toisen osia on jo tulossa. Tärkeintä ei ole unohtaa tilauksen tekemistä.
Vaihe 3: Näytön liittäminen
Näyttöä ohjaa SSD1306-siru, joka tukee viittä tiedonsiirtoprotokollaa, joista yksi on I2C. Tätä protokollaa käyttävä data välitetään vain kahdella johdolla, ja mitä vähemmän johtoja kotelossa on, sitä parempi, joten se sopii meille varsin hyvin.Mutta! On moduuleja SPI-protokollalla ja jopa protokollan vaihtamisella, joten ole varovainen ostaessasi tätä moduulia.
Käytetyt pinssit:
OLED-näyttö - SCL/SCK (kello) ja SDA (data), plus-teho (VCC) ja miinusteho (GND).
Käytetyt pinssit:
Arduino UNO - SCL/SCK A5:llä ja SSD A4:llä, "Plus" teho (+5V) ja "miinus" teho (GND).
Näytön liittäminen Arduinoon:
- Vcc - 5V
- GND - GND
- SDA-A4
- SCL-A5
Vaihe 4: I2C-skanneri
Jokaisella I2C-väylän laitteella on heksadesimaaliosoite, sitä ei voi muuttaa, se on kiinteästi kytketty, jokaisen vastuullisen valmistajan on ilmoitettava se jossain kotelossa tai ohjeissa. On olemassa moduuleja, joissa on kytkimet ja jumpperit, joilla voi vaihtaa osoitetta, mutta... jos laitteet ovat naurettavan halpoja, niin valmistaja ei välttämättä vaivaudu käsittelemään sellaista yksityiskohtaa, joten sinun on määritettävä se itse.
Yhteensä väylässä voidaan käyttää jopa 127 osoitetta - 119 laitteille ja 8 palveluosoitetta. Yhteydenpito tapahtuu näissä osoitteissa. On pää, eli isäntä, ja on orja, alias Slave - Mestarit kysyvät, orjat vastaavat, kaikki on yksinkertaista.
Koska OLED-näyttömme käyttää I2C-tiedonsiirtoprotokollaa ja osoitetta ei välttämättä ole määritetty, yritämme selvittää tämän osoitteen itse.
Voit tehdä tämän lataamalla lyhyen luonnoksen Arduino-levyllesi, kun OLED on kytketty. MUTTA!
Älä kiirehdi lataamaan luonnosta Arduinoon heti! Ladataan ensin "ajurit", ts. Yhdistämme kirjastot ja siirrymme välittömästi vaiheeseen 5 ja palaamme sitten jatkamaan.
Vaihe 4: Jatkuu:
Lataa CODE Finder_I2C_Hex_Address.ino, lataa Arduinoon.
Avaa "Port Monitor", aseta nopeus 9600:aan 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 tarvitse keksiä pyörää uudelleen, sinun on yhdistettävä muutama kirjasto ArduinoIDE-ympäristöön, nimittäin: ADAFRUIT GFX ja ADAFRUIT SSD1306, ne ovat välttämättömiä, jotta Arduino voi kommunikoida itsenäisesti OLED-näytön kanssa.
Voit sisällyttää nämä kirjastot noudattamalla näitä ohjeita.
- 1. Siirry ArduinoIDEssa Sketch-valikkoon.
- 2. Valitse "Sisällytä kirjastot".
- 3. Valitse "Hallinnoi kirjastoja".
- 4. Etsi ADAFRUIT GFX ja asenna ne.
- 5. Etsi ADAFRUIT SSD1306 ja asenna ne.
Kirjastojen uusimmissa versioissa näyttöni toimi vinosti, tämä voi tietysti johtua käsieni kaarevuudesta, mutta kun asensin ensimmäiset versiot näistä kirjastoista, kaikki alkoi näyttää sileältä ja kauniilta. Jostain syystä tulee mieleen Pushkinin lauseet:
...ja kokemus, vaikeiden virheiden poika,
ja nero, paradoksien ystävä.
Toinen tapa asentaa kirjastoja on etsiä, ladata ja asentaa nämä kirjastot itse.
Githubin esimerkki:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Nämä ovat samoja Adafruit-kirjastoja, mutta samankaltaisia kirjastoja voidaan helposti etsiä hakukoneilla OLED I2C:n pyynnöstä. Monet harrastajat kirjoittavat kirjastoja "itsekseen" ja julkaisevat ne sitten verkkoon. Valitset itse, mitä kirjastoa haluat käyttää.
Jotta näyttö näyttäisi venäläisiä kirjaimia, tarvitaan myös erikoiskirjastoja, mutta tämä on erillinen aihe erilliselle artikkelille.
Kun kirjastot on asennettu, voit palata vaiheeseen 4 ja selvittää lopuksi näytön heksadesimaaliosoitteen.
Vaihe 6: Näytön testaus
Tarkista, toimiiko kaikki odotetulla tavalla, suorittamalla testiesimerkki ArduinoIDEsta.
Tätä varten:
Siirry kohtaan TIEDOSTO > ESIMERKIT > SSD 1306 > Valitse 128x64 i2c
Jos saat "Error"-ilmoituksen, kokeile valita SSD 1306 > 128x32 i2c.
Jos "Error" toistuu, yritä muuttaa I2C-osoitetta esittelykoodin rivillä 61 ja korvaa se näytön osoitteella, jonka määritit vaiheessa 4.
Jos virhe toistuu, voit yrittää muokata Adafruit_SSD1306.h-tiedostoa, joka sijaitsee Arduino-kirjastot-kansiossa.
Avaa Adafruit_SSD1306.h-tiedosto tekstieditorissa ja etsi rivit:
//#define SSD1306_128_64
#define SSD1306_128_32
// #define SSD1306_96_16
Poista rivin kommentti:
#define SSD1306_128_64.
Sen pitäisi näyttää tältä:
#define SSD1306_128_64
//#define SSD1306_128_32
// #define SSD1306_96_16
Jos virhe toistuu, sinun on tarkistettava oikeat liitännät.
Kun lataus on valmis, näytöllä näkyy testianimaatio, mikä tarkoittaa, että olet onnistuneesti määrittänyt OLED-näytön.
Kun olet täysin nauttinut tästä animaatiosta, voit siirtyä seuraavaan vaiheeseen.
Vaihe 7: Kirjoita oma viestisi
Jos haluat kirjoittaa oman viestin, luo ensin uusi luonnos ArduinoIDE-ohjelmointiympäristössä.
Otsikossa on 4 kirjastoa:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Sitten kirjoitamme nollausprotokollan:
#define OLED_RESET 4
Adafruit_SSD1306-näyttö (OLED_RESET);
VOID SETUP -kohdassa ilmoitamme näyttömme heksadesimaaliosoitteen 0x3C, jonka opimme "Vaiheessa nro 4".
Sitten alustamme näytön ja tyhjennämme sen:
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearNäyttö();
Seuraavaksi VOID LOOPiin kirjoitamme pääkoodin, eli viestimme, jonka haluamme näyttää näytöllä.
Tätä varten kuvaamme tekstin koon, tekstin värin, kohdistimen sijainnin ja lopuksi näytämme viestin println-komennolla:
display.setTextSize(2);
display.setTextColor(VALKOINEN);
display.setCursor(0,0);
display.println("Hyvin tehty!");
näyttö.näyttö();
Lopuksi älä unohda kirjoittaa näyttö.näyttöniin, että kuva näkyy näytöllä, muuten saat tyhjiön.
Jos teit kaiken oikein, näyttöön tulee viesti.
Tässä on ohjelmamme Starting_with_Arduino_OLED.ino KOODI:
code.zip
[946 b] (lataukset: 4908)
Samanlaisia mestarikursseja
Erityisen mielenkiintoista

Kaapeliantenni digitelevisioon 5 minuutissa

Valikoima yksinkertaisia ja tehokkaita järjestelmiä.

Kolmivaiheinen jännite yksivaiheisesta 5 minuutissa

Kolmivaihemoottorin käynnistäminen yksivaiheisesta verkosta ilman kondensaattoria

Ikuinen taskulamppu ilman paristoja

Kuinka tehdä edullinen mutta erittäin tehokas LED-lamppu
Kommentit (10)