Kā savienot OLED I2C displeju ar ARDUINO

Pin
Send
Share
Send

Ievads: 128 * 64/128 * 32 OLED I2C displeja iepazīstināšana.

Sveiki Būdams amatieris - elektronikas entuziasts, esmu pārliecināts, ka viss, ko mēs darām, ir elektroniskas rotaļlietas - mājās gatavoti izstrādājumi vai lieli projekti - tas viss rodas no zinātkāres un slinkuma. Ziņkārība cenšas izprast un izprast milzīgo, nezināmo, saprast, kā tas tur darbojas, ko tas dara, kā pārvietojas. Un slinkums izdomā, lai to izdomātu, lai neceltos, nederētu, nepaceltos, netīrītos vai kaut kas cits svarīgs.
Tā kā informācijas redzēšana ir labāka nekā izpratne par to, kas notiek mūsu ierīcē vai jau ir noticis vai notiek, mēs noteikti vēlēsimies iegūt šo ļoti noderīgo informāciju no mūsu mikrokontrolleriem, sensoriem vai citām ierīcēm. Un es jebkurā gadījumā gribu saņemt jebkādus ziņojumus, piemēram, jautājumus, brīdinājumus, atgādinājumus, emocijzīmes, zvaigznītes, sirdis un tamlīdzīgus.
Tiem, kuriem ir arī līdzīga vēlme, šeit ir īss ceļvedis mazu un lētu OLED displeju savienošanai un pārbaudei.
Tālāk mēs runāsim par vienu no plaši pieejamajiem OLED displeju šķiņķu radio modeļiem, kurus kontrolē mikroshēma SSD1306, ar ekrāna izmēru 0,96 collas un izšķirtspēju 128 * 64 vai 128 * 32 pikseļi. Šie displeji ir ideāli piemēroti maziem radioamatieru projektējumiem un pašdarinātiem izstrādājumiem.

1. solis: galvenie jēdzieni


Mēs to savienosim ar Arduino UNO / NANO, un attiecīgi, lai programmētu, mēs to savienosim arī caur Arduino.
  • OLED ir organiska gaismu izstarojoša diode, t.i., no organiskiem savienojumiem izgatavota pusvadītāju ierīce, kas sāk izstarot gaismu, kad caur to iet elektriskā strāva.
  • ARDUINO ir apmācības un ēku automatizācijas un robotikas sistēmu platforma.
  • ArduinoIDE ir attīstības vide. Šis ir bezmaksas Arduino programmēšanas rīks.
  • I2C - integrētās shēmas, starp mikroshēmu sakaru līnija.
  • Skice, tas ir kods, tā ir programma - Arduino terminoloģija.

Izpildiet instrukcijas, lai saprastu, kā pareizi savienot un konfigurēt OLED displeju ar Arduino un kā parādīt savu ziņojumu tā displejā.
Mēs visu darām soļos.

2. solis: piederumi


Mums būs vajadzīgas tikai četras lietas:
  • 1. Pats OLED displejs ir 0,96 ”(to var iegādāties Aliexpress vai Ebay, - garš, bet lēts!).
  • 2. Arduino UNO / Nano (tajā pašā vietā, kur displejs).
  • 3. Savienojošie vadi (turpat).
  • 4. Dators vai klēpjdators ar instalētu ArduinoIDE.

Parasti detaļu pirkšana dažādiem projektiem vietnē Aliexpress un Ebay ir ļoti forša lieta, kamēr jūs darāt vienu projektu, rezerves daļas citam jau ir ceļā. Galvenais ir neaizmirst veikt pasūtījumu.

3. solis: pievienojiet displeju


Displeju kontrolē mikroshēma SSD1306, kas atbalsta piecus sakaru protokolus un viens no tiem ir I2C. Dati par šo protokolu tiek pārsūtīti tikai divos vados, un, jo mazāk gadījumā ir vadi, jo labāk, tāpēc tas mums ir piemērots. Bet! Ir moduļi ar SPI protokolu un pat protokola pārslēgšanu, tāpēc, iegādājoties šo moduli, esiet piesardzīgs.

