Cari Kode

Tutorial ESP32 11/55 - Menggunakan LCD1602 LCD2004 dengan ESP32 -Kit Pembelajaran IoT ESP32 SunFounder

Tutorial ESP32 11/55 - Menggunakan LCD1602 LCD2004 dengan ESP32 -Kit Pembelajaran IoT ESP32 SunFounder

Dalam tutorial ini, kita akan menjelajahi cara menggunakan LCD1602 dan LCD2004 dengan mikrokontroler ESP32. Layar LCD ini memungkinkan kita untuk menampilkan teks dan informasi lainnya secara efektif, meningkatkan proyek kita dengan umpan balik visual. Kita juga akan membahas cara menyesuaikan kontras untuk memastikan keterbacaan.

ESP32, bagian dari kit pembelajaran IoT SunFounder ESP32, memiliki kemampuan Wi-Fi dan Bluetooth bawaan, menjadikannya alat yang kuat untuk berbagai aplikasi IoT. Dengan menghubungkan LCD ke ESP32, kita dapat dengan mudah menampilkan pesan atau keluaran data dari kode kita, membuat proyek kita lebih interaktif dan ramah pengguna (dalam video pada 00:30).

Penjelasan Perangkat Keras

Komponen utama yang akan kita gunakan termasuk mikrokontroler ESP32 dan modul tampilan LCD1602 atau LCD2004. ESP32 akan berfungsi sebagai otak proyek kita, memproses input dan mengontrol output, termasuk tampilan LCD.

Modul LCD berkomunikasi melalui I2C, yang menyederhanakan pengkabelan dengan hanya menggunakan dua pin data (SDA dan SCL) untuk komunikasi, bersama dengan koneksi daya dan ground. Pengaturan ini secara signifikan mengurangi kompleksitas menghubungkan banyak pin, memungkinkan sirkuit yang lebih bersih dan lebih mudah dikelola.

Detail Datasheet

Produsen SunFounder
Nomor bagian LCD1602
Tegangan logika/IO 5 V
Tegangan suplai 5 V
Ukuran tampilan 16 x 2 karakter
Lampu latar Ya
Antarmuka I2C
Dimensi 80 x 36 mm
Catatan / varian Umumnya digunakan dengan alamat I2C 0x27

 

  • Pastikan suplai tegangan yang tepat (5 V) untuk mencegah kerusakan.
  • Gunakan kabel pendek untuk meminimalkan interferensi pada jalur I2C.
  • Sesuaikan potensiometer untuk visibilitas kontras yang optimal.
  • Periksa alamat I2C jika tampilan tidak berinisialisasi (alamat umum: 0x27, 0x3F).
  • Bersihkan tampilan sebelum memperbarui pesan untuk menghindari tumpang tindih.

Instruksi Pengkabelan

Skema pengkabelan ESP32-11_LCD
ESP32-11_LCD-wiring

Untuk menghubungkan LCD1602 ke ESP32, pertama-tama sambungkan pin ground LCD ke pin ground pada ESP32. Kemudian, sambungkan pin VCC LCD ke output 5V dari ESP32. Untuk komunikasi I2C, sambungkan pin SDA LCD ke pin 21 pada ESP32, dan sambungkan pin SCL LCD ke pin 22 pada ESP32. Pastikan koneksi aman untuk menghindari masalah komunikasi.

Penting untuk dicatat bahwa meskipun ESP32 beroperasi pada level logika 3.3V, LCD1602 memerlukan 5V untuk operasi yang benar. Oleh karena itu, pastikan Anda menggunakan suplai tegangan yang benar untuk menghindari kerusakan pada LCD. Jika Anda menggunakan ukuran LCD yang berbeda, sesuaikan pengkabelan sesuai dengan alamat I2C dan spesifikasinya.

Contoh Kode & Penjelasan

Dalam kode, kita mulai dengan menyertakan pustaka yang diperlukan untuk komunikasi I2C dan LCD. Kita membuat instance dari LCD menggunakan alamat I2C 0x27 dan menentukan bahwa ia memiliki 16 kolom dan 2 baris.

