OLED displej sa stal populárnou voľbou pre integráciu do projektov Arduino, hlavne preto, že je kompaktný, má nízku spotrebu energie a umožňuje výnimočnú viditeľnosť aj v jasnom prostredí. Navyše, vďaka jednoduchému pripojeniu je jeho použitie v dosahu každého nadšenca elektroniky bez ohľadu na jeho skúsenosti. V tomto článku sa podrobne pozrieme na to, ako pripojiť a naprogramovať 0.96-palcový OLED displej s Arduino, podrobne opíšeme technické aspekty a ponúkneme praktické príklady kódu.
Ak ste nikdy nepracovali s OLED displejom, pred začatím projektu by ste mali vedieť niekoľko kľúčových bodov. OLED (Organic Light Emitting Diode) majú zásadné rozdiely s inými typmi obrazoviek, ako sú LCD. OLED napríklad nevyžaduje podsvietenie, čo výrazne znižuje spotrebu energie. Na obrazovkách s veľkosťou len 0.96 palca to môže byť nevyhnutné, ak je projekt napájaný z batérie. Teraz sa pozrime na jeho vlastnosti.
Čo je to OLED obrazovka?
Obrazovka OLED je typ displeja, ktorý využíva organickú zlúčeninu, ktorá vyžaruje svetlo, keď je aplikovaný elektrický prúd. Vďaka tomu sú ideálne pre mnohé elektronické projekty, pretože ich technológia umožňuje, aby sa každý pixel rozsvietil samostatne, čo tiež zlepšuje viditeľnosť vonku. Väčšina obrazoviek OLED predávaných pre Arduino má radič SSD1306, ktorý umožňuje spravovať odosielanie signálov na obrazovku. V skutočnosti je SSD1306 jedným z najbežnejších v projektoch Arduino a uvidíme ho v príkladoch neskôr.
Jednou z hlavných výhod OLED obrazoviek je ich nízka spotreba. V priemere môže malá 0.96″ obrazovka spotrebovať približne 20 mA. Prečo je to dôležité? Ak na napájanie svojho projektu Arduino používate batériu, zníženie spotreby energie je vždy významným plusom. Navyše, jeho rozlíšenie 128x64 pixelov dokáže predstavovať obrázky s celkom dobrou ostrosťou vzhľadom na jeho veľkosť.
Na druhej strane, jeden z problémov, ktorý by mohol nastať pri tomto type obrazovky je, že jej veľkosť je naozaj malá. Hoci ponúkajú dobrú viditeľnosť, v niektorých projektoch, kde sa vyžaduje zobrazenie veľkého množstva informácií, môže byť táto veľkosť nedostatočná.
Pripojenie OLED displeja k Arduinu
OLED displej sa ľahko pripája k Arduino doske pomocou zbernice I2C alebo SPI, v závislosti od modelu. V tomto návode sa zameriame na pripojenie pomocou I2C, keďže je to jedno z najbežnejších a najjednoduchších.
Musíte prepojiť kolíky OLED displeja s príslušnými kolíkmi vášho Arduina takto:
- GND (Ground) s kolíkom Arduino GND
- VCC s kolíkom Arduino 5V alebo 3.3V
- SDA na Arduino pin A4
- SCL na kolík A5 Arduina
Ako vidíte, pripojenie je celkom jednoduché: potrebujete iba štyri káble. Potom, či už používate zbernicu SPI alebo I2C, proces pripojenia je podobný, aj keď kolíky sa líšia v závislosti od typu komunikácie, ktorú si vyberiete.
Príklad kódu pre OLED displej
Aby OLED obrazovka fungovala s Arduinom, jednou z najlepších možností je použiť knižnice vyvinuté spoločnosťou Adafruit. Radič SSD1306, ako sme už spomínali, je kompatibilný s knižnicou Adafruit SSD 1306, ktorý nám uľahčuje život pri vytváraní grafiky a textu na obrazovke.
Nižšie vám zanechám základný kód, ktorý vám umožní zobraziť text na obrazovke OLED s pripojením I2C:
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.display();
delay(2000);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
display.setCursor(0, 10);
display.println(F("Hola, Mundo!"));
display.display();
}
void loop() {}
Tento kód inicializuje obrazovku, vymaže displej a potom napíše "Hello, World!" na OLED obrazovke. Môžete použiť rôzne funkcie knižnice Adafruit GFX na vytváranie grafov, kreslenie čiar, kruhov alebo dokonca zobrazovanie obrázkov na obrazovke.
Ďalšie užitočné príklady obrazovky OLED
Vyššie uvedený príklad je len základným úvodom, no s OLED displejmi môžete urobiť oveľa viac. Môžete napríklad kresliť rôzne geometrické tvary, robiť animácie alebo dokonca vytvárať malé grafiky.
Jednou z najzaujímavejších funkcií, ktoré knižnice Adafruit ponúkajú, je schopnosť kresliť viacero pixelov, čo znamená, že môžete vytvárať rolovacie animácie. Ďalším príkladom môže byť rolovanie textu, čo je veľmi užitočné, ak plánujete zobrazovať správy, ktoré sa dynamicky menia.
Ďalším využitím týchto obrazoviek je zobrazenie údajov v reálnom čase v interaktívnych projektoch, ako je napríklad snímač teploty alebo vlhkosti. Obrazovku je možné aktualizovať pri získavaní nových hodnôt senzorov, vďaka čomu je každý projekt oveľa vizuálnejší.
Bežné problémy pri používaní obrazoviek OLED
Jedným z najčastejších problémov pri používaní OLED displejov s Arduino je nedostatok pamäte. Knižnice Adafruit, aj keď sú veľmi kompletné, môžu spotrebovať značné množstvo pamäte na procesore Arduino, najmä vo verziách ako Arduino Uno. Ak máte problémy s priestorom, môžete skúsiť optimalizovať svoj kód, odstrániť funkcie, ktoré nepotrebujete, alebo dokonca použiť dosku s väčšou kapacitou, ako je Arduino Mega.
Ďalším častým problémom je počiatočné nastavenie pripojenia I2C. Ak nepoužívate správne kolíky SDA a SCL, displej nemusí fungovať alebo môže vykazovať chyby pripojenia. Uistite sa, že používate správne kolíky na základe vášho modelu Arduino.
Niektorí používatelia napokon hlásia aj prázdnu obrazovku alebo obrazovku, ktorá nereaguje na žiadne príkazy. Dá sa to vyriešiť zabezpečením správneho napájacieho napätia (3.3 V alebo 5 V v závislosti od modelu displeja) a správnym pripojením káblov.