SOAL
Keluaran dari sensor/transduser dapat berupa sinyal analog dan sinyal digital, bagaimana
cara menghubungkan masing-masing keluaran sensor tersebut ke sebuah pin arduino
(mikrokontroler)?
JAWAB
Pin analog pada Arduino (dan mikrokontroller lain pada umumnya) dapat digunakan untuk
input dan output digital. Hanya saja pin analog memiliki fitur untuk dapat mengubah
sinyal analog yang masuk menjadi nilai digital yang mudah diukur. Pin digital hanya dapat
mengenali sinyal 0 volt sebagai nilai LOW dan 5 volt sebagai nilai HIGH. Sedangkan Pin
analog dapat mengenali sinyal pada rentang nilai voltase tersebut.
Pin analog ini terhubung dengan converter pada mikrokontroller yang dikenal dengan
istilah analog-to-digital converter (disingkat ADC atau A/D). Converter ini mengubah
nilai analog berbentuk sinyal voltase ke dalam bentuk digital/angka supaya nilai analog ini
dapat digunakan dengan lebih mudah dan aplikatif. Pada Arduino (mikrokontroller
ATMega) converter ini memiliki resolusi 10 bit, artinya nilai hasil konversi berkisar dari 0
hingga 1023. Pada Arduino UNO, pin analog ditandai dengan label A0 sampai A5. Pada
board lainnya, pin-pin yang diberi tanda A, Analog, ADC adalah pin analog.
Sebagai contoh dapat dilihat pada percobaan yang dirakit oleh Adjang Rahmat
(https://kelasrobot.com/program-arduino-analog-input-potensiometer/) tentang pembacaan nilai
potensiometer sebagai input analog pada arduino
NOTES:
Hubungkan 5V dan GND dari Arduino ke Breadboard.
Hubungkan kaki kanan Potensiometer ke VCC.
Hubungkan kaki kiri Potensiometer ke GND.
Hubungkan kaki tengah Potensiometer ke pin A3 Arduino.
Untuk LED rangkaiannya tidak jauh berbeda dengan pembahasan sebelumnya.
***
Untuk programnya :
1 byte sensor= A0;
2 byte led= 13;
3 int nilai;
4
5 void setup(){
6 pinMode(led, OUTPUT);
7 }
8
9 void loop(){
10 nilai= analogRead(sensor);
11
12 digitalWrite(led, HIGH);
13 delay(nilai);
14 digitalWrite(led, LOW);
15 delay(nilai);
16 }
NOTES:
int sensorPin = A0; digunakan untuk membuat pin A0 menjadi variabel sensorPin dan
karena pin AO adalah input analog, maka pada void setup tidak perlu dibuat
program pinMode(sensorPin, INPUT); karena kalau pin analog sudah pasti INPUT,
tidak bisa digunakan untuk OUTPUT.
mengingat kembali fungsi dari sensorValue = analogRead(sensorPin); adalah untuk
menyimpan nilai baca dari sensorPin kedalam variabel sensorValue.
delay(sensorValue); digunakan untuk memberikan waktu jeda berdasarkan nilai yang
keluar dari sensorPin, jadi kecepatan lampu berkedip berdasarkan potensiometer.