Kompletan vodič: 0.96″ OLED ekrani sa Arduinom

oled

OLED ekran je postao popularan izbor za integraciju u Arduino projekte, uglavnom zato što je kompaktan, ima nisku potrošnju energije i omogućava izuzetnu vidljivost čak i u svijetlim okruženjima. Nadalje, zahvaljujući jednostavnom povezivanju, njegova upotreba je na dohvat ruke svakom entuzijastu elektronike, bez obzira na njihovo iskustvo. U ovom članku ćemo detaljno pogledati kako povezati i programirati OLED ekran od 0.96 inča s Arduinom, s detaljima i tehničkim aspektima i nudeći praktične primjere koda.

Ako nikada niste radili sa OLED ekranom, postoji nekoliko ključnih tačaka koje biste trebali znati prije nego što započnete svoj projekat. OLED (Organic Light Emitting Diode) imaju fundamentalne razlike u odnosu na druge tipove ekrana kao što su LCD. Na primjer, OLED ne zahtijeva pozadinsko osvjetljenje, što značajno smanjuje potrošnju energije. Na ekranima od samo 0.96 inča, ovo može biti bitno ako se projekt napaja baterijama. Sada, hajde da se udubimo u njegove karakteristike.

Šta je OLED ekran?

OLED ekran je tip ekrana koji koristi organsko jedinjenje koje emituje svetlost kada se primeni električna struja. To ih čini idealnim za mnoge elektronske projekte, jer njihova tehnologija omogućava da svaki piksel osvijetli za sebe, što također poboljšava vidljivost na otvorenom. Većina OLED ekrana koji se prodaju za Arduino imaju SSD1306 kontroler, koji omogućava upravljanje slanjem signala na ekran. Zapravo, SSD1306 je jedan od najčešćih u Arduino projektima, a kasnije ćemo ga vidjeti u primjerima.

Jedna od glavnih prednosti OLED ekrana je njihova niska potrošnja. U prosjeku, mali ekran od 0.96″ može potrošiti oko 20mA. Zašto je ovo važno? Pa, ako koristite bateriju za napajanje vašeg Arduino projekta, smanjenje potrošnje energije je uvijek značajan plus. Osim toga, njegova rezolucija od 128x64 piksela može predstavljati slike sa prilično dobrom oštrinom s obzirom na veličinu.

S druge strane, jedan od problema koji bi mogao nastati kod ovakvog tipa ekrana je da je njegova veličina zaista mala. Iako nude dobru vidljivost, u nekim projektima gdje je potrebno prikazati mnogo informacija, ova veličina može biti nedovoljna.

Povezivanje OLED ekrana na Arduino

OLED ekran se lako povezuje na Arduino ploču pomoću I2C ili SPI magistrale, ovisno o modelu. Za ovaj tutorijal ćemo se fokusirati na povezivanje pomoću I2C, jer je to jedno od najčešćih i najjednostavnijih.

Morate spojiti pinove OLED displeja sa odgovarajućim pinovima vašeg Arduina na sljedeći način:

  • GND (Uzemljenje) sa Arduino GND pinom
  • VCC sa 5V ili 3.3V pinom Arduina
  • SDA na Arduino pin A4
  • SCL na pin A5 Arduina

Kao što vidite, povezivanje je prilično jednostavno: potrebna su vam samo četiri kabla. Zatim, bilo da koristite SPI ili I2C sabirnicu, proces povezivanja je sličan, iako se pinovi razlikuju ovisno o vrsti komunikacije koju odaberete.

Primjer koda za OLED ekran

Da bi OLED ekran radio s Arduinom, jedna od najboljih opcija je korištenje biblioteka koje je razvio Adafruit. SSD1306 kontroler, kao što smo već spomenuli, kompatibilan je sa bibliotekom Adafruit SSD1306, što nam olakšava život pri kreiranju grafike i teksta na ekranu.

U nastavku vam ostavljam osnovni kod koji će vam omogućiti da prikažete tekst na OLED ekranu sa I2C vezom:

#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() {}

Ovaj kod inicijalizuje ekran, briše ekran i zatim piše "Hello, World!" na OLED ekranu. Možete koristiti različite funkcije Adafruit GFX biblioteke za kreiranje grafikona, crtanje linija, krugova ili čak prikazivanje slika na ekranu.

Ostali korisni primjeri za OLED ekran

Gornji primjer je samo osnovni uvod, ali možete učiniti mnogo više s OLED ekranima. Na primjer, možete crtati različite geometrijske oblike, praviti animacije ili čak kreirati male grafike.

Jedna od najzanimljivijih karakteristika koje Adafruit biblioteke nude je mogućnost crtanja više piksela, što znači da možete kreirati animacije za pomicanje. Dodatni primjer bi bio pomicanje teksta, što je vrlo korisno ako planirate prikazati poruke koje se dinamički mijenjaju.

Još jedna upotreba koju možete dati ovim ekranima je prikazivanje podataka u realnom vremenu u interaktivnim projektima, kao što je senzor temperature ili vlažnosti. Ekran se može ažurirati kako se dobijaju nova očitanja senzora, čineći svaki projekat mnogo vizualnijim.

Uobičajeni problemi pri korištenju OLED ekrana

Jedan od najčešćih problema pri korištenju OLED ekrana sa Arduinom je nedostatak memorije. Adafruit biblioteke, iako vrlo kompletne, mogu zauzeti znatnu količinu memorije na Arduino procesoru, posebno u verzijama poput Arduino Uno. Ako imate problema sa prostorom, možete pokušati optimizirati svoj kod, ukloniti funkcije koje vam nisu potrebne ili čak koristiti ploču većeg kapaciteta, kao što je Arduino Mega.

Još jedan čest problem je početno podešavanje I2C veze. Ako ne koristite ispravne SDA i SCL pinove, ekran možda neće raditi ili prikazati greške u vezi. Uvjerite se da koristite ispravne igle na osnovu vašeg Arduino modela.

Konačno, neki korisnici prijavljuju i prazan ekran ili onaj koji ne odgovara ni na jednu komandu. Ovo se može riješiti tako da se osigura da je napon napajanja ispravan (3.3V ili 5V u zavisnosti od modela ekrana) i da su kablovi ispravno povezani.