Kuidas ühendada OLED I2C ekraan ARDUINO-ga

Pin
Send
Share
Send

Sissejuhatus: 128 * 64/128 * 32 OLED I2C kuvari tutvustus.

Tere! Olles amatöör - elektroonikahuviline, olen kindel, et kõik, mida me teeme, on elektroonilised mänguasjad - omatehtud tooted või suured projektid - seda kõike uudishimust ja laiskusest. Uudishimu püüab mõista ja mõista tohutut, tundmatut, mõista, kuidas see seal töötab, mida ta teeb, kuidas liigub. Ja laiskus leiutab selleks, et sellega välja tulla, et mitte üles tõusta, ei mahu, ei tõsta, ei määrdu ega midagi muud olulist.
Kuna teabe nägemine on parem kui mõistmine, mis meie seadmes juhtub või on juba juhtunud või toimub, tahame kindlasti saada seda väga kasulikku teavet oma mikrokontrolleritelt, anduritelt või muudelt seadmetelt. Ja ma tahan igal juhul saada mingeid sõnumeid, näiteks küsimusi, hoiatusi, meeldetuletusi, emotikone, tärne, südameid jms.
Neile, kellel on ka sarnane soov, on siin lühike juhend väikeste ja odavate OLED-ekraanide ühendamiseks ja kontrollimiseks.
Järgnevalt räägime ühest laialdaselt kasutatavast SSD1306 kiibiga juhitavate OLED-ekraanide singiraadiomudelitest, mille ekraani suurus on 0,96 tolli ja eraldusvõime 128 * 64 või 128 * 32 pikslit. Need kuvarid sobivad ideaalselt väikeste amatöörraadiode kujundamiseks ja omatehtud toodete jaoks.

1. samm: põhikontseptsioonid


Ühendame selle Arduino UNO / NANO-ga ja vastavalt programmeerimiseks ühendame selle ka Arduino kaudu.
  • OLED on orgaaniline valgust kiirgav diood, s.o orgaanilistest ühenditest valmistatud pooljuhtseade, mis hakkab valgust kiirgama, kui sellest voolub läbi elektrivool.
  • ARDUINO on koolitus- ja hooneautomaatika ning robootikasüsteemide platvorm.
  • ArduinoIDE on arenduskeskkond. See on tasuta Arduino programmeerimisriist.
  • I2C - integreeritud integraallülitused, mikroskeemidevaheline kommunikatsiooniliin.
  • Visand, see on kood, see on programm - Arduino terminoloogia.

Järgige juhiseid, et mõista, kuidas OLED-ekraan õigesti Arduinoga ühendada ja konfigureerida ning kuidas kuvada ekraanil oma teade.
Teeme kõik sammude kaupa.

2. samm: tarvikud


Meil on vaja ainult nelja asja:
  • 1. OLED-ekraan ise on 0,96 ”(saab osta Aliexpressist või Ebay-st, - pikk, aga odav!).
  • 2. Arduino UNO / Nano (kuvariga samas kohas).
  • 3. Ühendusjuhtmed (ibid.).
  • 4. ArduinoIDE installitud arvuti või sülearvuti.

Üldiselt on erinevate projektide osade ostmine Aliexpressis ja Ebay'is väga lahe asi, samal ajal kui teete ühte projekti, on teise jaoks mõeldud osad juba teel. Peaasi, et ärge unustage tellimust esitada.

3. samm: ühendage ekraan


Kuvarit juhib kiip SSD1306, mis toetab viit kommunikatsiooniprotokolli ja millest üks on I2C. Selle protokolli andmed edastatakse vaid kahe juhtmega ja mida vähem juhtmeid, seda parem, nii et see sobib meile hästi. Aga! Seal on SPI-protokolli ja isegi protokolli vahetamise moodulid, seega olge selle mooduli ostmisel ettevaatlik.

Kasutatud järeldused:
OLED-ekraan - SCL / SCK (kell) ja SDA (andmed), "Plus" võimsus (VCC) ja "Minus" võimsus (GND).

Kasutatud järeldused:
Arduino UNO - SCL / SCK A5-l ja SSD A4-l, "Plus" võimsus (+ 5V) ja "Minus" võimsus (GND).
Ühendage ekraan Arduinoga:
  • Vcc - 5 V
  • GND - GND
  • SDA - A4
  • SCL - A5

4. samm: I2C skanner


I2C-bussi igal seadmel on kuueteistkümnendarv, seda ei saa muuta, see on tihedalt õmmeldud, iga vastutav tootja peab selle kuskil korpuses või juhendites märkima. On küll lülitite ja džempritega mooduleid, millega saab aadressi muuta, aga ... kui seadmed on odavad, siis inetuse poole, siis ei pruugi tootja sellise vaevaga vaeva näha, nii et peate selle ise kindlaks määrama.
Kokku saab siinil kasutada kuni 127 aadressi - 119 seadmele ja 8 teenuse aadressi. Suhtlus toimub nendel aadressidel. On peremees, ta on meister, aga on ka ori, ta on ka ori - meistrid küsivad, järgijad vastavad, kõik on lihtne.
Kuna meie OLED-ekraan kasutab I2C suhtlusprotokolli ja aadressi ei pruugita näidata, proovime selle aadressi välja selgitada.
Selleks saate alla laadida lühikese visandi oma Arduino tahvlile, kui OLED on ühendatud. Kuid
Võtke eskiisi üleslaadimiseks kohe aega Arduinosse! Laadime esmalt alla "draiveri", s.t. ühendame raamatukogud ja selleks läheme otse 5. sammu juurde ning läheme siis tagasi ja jätkame.

