Kā savienot OLED I2C displeju ar ARDUINO
Ievads: Ievads OLED I2C displejā 128*64 / 128*32.
Sveiki! Būdams amatieris elektronikas entuziasts, esmu pārliecināts, ka viss, ko darām – elektroniskās rotaļlietas – paštaisītas preces vai lieli projekti – viss ir aiz ziņkārības un slinkuma. Zinātkāre cenšas izprast un aptvert plašo, nezināmo, izdomāt, kā tā tur darbojas, ko dara, kā kustas. Un slinkums izdomā ko izdomāt, lai neceltos, netuvotos, nepaceltu, nesasmērētos vai ko citu svarīgu.
Tā kā informāciju redzēt ir labāk nekā izdomāt, kas mūsu ierīcē notiks, kas jau ir noticis, vai notiek, mēs noteikti vēlēsimies saņemt šo visnoderīgāko informāciju no mūsu mikrokontrolleriem, sensoriem vai citām ierīcēm. Un jebkurā gadījumā es vēlos saņemt jebkādas ziņas, piemēram, jautājumus, brīdinājumus, atgādinājumus, emocijzīmes, zvaigznes, sirsniņas un tamlīdzīgus.
Tiem, kam arī ir līdzīga vēlme, šeit ir īss ceļvedis mazu un lētu OLED displeju pievienošanai un testēšanai.
Tālāk mēs runāsim par vienu no radioamatieriem plaši pieejamajiem OLED displeju modeļiem, ko kontrolē SSD1306 mikroshēma un kura ekrāna izmērs ir 0,96 collas un izšķirtspēja 128 * 64 vai 128 * 32 pikseļi. Šie displeji ir ideāli piemēroti maziem radioamatieru dizainiem un pašdarinātiem projektiem.
Mēs to savienosim ar Arduino UNO / NANO, kā arī programmēsim caur Arduino.
Izpildiet norādījumus, lai saprastu, kā pareizi savienot un konfigurēt OLED displeju ar Arduino un kā tā displejā parādīt pielāgotu ziņojumu.
Mēs visu darām soli pa solim.
Mums ir vajadzīgas tikai četras lietas:
Vispār pirkt detaļas dažādiem projektiem Aliexpress un Ebay ir ļoti forša lieta, kamēr tu strādā pie viena projekta, daļas citam jau ir ceļā. Galvenais ir neaizmirst veikt pasūtījumu.
Displeju kontrolē SSD1306 mikroshēma, kas atbalsta piecus sakaru protokolus, no kuriem viens ir I2C. Dati, izmantojot šo protokolu, tiek pārsūtīti tikai pa diviem vadiem, un jo mazāk vadu korpusā, jo labāk, tāpēc tas mums ir diezgan piemērots.Bet! Ir moduļi ar SPI protokolu un pat ar protokola maiņu, tāpēc esiet piesardzīgs, iegādājoties šo moduli.
Izmantotās tapas:
OLED displejs - SCL/SCK (pulkstenis) un SDA (dati), “Plus” jauda (VCC) un “Mīnus” jauda (GND).
Izmantotās tapas:
Arduino UNO - SCL/SCK uz A5 un SSD uz A4, “plus” jauda (+5 V) un “Mīnus” jauda (GND).
Displeja pievienošana Arduino:
Katrai ierīcei I2C kopnē ir heksadecimālā adrese, to nevar mainīt, tā ir pieslēgta, katram atbildīgajam ražotājam tā ir jānorāda kaut kur uz korpusa vai instrukcijā. Ir moduļi ar slēdžiem un džemperiem, ar kuriem var mainīt adresi, bet... ja ierīces ir līdz apkaunojumam lētas, tad ražotājs var neapnikt tikt galā ar tik sīku detaļu, tāpēc nāksies noteikt to pats.
Kopā autobusā var izmantot līdz 127 adresēm - 119 ierīcēm un 8 apkalpošanas adresēm. Saziņa notiek šajās adresēs. Ir galvenais, aka Meistars, un ir vergs, aka Slave - kungi jautā, vergi atbild, viss ir vienkārši.
Tā kā mūsu OLED displejā tiek izmantots I2C sakaru protokols un adrese var nebūt norādīta, mēs centīsimies paši noskaidrot šo adresi.
To var izdarīt, augšupielādējot īsu skici savā Arduino platē ar pievienotu OLED. BET!
Nesteidzieties uzreiz augšupielādēt skici Arduino! Vispirms lejupielādēsim “draiveri”, t.i. savienosim bibliotēkas, un, lai to izdarītu, nekavējoties pāriesim uz 5. darbību, pēc tam atgriezīsimies un turpināsim.
Lejupielādējiet CODE Finder_I2C_Hex_Address.ino, augšupielādējiet vietnē Arduino.
Atveriet “Port Monitor”, iestatiet ātrumu uz 9600 un, ja viss ir pareizi savienots, programma parādīs ierīces adresi, manā gadījumā OLED ar adresi 0x3F.
Lai viss darbotos pareizi un nebūtu jāizgudro ritenis no jauna, ArduinoIDE videi ir jāpievieno pāris bibliotēkas, proti: ADAFRUIT GFX un ADAFRUIT SSD1306, tās ir nepieciešamas, lai Arduino varētu patstāvīgi sazināties. ar OLED displeju.
Varat iekļaut šīs bibliotēkas, veicot šīs darbības.
Ar jaunākajām bibliotēku versijām mans displejs darbojās greizi, protams, tas var būt saistīts ar manu roku izliekumu, taču pēc šo bibliotēku pirmo versiju instalēšanas viss sāka izskatīties gludi un skaisti. Kādu iemeslu dēļ prātā nāk Puškina rindas:
...un pieredze, grūtu kļūdu dēls,
un ģēnijs, paradoksu draugs.
Vēl viens veids, kā instalēt bibliotēkas, ir pašam atrast, lejupielādēt un instalēt šīs bibliotēkas.
Github piemēram:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Tās ir tās pašas Adafruit bibliotēkas, taču pēc OLED I2C pieprasījuma līdzīgas bibliotēkas var viegli meklēt meklētājprogrammās. Daudzi entuziasti raksta bibliotēkas “sev” un pēc tam ievieto tās tīmeklī. Kuru bibliotēku izmantot, ir atkarīgs no jums.
Lai displejā būtu redzami krievu burti, nepieciešamas arī speciālas bibliotēkas, taču tā ir atsevišķa tēma atsevišķam rakstam.
Kad bibliotēkas ir instalētas, varat atgriezties pie 4. darbības un beidzot uzzināt displeja heksadecimālo adresi.
Lai pārbaudītu, vai viss darbojas, kā paredzēts, palaidiet testa piemēru no ArduinoIDE.
Priekš šī:
Dodieties uz FAILS > PIEMĒRI > SSD 1306 > atlasiet 128 x 64 i2c.
Ja tiek parādīts ziņojums “Kļūda”, mēģiniet atlasīt SSD 1306 > 128x32 i2c.
Ja "Kļūda" atkārtojas, mēģiniet nomainīt I2C adresi demonstrācijas koda 61. rindā un aizstāt to ar displeja adresi, ko noteicāt 4. darbībā.
Ja kļūda atkārtojas, varat mēģināt rediģēt failu Adafruit_SSD1306.h, tas atrodas mapē Arduino bibliotēkas.
Atveriet failu Adafruit_SSD1306.h teksta redaktorā un atrodiet rindiņas:
Atceliet rindas komentāru:
Tam vajadzētu izskatīties šādi:
Ja kļūda atkārtojas, jums jāpārbauda pareizi savienojumi.
Kad lejupielāde būs pabeigta, ekrānā redzēsit testa animāciju, kas nozīmē, ka esat veiksmīgi iestatījis OLED displeju.
Kad esat pilnībā izbaudījis šo animāciju, varat pāriet uz nākamo soli.
Lai uzrakstītu savu ziņojumu, vispirms izveidojiet jaunu skici ArduinoIDE programmēšanas vidē.
Galvenē ir iekļautas 4 bibliotēkas:
Pēc tam mēs rakstām atiestatīšanas protokolu:
Sadaļā VOID SETUP mēs norādām mūsu displeja heksadecimālo adresi 0x3C, ko uzzinājām “4. darbībā”.
Pēc tam mēs inicializējam displeju un notīrām to:
Tālāk VOID LOOP mēs ierakstām galveno kodu, tas ir, mūsu ziņojumu, kuru vēlamies parādīt displejā.
Lai to izdarītu, mēs aprakstām teksta lielumu, teksta krāsu, kursora pozīciju un, visbeidzot, parādām ziņojumu, izmantojot komandu println:
Beigās neaizmirstiet uzrakstīt displejs.displejslai attēls tiktu parādīts ekrānā, pretējā gadījumā jūs iegūsit tukšumu.
Ja visu izdarījāt pareizi, displejos parādīsies ziņojums.
Šeit ir mūsu programmas Starting_with_Arduino_OLED.ino KODS:
Sveiki! Būdams amatieris elektronikas entuziasts, esmu pārliecināts, ka viss, ko darām – elektroniskās rotaļlietas – paštaisītas preces vai lieli projekti – viss ir aiz ziņkārības un slinkuma. Zinātkāre cenšas izprast un aptvert plašo, nezināmo, izdomāt, kā tā tur darbojas, ko dara, kā kustas. Un slinkums izdomā ko izdomāt, lai neceltos, netuvotos, nepaceltu, nesasmērētos vai ko citu svarīgu.
Tā kā informāciju redzēt ir labāk nekā izdomāt, kas mūsu ierīcē notiks, kas jau ir noticis, vai notiek, mēs noteikti vēlēsimies saņemt šo visnoderīgāko informāciju no mūsu mikrokontrolleriem, sensoriem vai citām ierīcēm. Un jebkurā gadījumā es vēlos saņemt jebkādas ziņas, piemēram, jautājumus, brīdinājumus, atgādinājumus, emocijzīmes, zvaigznes, sirsniņas un tamlīdzīgus.
Tiem, kam arī ir līdzīga vēlme, šeit ir īss ceļvedis mazu un lētu OLED displeju pievienošanai un testēšanai.
Tālāk mēs runāsim par vienu no radioamatieriem plaši pieejamajiem OLED displeju modeļiem, ko kontrolē SSD1306 mikroshēma un kura ekrāna izmērs ir 0,96 collas un izšķirtspēja 128 * 64 vai 128 * 32 pikseļi. Šie displeji ir ideāli piemēroti maziem radioamatieru dizainiem un pašdarinātiem projektiem.
1. darbība: pamatjēdzieni
Mēs to savienosim ar Arduino UNO / NANO, kā arī programmēsim caur Arduino.
- OLED ir Organic Light-Emitting Diode, t.i., pusvadītāju ierīce, kas izgatavota no organiskiem savienojumiem, kas sāk izstarot gaismu, kad caur to iet elektriskā strāva.
- ARDUINO ir platforma apmācībai un ēku automatizācijas un robotikas sistēmām.
- ArduinoIDE - izstrādes vide. Šī ir bezmaksas Arduino programmēšanas programma.
- I2C – Inter-Integrated Circuits, starpčipu sakaru līnija.
- Skice, aka kods, aka programma - Arduino terminoloģija.
Izpildiet norādījumus, lai saprastu, kā pareizi savienot un konfigurēt OLED displeju ar Arduino un kā tā displejā parādīt pielāgotu ziņojumu.
Mēs visu darām soli pa solim.
2. darbība: piederumi
Mums ir vajadzīgas tikai četras lietas:
- 1. Pats OLED displejs ir 0,96 collas (to var iegādāties Aliexpress vai Ebay, tas ir 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.
Vispār pirkt detaļas dažādiem projektiem Aliexpress un Ebay ir ļoti forša lieta, kamēr tu strādā pie viena projekta, daļas citam jau ir ceļā. Galvenais ir neaizmirst veikt pasūtījumu.
3. darbība. Displeja pievienošana
Displeju kontrolē SSD1306 mikroshēma, kas atbalsta piecus sakaru protokolus, no kuriem viens ir I2C. Dati, izmantojot šo protokolu, tiek pārsūtīti tikai pa diviem vadiem, un jo mazāk vadu korpusā, jo labāk, tāpēc tas mums ir diezgan piemērots.Bet! Ir moduļi ar SPI protokolu un pat ar protokola maiņu, tāpēc esiet piesardzīgs, iegādājoties šo moduli.
Izmantotās tapas:
OLED displejs - SCL/SCK (pulkstenis) un SDA (dati), “Plus” jauda (VCC) un “Mīnus” jauda (GND).
Izmantotās tapas:
Arduino UNO - SCL/SCK uz A5 un SSD uz A4, “plus” jauda (+5 V) un “Mīnus” jauda (GND).
Displeja pievienošana Arduino:
- Vcc - 5V
- GND - GND
- SDA-A4
- SCL-A5
4. darbība: I2C skeneris
Katrai ierīcei I2C kopnē ir heksadecimālā adrese, to nevar mainīt, tā ir pieslēgta, katram atbildīgajam ražotājam tā ir jānorāda kaut kur uz korpusa vai instrukcijā. Ir moduļi ar slēdžiem un džemperiem, ar kuriem var mainīt adresi, bet... ja ierīces ir līdz apkaunojumam lētas, tad ražotājs var neapnikt tikt galā ar tik sīku detaļu, tāpēc nāksies noteikt to pats.
Kopā autobusā var izmantot līdz 127 adresēm - 119 ierīcēm un 8 apkalpošanas adresēm. Saziņa notiek šajās adresēs. Ir galvenais, aka Meistars, un ir vergs, aka Slave - kungi jautā, vergi atbild, viss ir vienkārši.
Tā kā mūsu OLED displejā tiek izmantots I2C sakaru protokols un adrese var nebūt norādīta, mēs centīsimies paši noskaidrot šo adresi.
To var izdarīt, augšupielādējot īsu skici savā Arduino platē ar pievienotu OLED. BET!
Nesteidzieties uzreiz augšupielādēt skici Arduino! Vispirms lejupielādēsim “draiveri”, t.i. savienosim bibliotēkas, un, lai to izdarītu, nekavējoties pāriesim uz 5. darbību, pēc tam 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 uz 9600 un, ja viss ir pareizi savienots, 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 nebūtu jāizgudro ritenis no jauna, ArduinoIDE videi ir jāpievieno pāris bibliotēkas, proti: ADAFRUIT GFX un ADAFRUIT SSD1306, tās ir nepieciešamas, lai Arduino varētu patstāvīgi sazināties. ar OLED displeju.
Varat iekļaut šīs bibliotēkas, veicot šīs darbības.
- 1. Programmā ArduinoIDE atveriet izvēlni Sketch.
- 2. Atlasiet “Iekļaut bibliotēkas”.
- 3. Atlasiet “Pārvaldīt 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 mans displejs darbojās greizi, protams, tas var būt saistīts ar manu roku izliekumu, taču pēc šo bibliotēku pirmo versiju instalēšanas viss sāka izskatīties gludi un skaisti. Kādu iemeslu dēļ prātā nāk Puškina rindas:
...un pieredze, grūtu kļūdu dēls,
un ģēnijs, paradoksu draugs.
Vēl viens veids, kā instalēt bibliotēkas, ir pašam atrast, lejupielādēt un instalēt šīs bibliotēkas.
Github piemēram:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Tās ir tās pašas Adafruit bibliotēkas, taču pēc OLED I2C pieprasījuma līdzīgas bibliotēkas var viegli meklēt meklētājprogrammās. Daudzi entuziasti raksta bibliotēkas “sev” un pēc tam ievieto tās tīmeklī. Kuru bibliotēku izmantot, ir atkarīgs no jums.
Lai displejā būtu redzami krievu burti, nepieciešamas arī speciālas bibliotēkas, taču tā ir atsevišķa tēma atsevišķam rakstam.
Kad bibliotēkas ir instalētas, 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.
Priekš šī:
Dodieties uz FAILS > PIEMĒRI > SSD 1306 > atlasiet 128 x 64 i2c.
Ja tiek parādīts ziņojums “Kļūda”, mēģiniet atlasīt SSD 1306 > 128x32 i2c.
Ja "Kļūda" atkārtojas, mēģiniet nomainīt I2C adresi demonstrācijas koda 61. rindā un aizstāt to ar displeja adresi, ko noteicāt 4. darbībā.
Ja kļūda atkārtojas, varat mēģināt rediģēt failu Adafruit_SSD1306.h, tas atrodas mapē Arduino bibliotēkas.
Atveriet failu Adafruit_SSD1306.h teksta redaktorā un atrodiet rindiņas:
//#define SSD1306_128_64
#define SSD1306_128_32
// #define SSD1306_96_16
Atceliet rindas komentāru:
#define SSD1306_128_64.
Tam vajadzētu izskatīties šādi:
#define SSD1306_128_64
//#define SSD1306_128_32
// #define SSD1306_96_16
Ja kļūda atkārtojas, jums jāpārbauda pareizi savienojumi.
Kad lejupielāde būs pabeigta, ekrānā redzēsit testa animāciju, kas nozīmē, ka esat veiksmīgi iestatījis OLED displeju.
Kad esat pilnībā izbaudījis šo animāciju, varat pāriet uz nākamo soli.
7. darbība. Uzrakstiet savu ziņojumu
Lai uzrakstītu savu ziņojumu, vispirms izveidojiet jaunu skici ArduinoIDE programmēšanas vidē.
Galvenē ir iekļautas 4 bibliotēkas:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Pēc tam mēs rakstām atiestatīšanas protokolu:
#define OLED_RESET 4
Adafruit_SSD1306 displejs (OLED_RESET);
Sadaļā VOID SETUP mēs norādām mūsu displeja heksadecimālo adresi 0x3C, ko uzzinājām “4. darbībā”.
Pēc tam mēs inicializējam displeju un notīrām to:
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplejs();
Tālāk VOID LOOP mēs ierakstām galveno kodu, tas ir, mūsu ziņojumu, kuru vēlamies parādīt displejā.
Lai to izdarītu, mēs aprakstām teksta lielumu, teksta krāsu, kursora pozīciju un, visbeidzot, parādām ziņojumu, izmantojot komandu println:
display.setTextSize(2);
displejs.setTextColor(BALTS);
display.setCursor(0,0);
display.println("Labi darīts!");
displejs.displejs();
Beigās neaizmirstiet uzrakstīt displejs.displejslai attēls tiktu parādīts ekrānā, pretējā gadījumā jūs iegūsit tukšumu.
Ja visu izdarījāt pareizi, displejos parādīsies ziņojums.
Šeit ir mūsu programmas Starting_with_Arduino_OLED.ino KODS:
kods.zip
[946 b] (lejupielādes: 4908)
Līdzīgas meistarklases
Īpaši interesanti
Komentāri (10)