#include <LiquidCrystal_I2C.h> // Library untuk LCD dengan protokol I2C
String kata = "Selamat!";
//Object + Variabel
LiquidCrystal_I2C lcdSatu(0x27, 16, 2); //0x27 adalah, 16 Kolom, 2 Baris
void setup() {
lcdSatu.init(); //Variabel + Inisialisasi LCD
lcdSatu.backlight(); //Fungsi untuk Menghidupkan lampu latar LCD
// Menampilkan teks pada baris pertama
lcdSatu.setCursor(5, 0); // Mengatur kursor pada kolom 5, baris 0 (indeks dimulai dari 0)
lcdSatu.print("Halo"); // Menampilkan teks "Halo"
// Menampilkan teks pada baris kedua
lcdSatu.setCursor(0, 1); // Mengatur kursor pada kolom 0, baris 1
lcdSatu.print(kata); // Menampilkan teks "Selamat!"
}
void loop() {
delay(10);
}
/*
Penjelasan Program:
1. **Alamat I2C (0x27):**
- Merujuk pada alamat perangkat I2C yang digunakan oleh modul LCD.
- Alamat ini mungkin berbeda tergantung pada modul. Gunakan I2C scanner jika tidak yakin.
2. **Fungsi `init`:**
- Menginisialisasi LCD agar siap digunakan.
3. **Fungsi `backlight`:**
- Menyalakan lampu latar LCD untuk visibilitas teks.
4. **Fungsi `setCursor`:**
- Menentukan posisi awal teks yang akan ditampilkan pada LCD.
- Parameter pertama: Kolom (0 hingga 15 untuk 16 kolom).
- Parameter kedua: Baris (0 hingga 1 untuk 2 baris).
5. **Fungsi `print`:**
- Menampilkan teks pada LCD dari posisi kursor yang telah ditentukan.
Catatan Penting:
1. **Scanner I2C:**
- Gunakan program I2C scanner jika alamat I2C tidak diketahui:
```cpp
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600);
Serial.println("Scanning I2C...");
for (byte addr = 1; addr < 127; addr++) {
Wire.beginTransmission(addr);
if (Wire.endTransmission() == 0) {
Serial.print("I2C device found at 0x");
Serial.println(addr, HEX);
}
}
}
void loop() {}
```
2. **Karakter LCD:**
- Setiap baris hanya dapat menampilkan hingga 16 karakter. Jika teks lebih panjang, perlu scroll atau penyesuaian.
3. **Pengembangan:**
- Tambahkan fitur seperti tampilan waktu, sensor, atau pesan dinamis pada LCD.
*/