🖥 Tampilan (Display)

7-segment, LCD 16x2, dan OLED — cara MCU "berbicara" ke mata manusia.

📌 1. Display 7-Segment

7 LED disusun membentuk angka. Setiap segmen (a-g) dikontrol satu pin. Ada dua jenis: common cathode (kaki bersama ke GND — nyalakan dengan HIGH) dan common anode (kaki bersama ke 5V — nyalakan dengan LOW).

─── a ─── f b | | ─── g ─── e c | | ─── d ───

Setiap digit diwakili 7 bit (a,b,c,d,e,f,g):

Output:
⚠️ Untuk common anode, balik semua nilai: segmen nyala saat pin LOW (pakai !seg[digit][i]).

📌 2. LCD 16x2 (HD44780)

Rangkaian LCD1602 via I2C
LCD1602 + modul I2C (PCF8574): cukup 4 kabel

Layar teks 2 baris x 16 karakter, paling klasik di proyek Arduino. Bisa dihubungkan 4-bit (6 pin) atau via modul I2C backpack (2 pin: SDA/SCL) — yang kedua jauh lebih praktis.

Fungsi (library LiquidCrystal_I2C)Contoh
Inisialisasilcd.begin(16, 2);
Tulis di baris 1lcd.setCursor(0, 0); lcd.print("Halo");
Tulis di baris 2lcd.setCursor(0, 1); lcd.print("Dunia");
Bersihkanlcd.clear();
Lampu latarlcd.backlight();

Di simulator ini, kita meniru tampilan LCD dengan mencetak ke Serial — logika kodenya (setCursor, print, clear) tetap sama:

Output:

📌 3. OLED SSD1306

Layar OLED 128x64 piksel (umumnya 0,96") — tajam, kontras tinggi, juga via I2C. Dipakai library Adafruit_SSD1306: bisa teks, angka besar, gambar, dan grafik.

display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // alamat I2C display.clearDisplay(); display.setTextSize(2); display.setTextColor(SSD1306_WHITE); display.setCursor(0, 20); display.println("Suhu: 27.5 C"); display.display(); // kirim ke layar
LCD 16x2
Teks 2 baris, murah, lambat, butuh lampu latar.
OLED 128x64
Grafik + teks, tajam, lebih mahal, konsumsi daya lebih besar.
7-Segment
Hanya angka — tapi sangat terang dan murah.

📌 4. LED Matrix 8x8

64 LED dalam grid 8x8 — bisa menampilkan huruf, ikon, dan animasi. Dikontrol dengan teknik scanning: nyalakan satu baris per putaran sangat cepat sehingga mata melihatnya utuh.

// Contoh: tampilkan huruf "A" (8 baris x 8 kolom) const int hurufA[8] = { B00111000, B01000100, B01000100, B01111100, B01000100, B01000100, B01000100, B00000000 }; // Setiap bit = satu LED pada baris tersebut

🧠 Latihan

  1. Lengkapi tabel segmen 7-segment untuk huruf A, b, C, d, E, F (cari sendiri segmen mana yang menyala).
  2. Buat jam digital sederhana di 7-segment: tampilkan detik 0-9 berulang.
  3. Simulasikan LCD: tampilkan "menu" 3 pilihan, tombol pin 2 naik, pin 3 turun, pin 4 pilih (cetak pilihan aktif).
  4. Desain pola huruf "H" untuk LED matrix 8x8 (8 baris, masing-masing 8 bit).