OLED displej se stal oblíbenou volbou pro integraci do projektů Arduino, a to především proto, že je kompaktní, má nízkou spotřebu energie a umožňuje výjimečnou viditelnost i ve světlém prostředí. Navíc díky snadnému připojení je jeho použití v dosahu každého nadšence elektroniky bez ohledu na jeho zkušenosti. V tomto článku se podrobně podíváme na to, jak připojit a naprogramovat 0.96palcový OLED displej s Arduinem, podrobně popíšeme jak technické aspekty, tak nabídneme praktické příklady kódu.
Pokud jste nikdy nepracovali s OLED displejem, existuje několik klíčových bodů, které byste měli vědět, než začnete svůj projekt. OLED (Organic Light Emitting Diode) mají zásadní rozdíly s jinými typy obrazovek, jako jsou LCD. OLED například nevyžaduje podsvícení, což výrazně snižuje spotřebu energie. Na obrazovkách o velikosti 0.96 palce to může být nezbytné, pokud je projekt napájen baterií. Nyní se pojďme ponořit do jeho funkcí.
Co je to OLED obrazovka?
Obrazovka OLED je typ displeje, který používá organickou sloučeninu, která vyzařuje světlo při použití elektrického proudu. Díky tomu jsou ideální pro mnoho elektronických projektů, protože jejich technologie umožňuje, aby se každý pixel rozsvítil sám, což také zlepšuje viditelnost venku. Většina OLED obrazovek prodávaných pro Arduino má řadič SSD1306, který umožňuje spravovat odesílání signálů na obrazovku. Ve skutečnosti je SSD1306 jedním z nejběžnějších v projektech Arduino a uvidíme jej v příkladech později.
Jednou z hlavních výhod OLED obrazovek je jejich nízká spotřeba. V průměru může malá 0.96″ obrazovka spotřebovat přibližně 20 mA. Proč je to důležité? Pokud k napájení svého projektu Arduino používáte baterii, snížení spotřeby energie je vždy významným plusem. Jeho rozlišení 128x64 pixelů navíc dokáže vzhledem k jeho velikosti představovat snímky s celkem dobrou ostrostí.
Na druhou stranu jeden z problémů, který by u tohoto typu obrazovky mohl nastat, je, že její velikost je opravdu malá. Přestože nabízejí dobrou viditelnost, v některých projektech, kde je vyžadováno zobrazení velkého množství informací, může být tato velikost nedostatečná.
Připojení OLED displeje k Arduinu
OLED displej se v závislosti na modelu snadno připojí k desce Arduino pomocí sběrnice I2C nebo SPI. V tomto tutoriálu se zaměříme na připojení pomocí I2C, protože je to jedno z nejběžnějších a nejjednodušších.
Musíte propojit piny OLED displeje s odpovídajícími piny vašeho Arduina následovně:
- GND (Ground) s pinem Arduino GND
- VCC s 5V nebo 3.3V pinem Arduina
- SDA na Arduino pin A4
- SCL na pin A5 Arduina
Jak vidíte, připojení je docela jednoduché: potřebujete pouze čtyři kabely. Poté, ať už použijete sběrnici SPI nebo I2C, proces připojení je podobný, i když kolíky se liší v závislosti na typu komunikace, kterou zvolíte.
Příklad kódu pro OLED displej
Aby OLED obrazovka fungovala s Arduinem, jednou z nejlepších možností je použít knihovny vyvinuté společností Adafruit. Řadič SSD1306, jak jsme již zmínili, je kompatibilní s knihovnou SSD disk Adafruit 1306, který nám usnadňuje život při vytváření grafiky a textu na obrazovce.
Níže vám zanechám základní kód, který vám umožní zobrazit text na obrazovce OLED s připojení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 poté napíše "Hello, World!" na OLED obrazovce. Můžete použít různé funkce knihovny Adafruit GFX pro vytváření grafů, kreslení čar, kruhů nebo dokonce zobrazování obrázků na obrazovce.
Další užitečné příklady pro obrazovku OLED
Výše uvedený příklad je pouze základním úvodem, ale s OLED displeji můžete udělat mnohem více. Můžete například kreslit různé geometrické tvary, vytvářet animace nebo dokonce vytvářet malé grafiky.
Jednou z nejzajímavějších funkcí, které knihovny Adafruit nabízejí, je schopnost kreslit více pixelů, což znamená, že můžete vytvářet rolovací animace. Dalším příkladem může být rolování textu, což je velmi užitečné, pokud plánujete zobrazovat zprávy, které se dynamicky mění.
Další využití, které můžete těmto obrazovkám poskytnout, je zobrazení dat v reálném čase v interaktivních projektech, jako je snímač teploty nebo vlhkosti. Obrazovku lze aktualizovat při získávání nových hodnot senzoru, díky čemuž je každý projekt mnohem vizuálnější.
Běžné problémy při používání obrazovek OLED
Jedním z nejčastějších problémů při používání OLED displejů s Arduinem je nedostatek paměti. Knihovny Adafruit, i když jsou velmi kompletní, mohou spotřebovat značné množství paměti v procesoru Arduino, zejména ve verzích, jako je Arduino Uno. Pokud máte problémy s místem, můžete zkusit optimalizovat svůj kód, odebrat funkce, které nepotřebujete, nebo dokonce použít desku s větší kapacitou, jako je Arduino Mega.
Dalším častým problémem je počáteční nastavení připojení I2C. Pokud nepoužíváte správné piny SDA a SCL, displej nemusí fungovat nebo může ukazovat chyby připojení. Ujistěte se, že používáte správné piny na základě vašeho modelu Arduino.
Konečně, někteří uživatelé také hlásí prázdnou obrazovku nebo obrazovku, která nereaguje na žádné příkazy. To lze vyřešit zajištěním správného napájecího napětí (3.3 V nebo 5 V v závislosti na modelu displeje) a správným připojením kabelů.