OLED Ekran Sürücüleri: Adafruit vs U8g2 Performans Testi
# OLED Ekran Sürücüleri Kütüphanesi Seçimi: Performans Karşılaştırması
Arduino ile OLED ekran (SSD1306, SH1106) kullanan projelerde, doğru kütüphaneyi seçmek hız ve bellek kullanımını ciddi şekilde etkileyebilir. Özellikle IoT cihazlarda, her milisaniye ve her byte önemlidir.
Adafruit SSD1306: Kolay kullanım, geniş dokümantasyon, biraz yavaş.
U8g2: Hızlı, az bellek, daha sert öğrenme eğrisi.
SSD1306 (Lexical): Hafif, orta hız.
Aynı görevi (metin yazma + grafik çizme) her kütüphaneyle yapıp zamanı ölçeceğiz.
1#include <Adafruit_SSD1306.h>2#include <Adafruit_GFX.h>34#define SCREEN_WIDTH 1285#define SCREEN_HEIGHT 646Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);78void setup() {9Serial.begin(115200);10display.begin(SSD1306_SWITCHCAPVCC, 0x3C);11display.clearDisplay();12display.setTextSize(1);13display.setTextColor(SSD1306_WHITE);1415unsigned long start = micros();1617for(int i = 0; i < 100; i++) {18display.clearDisplay();19display.setCursor(0, 0);20display.println("Adafruit Test");21display.drawRect(10, 20, 50, 30, SSD1306_WHITE);22display.display();23}2425unsigned long elapsed = micros() - start;26Serial.print("Adafruit 100 döngü: ");27Serial.print(elapsed / 1000.0);28Serial.println(" ms");29}3031void loop() {}Beklenen çıktı: ~450-550 ms (Arduino Uno)
1#include <U8g2lib.h>23U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);45void setup() {6Serial.begin(115200);7u8g2.begin();89unsigned long start = micros();1011for(int i = 0; i < 100; i++) {12u8g2.clearBuffer();13u8g2.setFont(u8g2_font_ncenB08_tr);14u8g2.drawStr(0, 15, "U8g2 Test");15u8g2.drawFrame(10, 20, 50, 30);16u8g2.sendBuffer();17}1819unsigned long elapsed = micros() - start;20Serial.print("U8g2 100 döngü: ");21Serial.print(elapsed / 1000.0);22Serial.println(" ms");23}2425void loop() {}Beklenen çıktı: ~200-280 ms (Arduino Uno)
U8g2 2-3 kat daha hızlı, bellek tüketimi de daha az. Hız kritikse U8g2'yi seç. Başlangıç kolaylığı istiyorsan Adafruit'i tercih et.
bknz: bknz: Distributed Tracing Kurulumu: OpenTelemetry ile İstek Akışını İzleme
0 yorum