Izmantotie secinājumi:
OLED displejs - SCL / SCK (pulkstenis) un SDA (dati), "Plus" jauda (VCC) un "Minus" jauda (GND).

Izmantotie secinājumi:
Arduino UNO - SCL / SCK uz A5 un SSD uz A4, jauda "Plus" (+ 5V) un "Minus" jauda (GND).
Savienojiet displeju ar Arduino:
  • Vcc - 5 V
  • GND - GND
  • SDA - A4
  • SCL - A5

4. solis: I2C skeneris


Katrai I2C kopnes ierīcei ir heksadecimāla adrese, jūs to nevarat mainīt, tā ir cieši piešūta, katram atbildīgajam ražotājam tā ir jānorāda kaut kur uz lietas vai instrukcijās. Ir moduļi ar slēdžiem un džemperiem, ar kuriem jūs varat mainīt adresi, bet ... ja ierīces ir lētas, līdz neglītumam, tad ražotājs, iespējams, neuztraucas rīkoties ar šādu sīkumu, tāpēc jums tas būs jānosaka pats.
Kopumā autobusā var izmantot līdz 127 adresēm - 119 ierīcēm un 8 pakalpojumu adreses. Komunikācija notiek šajās adresēs. Ir meistars, viņš ir meistars, bet ir arī vergs, viņš ir arī vergs - meistari jautā, sekotāji atbild, viss ir vienkārši.
Tā kā mūsu OLED displejā tiek izmantots I2C sakaru protokols un adrese var netikt norādīta, mēs centīsimies noskaidrot tieši šo adresi.
To var izdarīt, lejupielādējot īsu skici jūsu Arduino tāfelē, kurai pievienots OLED. BET!
Nesteidzieties, lai uzreiz augšupielādētu skici Arduino! Vispirms lejupielādēsim "draiveri", t.i. mēs savienosim bibliotēkas, un šajā sakarā mēs pāriesim tieši pie 5. soļa, un tad mēs atgriezīsimies un turpināsim.

4. darbība: Turpinājums:


Lejupielādējiet CODE Finder_I2C_Hex_Address.ino, augšupielādējiet vietnē Arduino.
Atveriet "Port Monitor", iestatiet ātrumu 9600 un, ja viss ir savienots pareizi, programma parādīs ierīces adresi, manā gadījumā OLED ar adresi 0x3F.

5. darbība: lejupielādējiet un pievienojiet bibliotēkas


Lai viss darbotos pareizi, un jums nevajadzēja no jauna izgudrot riteni, jums jāpieslēdz pāris bibliotēkas ArduinoIDE vidē, proti: ADAFRUIT GFX un ADAFRUIT SSD1306, tie ir nepieciešami, lai Arduino spētu patstāvīgi sazināties ar OLED displeju.
Šīs bibliotēkas var savienot, veicot šīs darbības.
  • 1. ArduinoIDE atveriet izvēlni Sketch.
  • 2. Atlasiet “Iekļaut bibliotēkas” / Iekļaut bibliotēkas.
  • 3. Atlasiet “Pārvaldīt bibliotēkas” / Pārvaldītās bibliotēkas.
  • 4. Atrodiet ADAFRUIT GFX un instalējiet tos.
  • 5. Atrodiet ADAFRUIT SSD1306 un instalējiet tos.

Ar jaunākajām bibliotēku versijām displejs man darbojās šķībi, varbūt, protams, tas ir saistīts ar roku izliekumu, bet pēc tam, kad es uzstādīju pašas pirmās šo bibliotēku versijas, viss sāka parādīties gludi un skaisti. Kādu iemeslu dēļ atmiņā parādās Puškina līnijas:
... un pieredze, grūtu kļūdu dēls,
un ģēnijs, draugu paradoksi.

