OLED ეკრანი
წინა სტატიაში განვიხილეთ LCD დისპლეის ტექნოლოგია და ვმართეთ დისპლეი არდუინოს გამოყენებით. ამჯერად განვიხილავთ OLED ეკრანს და არდუინოს გამოყენებით გამოვიტანთ მასზე გამოსახულებას.
OLED (Organic Light-Emitting Diode) არის ეკრანების ერთ-ერთი გავრცელებული ვერსია, რომელსაც უამრავ თანამედროვე დევაისებში იყენებენ.
OLED დისპლეი წარმოადგენს ბრტყელი გამოსხივების ტექნოლოგიას, რომელიც დამზადებულია ორგანული თხელი ფირფიტებისგან, ისინი მიმდევრობითაა დალაგებული ორ გამტარს შორის. მოცემული ორგანული მასალა ანათებს როდესაც მასშ დენი გაივლის. ამ ტიპის ეკრანს არ სჭირდება უკანა მხარის განათება (Backlight) LCD დისპლეისგან განსხვავებით. მთავარი მასალა OLED დისპლეიში არის OLED ემიტერი, ორგანული, კარბონზე დაფუძნებული მასალა, რომელიც ანათებს მასში დენის გატარებით. ძირითადი სტრუქტურა OLED დისპლეისი არის ემისიური ფენა სენდვიჩისებურად განლაგებული კათოდსა და ანოდს შორის.
თანამედროვე OLED მონიტორებში შედარებით მეტ ფენას იყენებენ ენერგოეფექტურობისა და გამძლეობისთვის, თუმცა ძირითადიდ სტრუქტურა უცვლელია. ასევე გექნებათ გაგონილი AMOLED და PMOLED ეკრანები, რომლებიც OLED ტექნოლოგიაზე არიან დაფუძნებულები. PMOLED (Passive-Matrix OLED) დისპლეები არის მცირე ზომის, მაქსიმალური რეზოლუცია 128X128. თუმცა მათი დამზადება მარტივი და იაფია. რაც შეეხება AMOLED (Active-Matrix OLED) ეკრანებს ისინი შედარებით რთულია და ძვირია დასამზადებლად , მაგრამ შესაძლოა იყოს დიდი ზომის, გაფართოების და ასევე საკმაოდ ენერგოეფექტური.
OLED არის ერთადერთი ტექნოლოგია, რომელსაც შეუძლია აბსოლუტური შავი და უკიდურესად ნათელი თეთი ფერის მოცემა თითოეულ ფიქსელზე. ამ ტიპის დისპლეის აქვს შესაძლებლობა იყოს ღუნვადი და საკმაოდ თხელი.
Arduino-სთვის შეგვიძლია გამოვიყენოთ საკმაოდ გავრცელებული OLED დისპლეი, SSD1306, რომელიც არსებობს, როგორც I2C ასევე SPI პროტოკოლზე მომუშავე მოდელები, ამ დესპლეის აქვს აორი ზომის მოდელი 0.91 ინჩი (128×32 პიხსელი) და 0.96 ინჩი (128×64 პიქსელი). მის სამართავად დაგვჭირდება Adafruit_GFX.h და Adafruit_SSD1306.h ბიბლიოთეკების გამოყენება, ბიბლიოთეკების გამოყენება საკმაოდ ამარტივებს არდუინოსთვის კოდის დაწერას.
ამშემთხვევაში განვიხილიავთ I2C პროტოკოლზე მომუშავე დისპლეის, რომელსაც მხოლოდ 4 ფეხი აქვს – GND, VCC, SCL, SDA. მოცემული კოდის დანიშნულება არის მხოლოდ ტექსტის გამოტანა დისპლეიზე.
//შემოგვაქვს ბიბლიოთეკები
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED დისპლეის სიგანის ზომა ფიქსელებში
#define SCREEN_HEIGHT 64 // OLED დისპლეის სიმაღლის ზომა ფიქსელებში
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
void setup() {
Serial.begin(9600); // სერიალური კომუნიკაციის დაწყება
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // I2C პროტოკოლის მისამართი 0x3C ან 0x3D
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
delay(2000); //დაყოვნება
display.clearDisplay(); //დისპლეის გასუფთავება
display.setTextSize(1); //ტექსტის ზომის დაღენება
display.setTextColor(WHITE); // ტექსტის ფერის დაყენება
display.setCursor(0, 10); //პიქსელების მიხედვით ადგილის არჩევა საიდან დაიწყება ტექსტის წერა
display.println("Tron.ge"); //ტექსტის დაწერა
display.display(); //ცვლილებების გასუფთავება
}
void loop() {
}
Arduino – OLED Screen
- 5V >>> VCC
- GND >>> GND
- A5 >>> SCL
- A4 >>> SDA
Adafruit SSD1306 ბიბლიოთეკას აქვს საკმაოდ კარგი example კოდი, რომლის გახსნათ შეგიძლიათ Arduino IDE-ში, File>Examples>Adafruit SSD1306 და აირჩიეთ თქვენი დისპლეის შესაბამისი კოდი. ამ კოდში გამოყენებულია ყველა შესაძლო ბრძანება, რომელიც ამ ბიბლიოთეკას გააჩნია, შესაბამისად შეგიძლიათ გაარჩიოთ და გამოიყენოთ მოცემული ბიბლიოთეკის ბრძანებები.