Dalam tutorial ini kami memperkenalkan konsep ADC (Analog to Digital Conversion) di ARDUINO UNO. Papan Arduino memiliki enam saluran ADC, seperti yang ditunjukkan pada gambar di bawah ini. Di antara itu salah satu atau semuanya dapat digunakan sebagai input untuk tegangan analog. The Arduino Uno ADC adalah resolusi 10 bit (sehingga nilai integer dari (0- (2 ^ 10) 1023)). Ini berarti akan memetakan tegangan input antara 0 dan 5 volt menjadi nilai integer antara 0 dan 1023. Jadi untuk setiap (5/1024 = 4,9mV) per unit.
Dalam semua ini kita akan menghubungkan potensiometer atau pot ke saluran 'A0', dan kita akan menunjukkan hasil ADC pada tampilan sederhana. Tampilan sederhana adalah unit tampilan 16x1 dan 16x2. Unit tampilan 16x1 akan memiliki 16 karakter dan berada dalam satu baris. 16x2 akan memiliki 32 karakter secara total 16in 1 st line dan 16 lain di 2 nd line. Di sini kita harus memahami bahwa di setiap karakter ada 5x10 = 50 piksel jadi untuk menampilkan satu karakter semua 50 piksel harus bekerja sama, tetapi kita tidak perlu khawatir tentang itu karena ada pengontrol lain (HD44780) di unit tampilan yang melakukan tugas mengontrol piksel (Anda dapat melihatnya di unit LCD, itu adalah mata hitam di bagian belakang).
Komponen Diperlukan
Perangkat keras: ARDUINO UNO, catu daya (5v), JHD_162ALCD (16x2LCD), kapasitor 100uF, pot atau potensiometer 100KΩ, kapasitor 100nF.
Perangkat lunak: Arduino IDE (Arduino nightly)
Diagram Sirkuit dan Penjelasannya
Pada LCD 16x2 terdapat 16 pin seluruhnya jika ada lampu belakang, jika tidak ada lampu belakang akan ada 14 pin. Satu dapat memberi daya atau meninggalkan pin lampu belakang. Sekarang di 14 pin ada 8 data pin (7-14 atau D0-D7), 2 pin power supply (1 & 2 atau VSS & Vdd atau GND & + 5V), 3 rd pin untuk kontrol kontras (VEE-kontrol seberapa tebal karakter harus ditampilkan), dan 3 pin kontrol (RS & RW & E).
Di sirkuit, Anda dapat mengamati bahwa saya hanya mengambil dua pin kontrol, bit kontras dan READ / WRITE tidak sering digunakan sehingga dapat disingkat ke ground. Ini menempatkan LCD dalam kontras tertinggi dan mode baca. Kita hanya perlu mengontrol pin ENABLE dan RS untuk mengirim karakter dan data yang sesuai.
Koneksi yang dilakukan untuk LCD diberikan di bawah ini:
PIN1 atau VSS ke ground
PIN2 atau VDD atau VCC ke daya + 5v
PIN3 atau VEE ke ground (memberikan kontras maksimum yang terbaik untuk pemula)
PIN4 atau RS (Daftar Pilihan) ke PIN8 dari ARDUINO UNO
PIN5 atau RW (Baca / Tulis) ke ground (menempatkan LCD dalam mode baca memudahkan komunikasi untuk pengguna)
PIN6 atau E (Aktifkan) ke PIN9 dari ARDUINO UNO
PIN11 atau D4 ke PIN10 dari ARDUINO UNO
PIN12 atau D5 ke PIN11 dari ARDUINO UNO
PIN13 atau D6 ke PIN12 dari ARDUINO UNO
PIN14 atau D7 ke PIN13 dari ARDUINO UNO
ARDUINO IDE memungkinkan pengguna menggunakan LCD dalam mode 4 bit. Jenis komunikasi ini memungkinkan pengguna untuk mengurangi penggunaan pin pada ARDUINO, tidak seperti yang lain ARDUINO tidak perlu diprogram secara terpisah untuk menggunakannya dalam mode 4 it karena secara default ARDUINO diatur untuk berkomunikasi dalam mode 4 bit. Di sirkuit Anda dapat melihat kami menggunakan komunikasi 4bit (D4-D7).
Jadi dari pengamatan dari tabel diatas kita menghubungkan 6 pin LCD ke controller dimana 4 pin adalah pin data dan 2 pin untuk kontrol.
Gambar di atas menunjukkan diagram sirkuit ADC dari ARDUINO UNO.
Kerja
Untuk menghubungkan LCD ke ARDUINO UNO, kita perlu mengetahui beberapa hal.
|
Pertama-tama saluran ADC UNO memiliki nilai referensi default 5V. Ini berarti kita dapat memberikan tegangan input maksimum 5V untuk konversi ADC di saluran input mana pun. Karena beberapa sensor memberikan tegangan dari 0-2.5V, dengan referensi 5V kami mendapatkan akurasi yang lebih rendah, jadi kami memiliki instruksi yang memungkinkan kami untuk mengubah nilai referensi ini. Jadi untuk mengubah nilai referensi yang kami miliki ("analogReference ();")
Sebagai default kami mendapatkan resolusi ADC papan maksimum yaitu 10 bit, resolusi ini dapat diubah dengan menggunakan instruksi (“analogReadResolution (bits);”). Perubahan resolusi ini dapat berguna untuk beberapa kasus.
Sekarang jika kondisi di atas diatur ke default, kita dapat membaca nilai dari ADC saluran '0' dengan langsung memanggil fungsi "analogRead (pin);", di sini "pin" mewakili pin tempat kita menghubungkan sinyal analog, dalam hal ini akan jadilah “A0”. Nilai dari ADC dapat diambil menjadi integer sebagai “int ADCVALUE = analogRead (A0); ", Dengan instruksi ini nilai setelah ADC disimpan dalam integer" ADCVALUE ".
SEKARANG mari kita bicara sedikit tentang LCD 16x2. Pertama kita perlu mengaktifkan file header ('#include
Kedua, kita perlu memberi tahu papan jenis LCD apa yang kita gunakan di sini. Karena kami memiliki begitu banyak jenis LCD (seperti 20x4, 16x2, 16x1 dll.). Di sini kita akan menghubungkan LCD 16x2 ke UNO sehingga kita mendapatkan 'lcd.begin (16, 2);'. Untuk 16x1 kita mendapatkan 'lcd.begin (16, 1);'.
Dalam instruksi ini kita akan memberi tahu papan di mana kita menghubungkan pin, Pin yang terhubung harus direpresentasikan dalam urutan sebagai "RS, En, D4, D5, D6, D7". Pin ini harus direpresentasikan dengan benar. Karena kami menghubungkan RS ke PIN0 dan seterusnya seperti yang ditunjukkan pada diagram sirkuit, Kami merepresentasikan nomor pin ke board sebagai "LiquidCrystal lcd (0, 1, 8, 9, 10, 11);".
Setelah di atas semua yang tersisa adalah mengirim data, data yang perlu ditampilkan di LCD harus ditulis “cd.print (" hello, world! ");”. Dengan perintah ini LCD menampilkan 'halo, dunia!'.
Seperti yang Anda lihat, kami tidak perlu khawatir tentang hal ini lagi, kami hanya perlu menginisialisasi dan UNO akan siap untuk menampilkan data. Kami tidak perlu menulis loop program untuk mengirim data BYTE oleh BYTE di sini.
Menggunakan ADC dari Arduino Uno dijelaskan langkah demi langkah dalam program C yang diberikan di bawah ini.