MEMBACA SENSOR DENGAN FUNGSI ANALOGREAD
ADC ( Analog to Digital Converter)
Fungsi analogRead pada Arduino tidak akan pernah terlepas dengan yang namanya ADC, atau Analog to Digital Converter. Sebuah data analog yang akan di konversi menjadi Digital. Dari pernyataan ini timbul dua pengertian yaitu analog dan digital, sebenarnya apa sih analog itu? apa sih digital itu? Kalo kita lihat di Multimeter misalnya, ada multimeter analog ada multimeter digital, apakah ini bisa mewakili pengertian analog dan digital?
Yah bisa jadi, sebenarnya dalam dunia elektronik, analog itu ada sebuah tegangan variable variable yang bersifat continue, tegangan berubah ubah. Kalo ingat di pelajaran kuliah dulu ada istilah Sistem Kendali Kontinue, ada Pelajaran Sistem Kendali Diskrit ( Digital ). Kembali Ke Analog dulu. Tegangan Analog variable ini bisa saja di hasilkan oleh suatu komponen elektronik seperti Resistor variable atau sebuah sensor. Tegangan output dari sebuah sensor ini berbentuk variable, berubah ubah, jika kita gunakan menggunakan Multimeter, maka tegangan Analog ini akan terukur mulai dari 0 volt pada kondisi tertentu sampai berubah ke tegangan yang lain.
Berbeda dengan Digital, Sebuah data Tegangan yang hanya memiliki dua karakter saja, Jika tidak 0 atau 1, jika kita rubah dalam bentuk Tegangan, maka jika tidak 0 volt maka 5 volt atau pada level tegangan lain, jika tidak 0 volt maka 3.3volt.
Cara Kerja ADC
Dari penjelasan di atas apakah teman-teman sudah memahami dengan jelas apa yang di maksud dengan Tegangan analog dan data Digital? Jika masih belum, ayuk kita bahas sedikit lagi. Untuk melihat lebih jelas, bisa teman-teman lihat pada gambar di bawah ini.
Tegangan analog yang di inputkan ke sebuah ADC maka, sinyal sinyal analog tadi akan di sampling, di potong potong dalam waktu tertentu, kemudian merubahnya menjadi sinyal diskrit. Coba kita lihat penjelasan pada video di bawah ini,
Sebenarnya semakin tinggi resolusi dari sebuah ADC maka sampling nya juga semakin cepat, range data yang di dapat kan juga semakin Lebar, sebagai Contoh, ADC 4 Bit, maka dia hanya akan ada 16 kemungkinan data, jika 8 bit, maka akan ada 255 kemungkinan, jika 10 bit, maka akan ada 1023 kemungkinan. Jadi makin tinggi resolusi dari sebuah ADC maka makin banyak kemungkinan, makin banyak yang bisa kita dapatkan data nya, atau dengan kata lain makin presisi.
Fungsi AnalogRead Arduino
Setelah membahas cukup lebar tentang ADC maka apakah fungsi dari ADC ini? adakah gunanya dalam sebuah system control atau pengukuran? yaps jelas, ini juga merupakan sebuah esensi dari sebuah system control dan automatisasi. Yuk kita lihat.
Pada dasar nya system automatisasi adalah sebuah pengolahan atau peubah dari sebuah sifat sifat Listrik. Jika kondisi Listrik nya A maka kita ingin ada aksi B, atau jika ada kondisi Listrik C maka yang kita inginkan ada aksi D dan seterus nya. Bagaiamanakah memahami ini dalam sebuah system control atau sebuah Arduino Control?
Kita buat sebuah Contoh sensor Arus yang tegangan Output nya adalah Tegangan Analog. Bagaimana kah cara mengolah tegangan output sensor Arus ini? Biasanya tegangan output sensor Arus memiliki karakter, missal jika tegangan output nya sekian maka Arus yang di ukur adalah sekian Ampere. dari sini kita dapat sebuah logika bahwa Arus yang terukur memiliki hubungan dengan tegangan output dari sensor ini.
Nah dari sebuah hubungan di atas kita akan meng input tegangan output sensor arus ke sebuah ADC, kita buat sebuah Contoh Arduino UNO, yang mana PIN yang mampu merubah tegangan Analog menjadi data Digital ada pada PIN A0 sampe A5. Resolusi ADC pada sensor ini adalah 10 bit. coba kita konversi ke ADC.
Coba kita lihat program analogRead pada gambar di bawah ini.
void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); // print out the value you read: Serial.println(sensorValue); delay(1); // delay in between reads for stability }
Output sensor Arus kita hubungkan ke pin A0 pada Arduino, kemudian buka serial monitor, setting nilai baut rate nya 9600, perhatikan nilai nilai yang terbaca. Nah disana kita sudah melihat jelas ketika nilai arus yang terbaca semakin besar maka nilai ADC nya juga semakin besar. Nilai ADC pada program di atas di simpan pada variable sensorValue. Dari nilai-nilai ADC ini lah kita bisa lakukan apa pun tentang Arus, misalnya jika Arus sudah pada level sekian, kirim sms, kirim notif ke Android, atau matikan kontaktor, atau simpan data nya dalam MySQL dan lain sebagai nya. Semua hal canggih di atas yang mungkin teman-teman mau buat, semua sensing nya dari satu fitur pada dunia elektronik yaitu ADC.
Aplikasi ADC pada Sistem Control
Sebenar nya jika teman-teman baca dengan detail dari atas sampai bawah, teman-teman tidak perlu lagi baca tentang Aplikasi ADC ini pada sebuah system control. Tapi untuk mengembangkan wawasan kita berasama, apa fungsi dari ADC ini adalah sebagai berikut.
- Membaca output sensor Suara
- Membaca sensor LDR
- Membaca Sensor Suhu LM35, PTC, NTC
- Membaca sensor Tegangan dan Arus
- Membaca Kelembaban Air dengan sensor moisture
- Mendeteksi Hujan dengan sensor Hujan
- Membaca sensor Regangangan pada Load Cell
- Membaca Posisi pada Potensio meter
- Membaca Line dengan photo dioda dan infrared
- Membaca sensor Api
dan Membaca sensor Apapun yang memiliki tengangan output Analog
Nah sekian dulu pembahasana tentang analogRead atau ADC pada Arduino secara khusus dan perangkat ADC lain secara luas, semoga tulisan ini bermanfaat
Tutorial program Arduino disini:https://mikroavr.com/program-arduino/
Thanks