- Komponen yang Diperlukan
- Modul PCF8591 ADC / DAC
- Menghubungkan Modul PCF8591 ADC / DAC dengan Arduino
Konversi analog ke digital adalah tugas yang sangat penting dalam elektronik tertanam, karena sebagian besar sensor memberikan output sebagai nilai analog dan untuk memasukkannya ke dalam mikrokontroler yang hanya memahami nilai biner, kita harus mengubahnya menjadi nilai digital. Sehingga untuk dapat mengolah data analog tersebut, mikrokontroler membutuhkan Analog to Digital Converter.
Beberapa mikrokontroler memiliki ADC bawaan seperti Arduino, MSP430, PIC16F877A tetapi beberapa mikrokontroler tidak memiliki seperti 8051, Raspberry Pi dll dan kita harus menggunakan beberapa IC converter Analog ke digital eksternal seperti ADC0804, ADC0808. Di bawah ini Anda dapat menemukan berbagai contoh ADC dengan mikrokontroler berbeda:
- Bagaimana cara menggunakan ADC di Arduino Uno?
- Tutorial ADC Raspberry Pi
- Menghubungkan ADC0808 dengan Mikrokontroler 8051
- Voltmeter Digital 0-25V menggunakan Mikrokontroler AVR
- Cara menggunakan ADC di STM32F103C8
- Cara menggunakan ADC di MSP430G2
- Cara menggunakan ADC di ARM7 LPC2148
- Menggunakan Modul ADC Mikrokontroler PIC dengan MPLAB dan XC8
Dalam tutorial ini, kita akan memeriksa bagaimana menghubungkan modul PCF8591 ADC / DAC dengan Arduino.
Komponen yang Diperlukan
- Arduino UNO
- Modul ADC PCF8591
- Pot 100K
- Kabel jumper
Modul PCF8591 ADC / DAC
PCF8591 adalah modul konverter analog ke digital 8 bit atau digital ke analog 8 bit yang berarti setiap pin dapat membaca nilai analog hingga 256. Ini juga memiliki sirkuit LDR dan termistor yang disediakan di papan. Modul ini memiliki empat masukan analog dan satu keluaran analog. Ini berfungsi pada komunikasi I 2 C, jadi ada pin SCL dan SDA untuk jam serial dan alamat data serial. Ini membutuhkan tegangan suplai 2.5-6V dan memiliki arus siaga rendah. Kita juga dapat memanipulasi tegangan input dengan mengatur kenop potensiometer pada modul. Ada juga tiga jumper di papan tulis. J4 terhubung untuk memilih sirkuit akses termistor, J5 terhubung untuk memilih sirkuit akses resistor LDR / foto dan J6 terhubung untuk memilih sirkuit akses tegangan yang dapat disesuaikan. Untuk mengakses sirkuit ini, Anda harus menggunakan alamat dari jumper berikut: 0x50 untuk J6, 0x60 untuk J5 dan 0x70 untuk J4. Ada dua LED pada papan D1 dan D2- D1 menunjukkan intensitas tegangan keluaran dan D2 menunjukkan intensitas tegangan suplai. Semakin tinggi tegangan output atau suplai, semakin tinggi intensitas LED D1 atau D2. Anda juga dapat menguji LED ini dengan menggunakan potensiometer pada VCC atau pada pin AOUT.
Menghubungkan Modul PCF8591 ADC / DAC dengan Arduino
Program lengkap dan video kerja diberikan di akhir tutorial ini.
Pertama, kita perlu mendefinisikan perpustakaan untuk komunikasi I 2 C dan layar LCD.
#include
Kemudian tentukan beberapa makro. Makro pertama untuk menentukan alamat bus data untuk IC dan makro kedua untuk menentukan alamat pin input pertama modul, di mana input dari pot diberikan.
# tentukan PCF8591 (0x90 >> 1) # tentukan AIn0 0x00
Selanjutnya tentukan koneksi pin LCD dengan Arduino dan inisialisasi nilai yang kita dapatkan pada pin analog.
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LCD LiquidCrystal (rs, en, d4, d5, d6, d7); Nilai int = 0;
Sekarang, mari kita ke fungsi pengaturan . Di sini, di baris pertama kami telah menginisialisasi komunikasi I 2 C. Dan di baris kedua, kami telah menginisialisasi layar LCD tempat kami mencetak nilai analog. Pelajari lebih lanjut tentang menghubungkan LCD 16x2 dengan Arduino di sini.
void setup () { Wire.begin (); lcd.begin (16,2); }
Dalam fungsi loop , baris pertama adalah memulai transmisi, yaitu memulai PCF8591. Baris kedua memberi tahu IC untuk melakukan pengukuran analog pada pin input analog pertama. Baris ketiga mengakhiri transmisi dan baris keempat mendapatkan data yang diukur dari pin analog.
void loop () { Wire.beginTransmission (PCF8591); Wire.write (AIn0); Wire.endTransmission (); Wire.requestFrom (PCF8591, 1);
Di bagian selanjutnya, letakkan nilai yang dibaca dari pin analog ke variabel Nilai yang ditentukan sebelumnya. Dan di baris berikutnya, cetak nilai itu ke LCD.
Nilai = Wire.read (); lcd.print ("Nilai ADC ="); lcd.print (Nilai); penundaan (500); lcd.clear ();}
Terakhir unggah kode di Arduino dan jalankan. Nilai analog akan mulai muncul di layar LCD. Sesuaikan kenop pot, dan Anda akan melihat perubahan nilai secara bertahap.