Ako pripojiť OLED I2C displej k ARDUINO
Úvod: Úvod do OLED I2C displeja 128*64 / 128*32.
Ahoj! Keďže som amatérsky nadšenec elektroniky, som si istý, že všetko, čo robíme – elektronické hračky – domáce výrobky alebo veľké projekty – je len zo zvedavosti a lenivosti. Curiosity sa snaží pochopiť a pochopiť to obrovské, neznáme, prísť na to, ako to tam funguje, čo robí, ako sa pohybuje. A lenivosť si niečo vymyslí, aby nevstávala, nepribližovala sa, nedvíhala, nezašpinila alebo čokoľvek iné dôležité.
Keďže vidieť informácie je lepšie ako zisťovať, čo sa v našom zariadení stane, alebo sa už stalo, alebo sa deje, určite budeme chcieť tieto najužitočnejšie informácie dostávať z našich mikrokontrolérov, senzorov alebo iných zariadení. A v každom prípade chcem dostávať akékoľvek správy, ako sú otázky, upozornenia, pripomienky, emotikony, hviezdičky, srdiečka a podobne.
Pre tých, ktorí majú tiež podobnú túžbu, je tu krátky návod na pripojenie a testovanie malých a lacných OLED displejov.
Ďalej budeme hovoriť o jednom z modelov OLED displejov široko dostupných pre rádioamatérov, riadených čipom SSD1306, s veľkosťou obrazovky 0,96 palca a rozlíšením 128 * 64 alebo 128 * 32 pixelov. Tieto displeje sú ideálne pre návrhy malých amatérskych rádií a domáce projekty.
Napojíme ho na Arduino UNO / NANO a cez Arduino aj naprogramujeme.
Postupujte podľa pokynov, aby ste pochopili, ako správne pripojiť a nakonfigurovať OLED displej k Arduinu a ako zobraziť vlastnú správu na jeho displeji.
Všetko robíme krok za krokom.
Potrebujeme len štyri veci:
Vo všeobecnosti je nákup dielov pre rôzne projekty na Aliexpress a Ebay veľmi cool vec, zatiaľ čo vy pracujete na jednom projekte, diely na ďalší sú už na ceste. Hlavná vec je nezabudnúť na objednávku.
Displej je riadený čipom SSD1306, ktorý podporuje päť komunikačných protokolov, z ktorých jeden je I2C. Dáta pomocou tohto protokolu sa prenášajú len po dvoch vodičoch a čím menej vodičov v puzdre, tým lepšie, takže nám to celkom vyhovuje.Ale! Existujú moduly s protokolom SPI a dokonca aj s prepínaním protokolov, takže pri kúpe tohto modulu buďte opatrní.
Použité špendlíky:
OLED displej - SCL/SCK (hodiny) a SDA (dáta), „Plus“ napájanie (VCC) a „Mínusové“ napájanie (GND).
Použité špendlíky:
Arduino UNO - SCL/SCK na A5 a SSD na A4, „Plus“ napájanie (+5V) a „Mínusové“ napájanie (GND).
Pripojenie displeja k Arduinu:
Každé zariadenie na I2C zbernici má hexadecimálnu adresu, nedá sa zmeniť, je napevno zapojené, každý zodpovedný výrobca to musí uviesť niekde na obale alebo v návode. Existujú moduly s prepínačmi a prepojkami, pomocou ktorých sa dá zmeniť adresa, ale... ak sú zariadenia smiešne lacné, tak sa výrobca nemusí obťažovať zaoberať sa takýmto detailom, takže si to budete musieť určiť sami.
Celkovo je možné na zbernici použiť až 127 adries - 119 pre zariadenia a 8 adries pre služby. Komunikácia prebieha na týchto adresách. Existuje hlavný, aka Master, a tam je otrok, alias Slave - Páni sa pýtajú, otroci odpovedajú, všetko je jednoduché.
Keďže náš OLED displej používa komunikačný protokol I2C a adresa nemusí byť špecifikovaná, pokúsime sa zistiť práve túto adresu sami.
Môžete to urobiť nahraním krátkeho náčrtu na dosku Arduino s pripojeným OLED. ALE!
Neponáhľajte sa hneď nahrať skicu do Arduina! Najprv si stiahneme “ovládače”, t.j. prepojme knižnice a aby sme to urobili, okamžite prejdeme na „Krok č. 5“ a potom sa vrátime a budeme pokračovať.
Stiahnite si CODE Finder_I2C_Hex_Address.ino, nahrajte do Arduina.
Otvorte “Port Monitor”, nastavte rýchlosť na 9600 a ak je všetko správne pripojené, program zobrazí adresu zariadenia, v mojom prípade OLED s adresou 0x3F.
Aby všetko fungovalo správne a nemuseli ste znovu vymýšľať koleso, musíte do prostredia ArduinoIDE pripojiť niekoľko knižníc, a to: ADAFRUIT GFX a ADAFRUIT SSD1306, sú potrebné na to, aby Arduino dokázalo samostatne komunikovať. s OLED displejom.
Tieto knižnice môžete zahrnúť podľa týchto krokov.
Pri najnovších verziách knižníc mi displej fungoval nakrivo, to môže byť samozrejme spôsobené zakrivením mojich rúk, ale po nainštalovaní úplne prvých verzií týchto knižníc sa všetko začalo javiť ako hladké a krásne. Z nejakého dôvodu prichádzajú na myseľ Pushkinove riadky:
...a skúsenosť, syn ťažkých chýb,
a génius, priateľ paradoxov.
Ďalším spôsobom inštalácie knižníc je nájsť, stiahnuť a nainštalovať tieto knižnice sami.
Pre príklad Github:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Ide o rovnaké knižnice Adafruit, ale podobné knižnice je možné na žiadosť OLED I2C ľahko vyhľadávať vo vyhľadávačoch. Mnoho nadšencov píše knižnice „pre seba“ a potom ich uverejňuje na webe. Akú knižnicu použijete, je len na vás.
Aby sa na displeji zobrazovali ruské písmená, sú potrebné aj špeciálne knižnice, ale toto je samostatná téma na samostatný článok.
Po nainštalovaní knižníc sa môžete vrátiť ku kroku 4 a nakoniec zistiť hexadecimálnu adresu vášho displeja.
Ak chcete skontrolovať, či všetko funguje podľa očakávania, spustite testovací príklad z ArduinoIDE.
Pre to:
Prejdite na SÚBOR > PRÍKLADY > SSD 1306 > Vybrať 128x64 i2c
Ak sa zobrazí „Chyba“, skúste vybrať SSD 1306 > 128x32 i2c.
Ak sa "Chyba" objaví znova, skúste zmeniť I2C adresu v riadku 61 demo kódu a nahraďte ju adresou vášho displeja, ktorú ste určili v kroku #4.
Ak sa chyba vyskytne znova, môžete skúsiť upraviť súbor Adafruit_SSD1306.h, nachádza sa v priečinku Arduino libraries.
Otvorte súbor Adafruit_SSD1306.h v textovom editore a nájdite riadky:
Odkomentujte riadok:
Malo by to vyzerať takto:
Ak sa chyba vyskytne znova, musíte skontrolovať správne pripojenia.
Po dokončení sťahovania uvidíte na obrazovke testovaciu animáciu, čo znamená, že ste úspešne nastavili svoj OLED displej.
Keď ste si túto animáciu poriadne užili, môžete prejsť na ďalší krok.
Ak chcete napísať vlastnú správu, najprv vytvorte novú skicu v programovacom prostredí ArduinoIDE.
V hlavičke obsahujeme 4 knižnice:
Potom napíšeme resetovací protokol:
V VOID SETUP uvádzame hexadecimálnu adresu nášho displeja 0x3C, ktorú sme sa naučili v “Kroku č. 4”.
Potom inicializujeme displej a vymažeme ho:
Ďalej do VOID LOOP napíšeme hlavný kód, teda našu správu, ktorú chceme zobraziť na displeji.
Aby sme to urobili, popíšeme veľkosť textu, farbu textu, polohu kurzora a nakoniec zobrazíme správu pomocou príkazu println:
Na záver nezabudnite napísať zobraziť.zobraziťaby sa obraz zobrazil na obrazovke, v opačnom prípade vznikne prázdnota.
Ak ste urobili všetko správne, na displejoch sa zobrazí správa.
Tu je Starting_with_Arduino_OLED.ino KÓD nášho programu:
Ahoj! Keďže som amatérsky nadšenec elektroniky, som si istý, že všetko, čo robíme – elektronické hračky – domáce výrobky alebo veľké projekty – je len zo zvedavosti a lenivosti. Curiosity sa snaží pochopiť a pochopiť to obrovské, neznáme, prísť na to, ako to tam funguje, čo robí, ako sa pohybuje. A lenivosť si niečo vymyslí, aby nevstávala, nepribližovala sa, nedvíhala, nezašpinila alebo čokoľvek iné dôležité.
Keďže vidieť informácie je lepšie ako zisťovať, čo sa v našom zariadení stane, alebo sa už stalo, alebo sa deje, určite budeme chcieť tieto najužitočnejšie informácie dostávať z našich mikrokontrolérov, senzorov alebo iných zariadení. A v každom prípade chcem dostávať akékoľvek správy, ako sú otázky, upozornenia, pripomienky, emotikony, hviezdičky, srdiečka a podobne.
Pre tých, ktorí majú tiež podobnú túžbu, je tu krátky návod na pripojenie a testovanie malých a lacných OLED displejov.
Ďalej budeme hovoriť o jednom z modelov OLED displejov široko dostupných pre rádioamatérov, riadených čipom SSD1306, s veľkosťou obrazovky 0,96 palca a rozlíšením 128 * 64 alebo 128 * 32 pixelov. Tieto displeje sú ideálne pre návrhy malých amatérskych rádií a domáce projekty.
Krok 1: Základné pojmy
Napojíme ho na Arduino UNO / NANO a cez Arduino aj naprogramujeme.
- OLED je organická dióda vyžarujúca svetlo, t. j. polovodičové zariadenie vyrobené z organických zlúčenín, ktoré začne vyžarovať svetlo, keď ním prechádza elektrický prúd.
- ARDUINO je platforma pre školenia a systémy automatizácie budov a robotiky.
- ArduinoIDE - vývojové prostredie. Toto je bezplatný programovací program Arduino.
- I2C – Inter-Integrated Circuits, medzičipová komunikačná linka.
- Sketch, aka kód, aka program - Arduino terminológia.
Postupujte podľa pokynov, aby ste pochopili, ako správne pripojiť a nakonfigurovať OLED displej k Arduinu a ako zobraziť vlastnú správu na jeho displeji.
Všetko robíme krok za krokom.
Krok 2: Príslušenstvo
Potrebujeme len štyri veci:
- 1. Samotný OLED displej má 0,96” (môžete si ho kúpiť na Aliexpress alebo Ebay, je dlhý, ale lacný!).
- 2. Arduino UNO / Nano (rovnaké miesto ako displej).
- 3. Spojovacie vodiče (tamtiež).
- 4. Počítač alebo notebook s nainštalovaným ArduinoIDE.
Vo všeobecnosti je nákup dielov pre rôzne projekty na Aliexpress a Ebay veľmi cool vec, zatiaľ čo vy pracujete na jednom projekte, diely na ďalší sú už na ceste. Hlavná vec je nezabudnúť na objednávku.
Krok 3: Pripojenie displeja
Displej je riadený čipom SSD1306, ktorý podporuje päť komunikačných protokolov, z ktorých jeden je I2C. Dáta pomocou tohto protokolu sa prenášajú len po dvoch vodičoch a čím menej vodičov v puzdre, tým lepšie, takže nám to celkom vyhovuje.Ale! Existujú moduly s protokolom SPI a dokonca aj s prepínaním protokolov, takže pri kúpe tohto modulu buďte opatrní.
Použité špendlíky:
OLED displej - SCL/SCK (hodiny) a SDA (dáta), „Plus“ napájanie (VCC) a „Mínusové“ napájanie (GND).
Použité špendlíky:
Arduino UNO - SCL/SCK na A5 a SSD na A4, „Plus“ napájanie (+5V) a „Mínusové“ napájanie (GND).
Pripojenie displeja k Arduinu:
- Vcc - 5V
- GND - GND
- SDA-A4
- SCL-A5
Krok 4: Skener I2C
Každé zariadenie na I2C zbernici má hexadecimálnu adresu, nedá sa zmeniť, je napevno zapojené, každý zodpovedný výrobca to musí uviesť niekde na obale alebo v návode. Existujú moduly s prepínačmi a prepojkami, pomocou ktorých sa dá zmeniť adresa, ale... ak sú zariadenia smiešne lacné, tak sa výrobca nemusí obťažovať zaoberať sa takýmto detailom, takže si to budete musieť určiť sami.
Celkovo je možné na zbernici použiť až 127 adries - 119 pre zariadenia a 8 adries pre služby. Komunikácia prebieha na týchto adresách. Existuje hlavný, aka Master, a tam je otrok, alias Slave - Páni sa pýtajú, otroci odpovedajú, všetko je jednoduché.
Keďže náš OLED displej používa komunikačný protokol I2C a adresa nemusí byť špecifikovaná, pokúsime sa zistiť práve túto adresu sami.
Môžete to urobiť nahraním krátkeho náčrtu na dosku Arduino s pripojeným OLED. ALE!
Neponáhľajte sa hneď nahrať skicu do Arduina! Najprv si stiahneme “ovládače”, t.j. prepojme knižnice a aby sme to urobili, okamžite prejdeme na „Krok č. 5“ a potom sa vrátime a budeme pokračovať.
Krok 4: Pokračovanie:
Stiahnite si CODE Finder_I2C_Hex_Address.ino, nahrajte do Arduina.
Otvorte “Port Monitor”, nastavte rýchlosť na 9600 a ak je všetko správne pripojené, program zobrazí adresu zariadenia, v mojom prípade OLED s adresou 0x3F.
Krok 5: Stiahnite si a pripojte knižnice
Aby všetko fungovalo správne a nemuseli ste znovu vymýšľať koleso, musíte do prostredia ArduinoIDE pripojiť niekoľko knižníc, a to: ADAFRUIT GFX a ADAFRUIT SSD1306, sú potrebné na to, aby Arduino dokázalo samostatne komunikovať. s OLED displejom.
Tieto knižnice môžete zahrnúť podľa týchto krokov.
- 1. V ArduinoIDE prejdite do ponuky Sketch.
- 2. Vyberte „Zahrnúť knižnice“.
- 3. Vyberte „Spravovať knižnice“.
- 4. Nájdite ADAFRUIT GFX a nainštalujte ich.
- 5. Nájdite ADAFRUIT SSD1306 a nainštalujte ich.
Pri najnovších verziách knižníc mi displej fungoval nakrivo, to môže byť samozrejme spôsobené zakrivením mojich rúk, ale po nainštalovaní úplne prvých verzií týchto knižníc sa všetko začalo javiť ako hladké a krásne. Z nejakého dôvodu prichádzajú na myseľ Pushkinove riadky:
...a skúsenosť, syn ťažkých chýb,
a génius, priateľ paradoxov.
Ďalším spôsobom inštalácie knižníc je nájsť, stiahnuť a nainštalovať tieto knižnice sami.
Pre príklad Github:
https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/adafruit/Adafruit_SSD1306
Ide o rovnaké knižnice Adafruit, ale podobné knižnice je možné na žiadosť OLED I2C ľahko vyhľadávať vo vyhľadávačoch. Mnoho nadšencov píše knižnice „pre seba“ a potom ich uverejňuje na webe. Akú knižnicu použijete, je len na vás.
Aby sa na displeji zobrazovali ruské písmená, sú potrebné aj špeciálne knižnice, ale toto je samostatná téma na samostatný článok.
Po nainštalovaní knižníc sa môžete vrátiť ku kroku 4 a nakoniec zistiť hexadecimálnu adresu vášho displeja.
Krok 6: Testovanie displeja
Ak chcete skontrolovať, či všetko funguje podľa očakávania, spustite testovací príklad z ArduinoIDE.
Pre to:
Prejdite na SÚBOR > PRÍKLADY > SSD 1306 > Vybrať 128x64 i2c
Ak sa zobrazí „Chyba“, skúste vybrať SSD 1306 > 128x32 i2c.
Ak sa "Chyba" objaví znova, skúste zmeniť I2C adresu v riadku 61 demo kódu a nahraďte ju adresou vášho displeja, ktorú ste určili v kroku #4.
Ak sa chyba vyskytne znova, môžete skúsiť upraviť súbor Adafruit_SSD1306.h, nachádza sa v priečinku Arduino libraries.
Otvorte súbor Adafruit_SSD1306.h v textovom editore a nájdite riadky:
//#define SSD1306_128_64
#define SSD1306_128_32
// #define SSD1306_96_16
Odkomentujte riadok:
#define SSD1306_128_64.
Malo by to vyzerať takto:
#define SSD1306_128_64
//#define SSD1306_128_32
// #define SSD1306_96_16
Ak sa chyba vyskytne znova, musíte skontrolovať správne pripojenia.
Po dokončení sťahovania uvidíte na obrazovke testovaciu animáciu, čo znamená, že ste úspešne nastavili svoj OLED displej.
Keď ste si túto animáciu poriadne užili, môžete prejsť na ďalší krok.
Krok 7: Napíšte svoju vlastnú správu
Ak chcete napísať vlastnú správu, najprv vytvorte novú skicu v programovacom prostredí ArduinoIDE.
V hlavičke obsahujeme 4 knižnice:
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
Potom napíšeme resetovací protokol:
#define OLED_RESET 4
Displej Adafruit_SSD1306 (OLED_RESET);
V VOID SETUP uvádzame hexadecimálnu adresu nášho displeja 0x3C, ktorú sme sa naučili v “Kroku č. 4”.
Potom inicializujeme displej a vymažeme ho:
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
Ďalej do VOID LOOP napíšeme hlavný kód, teda našu správu, ktorú chceme zobraziť na displeji.
Aby sme to urobili, popíšeme veľkosť textu, farbu textu, polohu kurzora a nakoniec zobrazíme správu pomocou príkazu println:
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("Výborne!");
display.display();
Na záver nezabudnite napísať zobraziť.zobraziťaby sa obraz zobrazil na obrazovke, v opačnom prípade vznikne prázdnota.
Ak ste urobili všetko správne, na displejoch sa zobrazí správa.
Tu je Starting_with_Arduino_OLED.ino KÓD nášho programu:
kód.zip
[946 b] (stiahnutia: 4908)
Podobné majstrovské kurzy
Obzvlášť zaujímavé
Komentáre (10)