Saya memiliki layar LCD 16x2 standar (saya percaya itu adalah kompatibel dengan Hitachi HD44780 - lihat ringkasan dan spesifikasi di bawah), terhubung ke Arduino Uno menggunakan 4 pin data, seperti yang dijelaskan di sini , meskipun saya telah menambahkan 2x220ohm resistor secara paralel (yaitu 110ohm resistor) pada pin 16 (Backlight ground), dan mengganti Pot dengan resistor statis untuk membuat 4V pada Vo.
Singkatnya, RW disambungkan ke ground, dan RS, Enable, dan Data4-7 terhubung ke pin Arduino, sementara Data 0-3 mengambang.
Saya memiliki hal-hal lain (sensor, transistor dengan SSR optoisolated dan relay listrik, beberapa tombol) yang terhubung ke pin yang berbeda pada Arduino. Kode yang saya gunakan menulis teks ke layar beberapa kali per detik, dan biasanya, layar berfungsi dengan baik.
Namun, ketika relai ditutup (dibutuhkan sekitar 10mA, dan dikontrol oleh transistor yang pada gilirannya dikendalikan dari salah satu pin Arduino), terkadang LCD menjadi kacau. Itu tetap kacau biasanya sampai relay berikutnya ditutup, tetapi kadang-kadang ketika relay membuka, atau setelah beberapa siklus lagi buka / tutup untuk mengatur ulang. Kericuhan selalu dimulai dan berhenti pada saat yang sama dengan relay membuka atau menutup.
Dengan "kacau", maksud saya bahwa setiap kali saya menulisnya menjadi kacau, daripada menulis karakter bahasa Inggris, saya mendapatkan serangkaian karakter, yang biasanya saya tidak dapat mengidentifikasi dalam lembar data (meskipun beberapa saya bisa). String karakter yang kacau ini cenderung bergerak ke kiri di sepanjang layar ketika saya menulis teks baru ke LCD.
Saya yakin itu bukan Arduino itu sendiri menjadi bingung, karena saya menulis teks yang sama ke monitor Serial pada saat yang sama, dan itu tidak kacau.
Sejak itu saya bereksperimen dengan menghubungkan pin RW ke output Arduino, dan Data0-3 ke ground, tetapi ini tidak membantu. Saya telah memberi daya seluruh perangkat dengan baterai 9V atau dengan USB, dan itu tidak membantu. Saya sudah mengganti baterai ... tidak ada perubahan.
Satu-satunya hal yang tampaknya berfungsi adalah tidak memiliki beban yang terhubung ke relay, tetapi itu mengalahkan tujuannya :-)
Saya tidak memiliki penganalisa sinyal atau sesuatu yang lebih canggih dari multimeter, laptop dan Arduino ... Apakah ada yang punya petunjuk untuk membantu saya men-debug ini?
Lembar Ringkasan LCD: http://oomlout.com/LCDD/LCDD-SUMM-BC1602A.pdf
Spesifikasi LCD: http://oomlout.com/LCDD/LCDD-DATA-BC1602A.pdf
Contoh teks yang kacau: