Dalam tutorial ini kami memperkenalkan konsep ADC (Analog ke Digital Conversion) di ARDUINO UNO. Papan Arduino mempunyai enam saluran ADC, seperti yang ditunjukkan dalam gambar di bawah. Di antara salah satu atau semuanya boleh digunakan sebagai input untuk voltan analog. The Arduino Uno ADC adalah resolusi 10 bit (supaya nilai integer dari (0- (2 ^ 10) 1023)). Ini bermaksud bahawa ia akan memetakan voltan 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 paparan sederhana. Paparan ringkas adalah unit paparan 16x1 dan 16x2. Unit paparan 16x1 akan mempunyai 16 aksara dan berada dalam satu baris. 16x2 akan mempunyai 32 aksara dalam jumlah 16in 1 st talian dan satu lagi 16 dalam 2 nd garis. Di sini kita harus memahami bahawa dalam setiap watak terdapat 5x10 = 50 piksel, jadi untuk memaparkan satu watak, semua 50 piksel mesti bekerjasama, tetapi kita tidak perlu risau kerana itu terdapat alat kawalan lain (HD44780) di unit paparan yang melakukan tugas mengawal piksel (anda dapat melihatnya dalam unit LCD, itu adalah mata hitam di belakang).
Komponen Diperlukan
Perkakasan: ARDUINO UNO, bekalan kuasa (5v), JHD_162ALCD (16x2LCD), kapasitor 100uF, periuk atau potensiometer 100KΩ, kapasitor 100nF.
Perisian: arduino IDE (Arduino setiap malam)
Rajah dan Penjelasan Litar
Dalam LCD 16x2 terdapat 16 pin di atas semua jika ada lampu belakang, jika tidak ada lampu belakang akan ada 14 pin. Seseorang boleh menghidupkan atau meninggalkan pin lampu belakang. Sekarang dalam 14 pin terdapat 8 data pin (7-14 atau D0-D7), 2 pin bekalan kuasa (1 & 2 atau VSS & VDD atau GND & + 5V), 3 rd pin untuk kawalan kontras (VEE-kawalan berapa tebal watak-watak perlu ditunjukkan), dan 3 pin kawalan (RS & RW & E).
Di litar, anda dapat melihat bahawa saya hanya mengambil dua pin kawalan, bit kontras dan BACA / MENULIS tidak sering digunakan sehingga boleh dipendekkan ke tanah. Ini meletakkan LCD dalam mod kontras dan baca tertinggi. Kita hanya perlu mengawal pin ENABLE dan RS untuk menghantar watak dan data yang sesuai.
Sambungan yang dilakukan untuk LCD diberikan di bawah:
PIN1 atau VSS ke pembumian
PIN2 atau VDD atau VCC untuk +5v kuasa
PIN3 atau VEE ke ground (memberikan kontras maksimum terbaik untuk pemula)
PIN4 atau RS (Daftar Pilihan) ke PIN8 dari ARDUINO UNO
PIN5 atau RW (Baca / Tulis) ke tanah (meletakkan LCD dalam mod baca memudahkan komunikasi untuk pengguna)
PIN6 atau E (Aktifkan) ke PIN9 dari ARDUINO UNO
PIN11 atau D4 hingga PIN10 dari ARDUINO UNO
PIN12 atau D5 hingga PIN11 dari ARDUINO UNO
PIN13 atau D6 hingga PIN12 dari ARDUINO UNO
PIN14 atau D7 hingga PIN13 dari ARDUINO UNO
ARDUINO IDE membolehkan pengguna menggunakan LCD dalam mod 4 bit. Jenis komunikasi ini membolehkan pengguna mengurangkan penggunaan pin pada ARDUINO, tidak seperti ARDUINO yang lain tidak perlu diprogramkan secara berasingan untuk menggunakannya dalam mod 4 it kerana secara lalai ARDUINO disiapkan untuk berkomunikasi dalam mod 4 bit. Di litar anda dapat melihat kami menggunakan komunikasi 4bit (D4-D7).
Oleh itu, dari pemerhatian dari jadual di atas, kita menyambungkan 6 pin LCD ke pengawal di mana 4 pin adalah pin data dan 2 pin untuk kawalan.
Gambar di atas menunjukkan gambarajah ircuit ADC ARDUINO UNO.
Bekerja
Untuk menghubungkan LCD ke ARDUINO UNO, kita perlu mengetahui beberapa perkara.
|
Pertama sekali saluran UNO ADC mempunyai nilai rujukan lalai 5V. Ini bermakna kita dapat memberikan voltan input maksimum 5V untuk penukaran ADC di mana-mana saluran input. Oleh kerana beberapa sensor memberikan voltan dari 0-2.5V, dengan rujukan 5V, kita mendapat ketepatan yang lebih rendah, jadi kita mempunyai petunjuk yang memungkinkan kita mengubah nilai rujukan ini. Jadi untuk mengubah nilai rujukan yang kita ada ("analogReference ();")
Sebagai lalai, kami mendapat resolusi ADC papan maksimum iaitu 10 bit, resolusi ini dapat diubah dengan menggunakan instruksi ("analogReadResolution (bit);"). Perubahan resolusi ini sangat berguna untuk beberapa kes.
Sekarang jika syarat di atas ditetapkan ke lalai, kita dapat membaca nilai dari ADC saluran '0' dengan memanggil fungsi langsung "analogRead (pin);", di sini "pin" mewakili pin di mana kita menghubungkan isyarat analog, dalam hal ini ia akan menjadi "A0". Nilai dari ADC dapat dimasukkan ke dalam bilangan bulat sebagai “int ADCVALUE = analogRead (A0); ", Dengan arahan ini nilai setelah ADC disimpan dalam bilangan bulat" ADCVALUE ".
SEKARANG mari bercakap sedikit mengenai LCD 16x2. Mula-mula kita perlu mengaktifkan fail tajuk ('#include
Kedua, kita perlu memberitahu papan jenis LCD yang kita gunakan di sini. Oleh kerana kita mempunyai begitu banyak jenis LCD (seperti 20x4, 16x2, 16x1 dll). Di sini kita akan menghubungkan LCD 16x2 ke UNO sehingga kita mendapat 'lcd.begin (16, 2);'. Untuk 16x1 kita mendapat 'lcd.begin (16, 1);'.
Dalam instruksi ini kita akan memberitahu papan di mana kita menyambungkan pin, Pin yang disambungkan harus ditunjukkan dalam urutan sebagai "RS, En, D4, D5, D6, D7". Pin ini dilambangkan dengan betul. Oleh kerana kami menghubungkan RS ke PIN0 dan seterusnya seperti yang ditunjukkan dalam rajah litar, kami mewakili nombor pin untuk menaikkannya sebagai "LiquidCrystal lcd (0, 1, 8, 9, 10, 11);".
Setelah di atas sana yang tinggal hanyalah mengirim data, data yang perlu dipaparkan dalam LCD harus ditulis sebagai "cd.print (" hello, world! ");" Dengan arahan ini LCD memaparkan 'hello, world!'.
Seperti yang anda lihat, kita tidak perlu bimbang tentang perkara lain, kita hanya perlu memulakan dan UNO akan bersedia untuk memaparkan data. Kami tidak perlu menulis gelung program untuk menghantar data BYTE oleh BYTE di sini.
Menggunakan ADC Arduino Uno dijelaskan langkah demi langkah dalam program C yang diberikan di bawah.