4. samm: Jätkub:


Laadige alla CODE Finder_I2C_Hex_Address.ino, laadige üles Arduino.
Avage "Portmonitor", määrake kiiruseks 9600 ja kui kõik on õigesti ühendatud, näitab programm seadme aadressi, minu puhul OLED aadressiga 0x3F.

5. samm: laadige alla ja ühendage teegid


Selleks, et kõik töötaks õigesti ja te ei peaks ratast uuesti leiutama, peate ühendama paar raamatukogu ArduinoIDE keskkonnaga, nimelt: ADAFRUIT GFX ja ADAFRUIT SSD1306, need on vajalikud, et Arduino saaks iseseisvalt suhelda OLED-ekraaniga.
Neid raamatukogusid saate ühendada, järgides neid samme.
  • 1. Minge ArduinoIDE-s menüüsse Sketch.
  • 2. Valige "Kaasa raamatukogud" / Kaasa raamatukogud.
  • 3. Valige "Halda teegid" / Hallatud teegid.
  • 4. Leidke ADAFRUIT GFX ja installige need.
  • 5. Leidke ADAFRUIT SSD1306 ja installige need.

Teekide uusimate versioonide puhul töötas ekraan minu jaoks kõveraks, võib-olla on see muidugi käte kõveruse tõttu, kuid pärast nende raamatukogude kõige esimeste versioonide installimist hakkasid kõik sujuvalt ja ilusti ilmuma. Miskipärast ilmuvad tema mällu Puškini read:
... ja kogemus, raskete vigade poeg,
ja geenius, sõprade paradoksid.

Teine viis raamatukogude installimiseks on nende otsimine, allalaadimine ja installimine.
Githubi näide:
//github.com/adafruit/Adafruit-GFX-Library
//github.com/adafruit/Adafruit_SSD1306

Need on samad Adafruudi raamatukogud, kuid OLED I2C nõudmisel saab sarnaseid teeke hõlpsalt otsingumootorites otsida. Paljud entusiastid kirjutavad raamatukogud "enda jaoks" ja panevad need siis veebi üles. Millist raamatukogu kasutada, on teie otsustada.
Venekeelsete tähtede kuvamiseks on vaja ka spetsiaalseid raamatukogusid, kuid see on eraldi artikli eraldi teema.
Pärast raamatukogude installimist saate naasta 4. sammu juurde ja lõpuks teada saada kuueteistkümnendarvu aadressi.

6. samm: kuvari testimine


Kontrollimaks, kas kõik töötab ootuspäraselt, käivitage ArduinoIDE testnäide.
Selleks tehke järgmist.
Minge Fail> NÄITED> SSD 1306> Valige 128x64 i2c
Kui kuvatakse tõrge, proovige valida SSD 1306> 128x32 i2c.
Kui tõrge ilmneb uuesti, proovige muuta I2C-aadressi demo koodi real 61 ja asendada see ekraani aadressiga, mille määrasite 4. sammus.
Kui tõrge ilmneb uuesti, võite proovida redigeerida faili Adafruit_SSD1306.h, see asub Arduino teegi kaustas.

Avage tekstiredaktoris fail Adafruit_SSD1306.h ja leidke read:
// # define SSD1306_128_64 #defineeri SSD1306_128_32 // #defineeri SSD1306_96_16

Tühista rida:
#defineeri SSD1306_128_64.

See peaks olema selline:
#defineeri SSD1306_128_64 // # define SSD1306_128_32 // #defineeri SSD1306_96_16

Kui tõrge ilmneb uuesti, peate kontrollima ühenduste õigsust.
Kui allalaadimine on lõpule viidud, näete ekraanil testanimatsiooni, mis tähendab, et olete OLED-ekraani edukalt konfigureerinud.

Seda animatsiooni nautides saate liikuda järgmise sammuni.

7. samm: oma sõnumi kirjutamine


Enda sõnumi kirjutamiseks looge kõigepealt ArduinoIDE programmeerimiskeskkonnas uus visand.
Päises ühendame 4 raamatukogu:
#installi #include #include #include 

Seejärel kirjutame lähtestamise protokolli:
#defineeri OLED_RESET 4 Adafruit_SSD1306 ekraan (OLED_RESET);

Määrake jaotises VOID SETUP meie 0x3C kuva kuueteistkümnendaadress, mille saime teada etapis nr 4.
Seejärel lähtestage ekraan ja tühjendage see:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay ();

Järgmisena kirjutame VOID LOOP-is põhikoodi, st meie teate, mida tahame ekraanil kuvada.
Selleks kirjeldame teksti suurust, teksti värvi, kursori asukohta ja lõpuks kuvame teate käskluse println abil:
display.setTextSize (2); display.setTextColor (VALGE); display.setCursor (0,0); display.println ("Hästi tehtud!"); kuva.näita ();

Lõpus ärge unustage kirjutada kuva.kuvanii et pilti kuvatakse ekraanil, vastasel juhul on tühine.
Kui tegite kõik õigesti, kuvatakse ekraanile teade.

Siin on meie programmi KOOD: Starting_with_Arduino_OLED.ino.
code.zip 946 b (allalaadimisi: 1366)

Pin
Send
Share
Send