Vēl viens bibliotēku instalēšanas veids ir pats atrast, lejupielādēt un instalēt šīs bibliotēkas.
Github piemērs:
//github.com/adafruit/Adafruit-GFX-Library
//github.com/adafruit/Adafruit_SSD1306

Šīs ir tās pašas Adafruit bibliotēkas, taču līdzīgas bibliotēkas ir viegli meklējamas meklētājprogrammās pēc OLED I2C pieprasījuma. Daudzi entuziasti bibliotēkas raksta "sev" un pēc tam ievieto tīmeklī. Kādu bibliotēku izmantot, ir atkarīgs no jums.
Lai displejā būtu redzami krievu burti, ir vajadzīgas arī īpašas bibliotēkas, taču šī ir atsevišķa raksta atsevišķa tēma.
Pēc bibliotēku instalēšanas varat atgriezties pie 4. darbības un beidzot uzzināt displeja heksadecimālo adresi.

6. darbība. Displeja pārbaude


Lai pārbaudītu, vai viss darbojas kā paredzēts, palaidiet testa piemēru no ArduinoIDE.
Lai to izdarītu:
Dodieties uz FILE> PARAUGI> SSD 1306> Atlasiet 128x64 i2c
Ja saņemat “kļūdu”, mēģiniet izvēlēties SSD 1306> 128x32 i2c.
Ja atkal rodas kļūda, mēģiniet mainīt I2C adresi demonstrācijas koda 61. rindā un nomainiet to ar displeja adresi, kuru jūs norādījāt 4. darbībā.
Ja kļūda atkārtojas, varat mēģināt rediģēt failu Adafruit_SSD1306.h, tas atrodas mapē ar Arduino bibliotēkām.

Teksta redaktorā atveriet failu Adafruit_SSD1306.h un atrodiet rindiņas:
// # definēt SSD1306_128_64 #definēt SSD1306_128_32 // #define SSD1306_96_16

Svītrot līniju:
#define SSD1306_128_64.

Tam vajadzētu būt šādam:
#define SSD1306_128_64 // # define SSD1306_128_32 // #define SSD1306_96_16

Ja atkal rodas kļūda, jums jāpārbauda savienojumu pareizība.
Kad lejupielāde ir pabeigta, ekrānā tiks parādīta testa animācija, kas nozīmē, ka esat veiksmīgi konfigurējis OLED displeju.

Izbaudot šo animāciju, varat pāriet pie nākamās darbības.

7. solis: pats rakstiet ziņojumu


Lai rakstītu savu ziņojumu, vispirms izveidojiet jaunu skici ArduinoIDE programmēšanas vidē.
Galvenē mēs savienojam 4 bibliotēkas:
# iekļaut # iekļaut # iekļaut # iekļaut 

Tad mēs uzrakstām atiestatīšanas protokolu:
#define OLED_RESET 4 Adafruit_SSD1306 displejs (OLED_RESET);

VOID SETUP norādiet mūsu 0x3C displeja heksadecimālo adresi, ko mēs uzzinājām sadaļā "4. solis".
Pēc tam inicializējiet displeju un notīriet to:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay ();

Tālāk sadaļā VOID LOOP mēs uzrakstām galveno kodu, tas ir, mūsu ziņojumu, kuru vēlamies parādīt displejā.
Lai to izdarītu, mēs aprakstam teksta lielumu, teksta krāsu, kursora pozīciju un, visbeidzot, izmantojot println komandu, parādām ziņojumu:
display.setTextSize (2); display.setTextColor (BALTS); display.setCursor (0,0); display.println ("Labi izdarīts!"); displejs.displejs ();

Beigās neaizmirstiet uzrakstīt displejs. displejslai attēls tiktu parādīts ekrānā, pretējā gadījumā jūs saņemat tukšumu.
Ja visu izdarījāt pareizi, displejos parādīsies ziņojums.

Šeit ir mūsu programmas kods: Starting_with_Arduino_OLED.ino.
code.zip 946 b (lejupielādes: 1366)

Pin
Send
Share
Send