Share
Pin
Tweet
Send
Share
Send
Zdravím! Som amatér, nadšenec elektroniky, som si istý, že všetko, čo robíme, sú elektronické hračky - domáce výrobky alebo veľké projekty, všetko zo zvedavosti a lenivosti. Zvedavosť sa snaží pochopiť a pochopiť nesmierne neznáme, pochopiť, ako to funguje, čo robí, ako sa pohybuje. A lenivosť vynára, aby prišla s týmto, aby sa nevstala, nezmestila sa, nezvýšila, neznečistila alebo niečo iné dôležité.
Keďže videnie informácií je lepšie ako porozumieť tomu, čo sa v našom zariadení deje alebo sa už stalo alebo sa deje, určite budeme chcieť získať tieto veľmi užitočné informácie od 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, varovania, upomienky, emotikony, hviezdičky, srdcia a podobne.
Pre tých, ktorí majú tiež podobné želanie, je tu rýchly sprievodca pripojením a kontrolou malých a lacných OLED displejov.
Ďalej budeme hovoriť o jednom zo široko dostupných modelov rádioprijímača OLED displejov ovládaných čipom SSD1306 s veľkosťou obrazovky 0,96 palca a rozlíšením 128 x 64 alebo 128 x 32 pixlov. Tieto displeje sú ideálne pre malé amatérske návrhy rádií a domáce výrobky.
Krok 1: Kľúčové koncepcie
Pripojíme ho k Arduino UNO / NANO a ak ho naprogramujeme, pripojíme ho aj cez Arduino.
- OLED je organická dióda emitujúca svetlo, t.j. polovodičové zariadenie vyrobené z organických zlúčenín, ktoré začne emitovať svetlo, keď ním prechádza elektrický prúd.
- ARDUINO je platforma pre školenie a automatizáciu budov a robotické systémy.
- ArduinoIDE je vývojové prostredie. Toto je bezplatný programovací nástroj Arduino.
- I2C - Interintegrované obvody, komunikačná linka medzi mikroobvodmi.
- Náčrtok, je to kód, je to program - Arduino terminológia.
Postupujte podľa pokynov, aby ste pochopili, ako správne pripojiť a nakonfigurovať OLED displej k Arduino a ako zobraziť svoju vlastnú správu na jeho displeji.
Robíme všetko v krokoch.
Krok 2: Príslušenstvo
Budeme potrebovať iba štyri veci:
- 1. Samotný OLED displej je 0,96 ”(je možné ho kúpiť na Aliexpress alebo Ebay, - dlhé, ale lacné!).
- 2. Arduino UNO / Nano (na rovnakom mieste ako displej).
- 3. Pripojovacie vodiče (tamtiež).
- 4. Počítač alebo laptop s nainštalovaným ArduinoIDE.
Všeobecne platí, že nákup dielov pre rôzne projekty na Aliexpress a Ebay je veľmi cool vec, zatiaľ čo vy robíte jeden projekt, diely pre iný sú už na ceste. Hlavnou vecou je nezabudnúť na objednávku.
Krok 3: Pripojte displej
Displej je riadený čipom SSD1306, ktorý podporuje päť komunikačných protokolov, z ktorých jeden je I2C. Údaje o tomto protokole sa prenášajú iba dvoma drôtmi a čím menej drôtov v prípade, tým lepšie, takže nám to dobre vyhovuje. Ale! Existujú moduly s protokolom SPI a dokonca aj prepínaním protokolov, takže pri kúpe tohto modulu buďte opatrní.
Použité závery:
OLED displej - SCL / SCK (hodiny) a SDA (dáta), výkon „Plus“ (VCC) a „mínus“ (GND).
Použité závery:
Arduino UNO - SCL / SCK na A5 a SSD na A4, výkon „plus“ (+ 5 V) a „mínus“ (GND).
Pripojte displej k Arduino:
- Vcc - 5V
- GND - GND
- SDA - A4
- SCL - A5
Krok 4: Scanner I2C
Každé zariadenie na zbernici I2C má hexadecimálnu adresu, nemôžete ho zmeniť, je pevne šité, každý zodpovedný výrobca to musí niekde uviesť v prípade alebo v pokynoch. Existujú moduly s prepínačmi a prepojkami, pomocou ktorých môžete zmeniť adresu, ale ... ak sú zariadenia lacné, na škaredosť, potom sa výrobca nemusí obťažovať zaoberať sa takým maličkosťou, takže ho budete musieť určiť sami.
Celkovo je možné na zbernici použiť až 127 adries - 119 pre zariadenia a 8 servisných adries. Komunikácia prebieha na týchto adresách. Existuje pán, je pán, ale je otrok, je tiež otrok - Majstri sa pýtajú, stúpenci odpovedajú, všetko je jednoduché.
Pretože náš OLED displej používa komunikačný protokol I2C a adresa nemusí byť uvedená, pokúsime sa zistiť túto adresu.
To sa dá dosiahnuť stiahnutím krátkej náčrtu na vašu dosku Arduino s pripojeným OLED. ALE!
Urobte si čas a okamžite nahrajte náčrt do Arduina! Najprv stiahneme „ovládač“, t. prepojíme knižnice, a preto prejdeme rovno 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 na Arduino.
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 objavovať koleso, musíte k prostrediu ArduinoIDE pripojiť niekoľko knižníc, konkrétne: ADAFRUIT GFX a ADAFRUIT SSD1306, aby Arduino dokázal nezávisle komunikovať s displejom OLED.
Tieto knižnice sa dajú prepojiť podľa týchto krokov.
- 1. V ArduinoIDE prejdite do ponuky Skica.
- 2. Vyberte možnosť Zahrnúť knižnice / Zahrnúť knižnice.
- 3. Vyberte možnosť „Spravovať knižnice“ / Spravované knižnice.
- 4. Nájdite ADAFRUIT GFX a nainštalujte ich.
- 5. Nájdite ADAFRUIT SSD1306 a nainštalujte ich.
S najnovšími verziami knižníc pre mňa displej fungoval bezvýchodne, možno, samozrejme, je to kvôli zakriveniu rúk, ale po nainštalovaní prvých verzií týchto knižníc sa všetko začalo javiť hladko a krásne. Z nejakého dôvodu sa Pushkinove línie objavia v jeho pamäti:
... a skúsenosti syna ťažkých chýb,
a génius, paradoxy priateľov.
Ďalším spôsobom, ako nainštalovať knižnice, je nájsť, stiahnuť a nainštalovať tieto knižnice sami.
Napríklad Github:
//github.com/adafruit/Adafruit-GFX-Library
//github.com/adafruit/Adafruit_SSD1306
Sú to rovnaké knižnice Adafruit, ale podobné knižnice sa dajú ľahko vyhľadávať vo vyhľadávačoch na žiadosť OLED I2C. Mnoho nadšencov píše knižnice „pre seba“ a potom ich umiestňujú na web. Ktorá knižnica sa má použiť, je len na vás.
Aby displej zobrazoval ruské písmená, sú potrebné aj špeciálne knižnice, ale toto je samostatná téma samostatného článku.
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 príklad testu z ArduinoIDE.
Postupujte takto:
Prejdite na SÚBOR> PRÍKLADY> SSD 1306> Vyberte 128x64 i2c
Ak sa zobrazí chyba, skúste zvoliť SSD 1306> 128x32 i2c.
Ak sa chyba opakuje, skúste zmeniť adresu I2C na riadku 61 demo kódu a nahradiť ju adresou displeja, ktorú ste určili v kroku č. 4.
Ak sa chyba vyskytne znova, môžete skúsiť upraviť súbor Adafruit_SSD1306.h, ktorý sa nachádza v priečinku s knižnicami Arduino.
Otvorte súbor Adafruit_SSD1306.h v textovom editore a vyhľadajte riadky:
// # define SSD1306_128_64 #definovať SSD1306_128_32 // #definovať SSD1306_96_16
Zrušte označenie riadku:
#define SSD1306_128_64.
Malo by to byť toto:
#definovať SSD1306_128_64 // # definovať SSD1306_128_32 // #definovať SSD1306_96_16
Ak je chyba znova, je potrebné skontrolovať správne pripojenia.
Po dokončení sťahovania sa na obrazovke zobrazí skúšobná animácia, čo znamená, že ste úspešne nakonfigurovali displej OLED.
Ak si túto animáciu užijete, môžete prejsť na ďalší krok.
Krok 7: Napísanie vlastnej správy
Ak chcete napísať svoju vlastnú správu, najprv vytvorte novú skicu v programovacom prostredí ArduinoIDE.
V hlavičke pripájame 4 knižnice:
#include #include #include #include
Potom napíšeme resetovací protokol:
#define Displej OLED_RESET 4 Adafruit_SSD1306 (OLED_RESET);
V VOID SETUP zadajte hexadecimálnu adresu nášho displeja 0x3C, ktorú sme zistili v kroku č. 4.
Potom inicializujte displej a vymažte ho:
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); display.clearDisplay ();
Ďalej vo VOID LOOP píšeme hlavný kód, teda našu správu, ktorú chceme zobraziť na displeji.
Aby sme to dosiahli, opíšeme veľkosť textu, farbu textu, pozíciu 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 konci nezabudnite napísať display.displayaby sa obrázok zobrazil na obrazovke, inak dôjde k zrušeniu platnosti.
Ak ste urobili všetko správne, na displeji sa zobrazí správa.
Tu je CODE Starting_with_Arduino_OLED.ino nášho programu:
code.zip 946 b (počet stiahnutí: 1366)
Share
Pin
Tweet
Send
Share
Send