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:
Jawaban:
Apakah Anda memiliki dioda di relay Anda? Jika tidak lonjakan induktif pada penutupan / pembukaan kemungkinan akan menyebabkan masalah.
Ketika Anda misalnya menghentikan arus yang mengalir melalui relai, ia mencoba untuk membuatnya tetap berjalan, jika tidak ada rute pelepasan itu akan membuat tegangan besar (pada dasarnya itu akan terus naik sampai menemukan rute).
Secara khusus rumusnya adalah V = L (dI / dT). Ini berarti induktor menentang perubahan arus yang melalui itu dengan mengembangkan tegangan yang sebanding dengan laju perubahan arus.
Coba letakkan dioda melintasi relai, yang diorientasikan untuk menentang aliran arus normal.
EDIT - memeriksa halaman produk tampaknya itu adalah relai "siap digulung" dalam sebuah kotak dengan komponen periferal yang ditambahkan, jadi sepertinya tidak seperti di atas. Meski begitu saya akan mencoba menempatkan dioda melintasi daya ke relay.
Pastikan juga pasokan Anda difilter dengan baik seperti yang disebutkan dalam komentar. Tempatkan beberapa kapasitor minimal 1 uF di sebelah IC dan LCD, dan tutup sebagian besar> 100 uF di suatu tempat (semua dari daya ke ground)
sumber
Saya memiliki masalah yang sama dengan layar LCD 16x4 ketika Arduino juga mengendalikan papan relay SainSmart opto-terisolasi . Semuanya bekerja dengan baik dengan kontak relai yang tidak terhubung. Tetapi ketika relai mengalihkan beban induktif (relai daya 24 VAC), layar rusak. Tidak ada jumlah isolasi daya dan kapasitor filter yang membantu.
Apa yang memecahkan masalah adalah snubber (kapasitor dan resistor secara seri) di kontak relay SainSmart. Saya menggunakan filter EMI / RFI Cornell Dubilier yang telah dikemas sebelumnya untuk kerapian, tetapi kapasitor 0,1 ufd kebun-seri secara seri dengan resistor 47-ohm mungkin akan bekerja dengan baik.
sumber
Saya membenturkan kepala mengapa LCD saya "kacau" dan ternyata saya belum menghubungkan GND Arduino saya ke papan tempat memotong roti (jika ini bisa membantu seseorang). Salam
sumber
gunakan kabel berpelindung pada output dan ground. Itu memecahkan masalah bagi saya.
sumber