OLED ekranas tapo populiariu pasirinkimu integruojant į Arduino projektus, daugiausia dėl to, kad jis yra kompaktiškas, sunaudoja mažai energijos ir suteikia išskirtinį matomumą net ir šviesioje aplinkoje. Be to, dėl lengvo prijungimo jį gali naudoti bet kuris elektronikos entuziastas, nepaisant jo patirties. Šiame straipsnyje mes išsamiai apžvelgsime, kaip prijungti ir programuoti 0.96 colio OLED ekraną su Arduino, išsamiai aprašydami techninius aspektus ir pateiksime praktinių kodų pavyzdžių.
Jei niekada nedirbote su OLED ekranu, prieš pradėdami projektą turėtumėte žinoti keletą pagrindinių dalykų. OLED (organinis šviesos diodas) turi esminių skirtumų nuo kitų tipų ekranų, tokių kaip LCD. Pavyzdžiui, OLED nereikalauja foninio apšvietimo, o tai žymiai sumažina energijos sąnaudas. Net 0.96 colio ekranuose tai gali būti labai svarbu, jei projektas maitinamas baterija. Dabar pasigilinkime į jo ypatybes.
Kas yra OLED ekranas?
OLED ekranas yra ekrano tipas, kuriame naudojamas organinis junginys, kuris skleidžia šviesą, kai veikia elektros srovė. Dėl to jie idealiai tinka daugeliui elektronikos projektų, nes jų technologija leidžia kiekvienam pikseliui apšviesti atskirai, o tai taip pat pagerina matomumą lauke. Dauguma Arduino parduodamų OLED ekranų turi SSD1306 valdiklį, kuris leidžia valdyti signalų siuntimą į ekraną. Tiesą sakant, SSD1306 yra vienas iš labiausiai paplitusių Arduino projektuose, ir mes tai pamatysime pavyzdžiuose vėliau.
Vienas pagrindinių OLED ekranų privalumų – mažas jų suvartojimas. Vidutiniškai mažas 0.96 colio ekranas gali sunaudoti apie 20 mA. Kodėl tai svarbu? Na, jei savo Arduino projektui maitinti naudojate bateriją, energijos suvartojimo sumažinimas visada yra didelis pliusas. Be to, jo 128x64 pikselių skiriamoji geba gali atvaizduoti gana gerą ryškumą, atsižvelgiant į jo dydį.
Kita vertus, viena iš problemų, galinčių kilti naudojant tokio tipo ekraną, yra tai, kad jo dydis yra tikrai mažas. Nors jie užtikrina gerą matomumą, kai kuriuose projektuose, kuriuose reikia pateikti daug informacijos, šio dydžio gali nepakakti.
OLED ekrano prijungimas prie Arduino
OLED ekranas lengvai prijungiamas prie Arduino plokštės naudojant I2C arba SPI magistralę, priklausomai nuo modelio. Šioje pamokoje daugiausia dėmesio skirsime ryšiui naudojant I2C, nes jis yra vienas iš labiausiai paplitusių ir paprasčiausių.
Turite sujungti OLED ekrano kaiščius su atitinkamais savo Arduino kaiščiais taip:
- GND (žemė) su Arduino GND kaiščiu
- VCC su 5 V arba 3.3 V „Arduino“ kištuku
- SDA į Arduino kaištį A4
- SCL prie Arduino A5 kaiščio
Kaip matote, prijungimas yra gana paprastas: jums reikia tik keturių laidų. Tada, nesvarbu, ar naudojate SPI, ar I2C magistralę, prisijungimo procesas yra panašus, nors kaiščiai skiriasi priklausomai nuo pasirinkto ryšio tipo.
OLED ekrano kodo pavyzdys
Kad OLED ekranas veiktų su Arduino, vienas geriausių variantų yra naudoti Adafruit sukurtas bibliotekas. SSD1306 valdiklis, kaip minėjome anksčiau, yra suderinamas su biblioteka Adafruit SSD1306, kuri palengvina mūsų gyvenimą kuriant grafiką ir tekstą ekrane.
Žemiau palieku jums pagrindinį kodą, kuris leis jums rodyti tekstą OLED ekrane su I2C ryšiu:
#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() {}
Šis kodas inicijuoja ekraną, išvalo ekraną ir tada parašo "Sveikas, pasauli!" OLED ekrane. Galite naudoti įvairias Adafruit GFX bibliotekos funkcijas, kad sukurtumėte grafikus, nubrėžtumėte linijas, apskritimus ar net rodytumėte vaizdus ekrane.
Kiti naudingi OLED ekrano pavyzdžiai
Aukščiau pateiktas pavyzdys yra tik pagrindinis įvadas, tačiau su OLED ekranais galite nuveikti daug daugiau. Pavyzdžiui, galite piešti įvairias geometrines figūras, kurti animacijas ar net kurti nedidelę grafiką.
Viena iš įdomiausių „Adafruit“ bibliotekų funkcijų yra galimybė piešti kelis pikselius, o tai reiškia, kad galite kurti slenkančias animacijas. Papildomas pavyzdys būtų slenkantis tekstas, kuris yra labai naudingas, jei planuojate rodyti dinamiškai besikeičiančius pranešimus.
Kitas šių ekranų naudojimo būdas – rodyti duomenis realiuoju laiku interaktyviuose projektuose, pvz., temperatūros ar drėgmės jutikliu. Ekranas gali būti atnaujintas, kai gaunami nauji jutiklio rodmenys, todėl bet koks projektas tampa daug vizualesnis.
Dažnos problemos naudojant OLED ekranus
Viena iš dažniausiai pasitaikančių problemų naudojant OLED ekranus su Arduino yra atminties trūkumas. Adafruit bibliotekos, nors ir labai išsamios, gali sunaudoti daug Arduino procesoriaus atminties, ypač tokiose versijose kaip Arduino Uno. Jei turite vietos problemų, galite pabandyti optimizuoti kodą, pašalinti nereikalingas funkcijas ar net naudoti didesnės talpos plokštę, pvz., Arduino Mega.
Kita dažna problema yra pradinė I2C ryšio sąranka. Jei naudojate ne tinkamus SDA ir SCL kaiščius, ekranas gali neveikti arba gali būti rodomos ryšio klaidos. Įsitikinkite, kad naudojate tinkamus kaiščius pagal savo Arduino modelį.
Galiausiai, kai kurie vartotojai taip pat praneša apie tuščią ekraną arba tokį, kuris nereaguoja į jokias komandas. Tai galima išspręsti įsitikinus, kad maitinimo įtampa yra tinkama (3.3 V arba 5 V, priklausomai nuo ekrano modelio) ir tinkamai prijungti kabeliai.