#include  
#include 

LiquidCrystal_I2C lcd(0x27,16,2);  // atur alamat LCD ke 0x27 untuk tampilan 16 karakter dan 2 baris

Pengaturan ini memungkinkan kita untuk mengontrol LCD dengan mudah. Dalam fungsi setup(), kita menginisialisasi LCD dan menyalakan lampu latar, diikuti dengan mencetak pesan selamat datang.

void setup()
{
  lcd.init(); // inisialisasi lcd 
  lcd.backlight(); // Menyalakan lampu latar LCD.
  lcd.print("Hello, world!");   // Cetak pesan ke LCD.
  delay(3000);
}

Dalam fungsi loop(), kita terus memperbarui tampilan dengan membersihkannya, mengatur posisi kursor, dan mencetak nilai hitungan saat ini. Ini menunjukkan bagaimana LCD dapat secara dinamis menampilkan informasi yang berubah.

void loop()
{
  lcd.clear(); 
  lcd.setCursor(0, 0); // Mengatur posisi kursor ke baris pertama dan kolom pertama (0, 0).
  lcd.print("COUNT: ");
  lcd.print(count); // Mencetak nilai saat ini dari variabel count.
  delay(1000);
  count++; // Menambah penghitung sebesar 1. 
}

Kode lengkap akan dimuat di bawah artikel, di mana Anda dapat melihat implementasi lengkap dan fungsionalitas tambahan yang ditambahkan untuk proyek Anda.

Demonstrasi / Apa yang Diharapkan

Setelah semuanya terhubung dan kode diunggah, LCD harus menampilkan "Hello, world!" selama 3 detik sebelum memulai penghitung yang bertambah setiap detik. Anda dapat menyesuaikan kontras menggunakan potensiometer untuk memastikan teks mudah dibaca (dalam video pada 08:45).

Jika Anda mengalami masalah, periksa koneksi pengkabelan dan pastikan alamat I2C yang benar digunakan. Kesalahan umum adalah tidak mencocokkan alamat I2C LCD dengan yang diatur dalam kode, yang dapat mencegah tampilan berfungsi dengan benar.

Stempel Waktu Video

  • 00:00 Mulai
  • 1:47 Pengenalan LCD
  • 3:26 Halaman dokumentasi
  • 5:06 Cara menghubungkan LCD dengan ESP32
  • 9:07 Memilih papan ESP32 dan port COMP di Arduino
  • 8:51 Menginstal Pustaka LCD
  • 10:06 Menemukan alamat I2C untuk LCD
  • 14:00 Penjelasan Kode Arduino
  • 17:50 Demonstrasi
  • 20:54 menggunakan LCD2004 dengan ESP32
  • 22:58 LCD1602 hijau lebih baik daripada biru

Gambar

ESP32_11-5-l2C.MOV_snapshot_00.02.763
ESP32_11-5-l2C.MOV_snapshot_00.02.763
SunFounder-ESP32-Lesson-11-LCD1602.mp4_snapshot_20.23.926
SunFounder-ESP32-Lesson-11-LCD1602.mp4_snapshot_20.23.926
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring
ESP32-11_LCD-wiring-schematic
ESP32-11_LCD-wiring-schematic
810-ESP32 Tutorial 11/55- Arduino code for LCD using ESP32
Bahasa: C++
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

//SDA->21,SCL->22 
LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

int count = 0;

void setup()
{
  lcd.init();// initialize the lcd 
  lcd.backlight(); // Turns on the LCD backlight.
  lcd.print("Hello, world!");   // Print a message to the LCD.
  delay(3000);
}

void loop()
{
  lcd.clear(); 
  lcd.setCursor(0, 0); // Sets the cursor position to the first row and first column (0, 0).
  lcd.print("COUNT: ");
  lcd.print(count); // Prints the current value of the count variable.
  delay(1000);
  count++; // Increments the counter by 1. 
}

Sumber daya & referensi

Berkas📁

Tidak ada file tersedia.