Fungsi membaca tegangan analog dapat dilakukan dengan menggunakan pin A0
, A1
, A2
, A3
, A4
, A5
pada arduino. Input yang masuk pada pin analog arduino akan dikonversi menjadi data digital dengan panjang 10 bit sehingga nilai input tegangan 0 volt sampai 5 volt(tegangan maksimal input Arduino) pada pin analog arduino mempunyai 1024 (di dapat dari 210) keadaan dengan rentang 0 sampai 1023.
Jadi pada rentang nilai 0 volt sampai 5 volt dipecah sehingga terdapat 1023 data digital. Proses konversi tegangan analog menjadi data digital disebut ADC (Analog to Digital Converter). Berikut cara untuk menghitung konversi tegangan 5 volt dari data digital 10 bit:
$${5\over 1023}=0,0048875855327468 volt$$
Jadi, setiap 1 data digital sama dengan 0,0048875855327468 volt. Sedangkan berapa nilai tegangan jika angka digital-nya adalah 512? Caranya adalah:
$${512 \times 5\over1023} = 2,50244… \approx 2,5 volt$$
Perintah yang akan kita gunakan pada pembaca input analog adalah analogRead([nomorpinanalog]);
. Pada percobaan kali ini kita akan menggunakan pin A0
dan hasil output berupa data serial dan blink LED pada pin 13 (Built In) arduino. LED akan berkedip dengan delay berdasarkan pada nilai analog yang sudah dipetakan menjadi 0-1000 dengan satuan milidetik.
Baca juga: Cara Upload Program ke Arduino Pro Mini dengan USB to TTL PL2303
Alat dan Bahan
- Arduino x1
- Projectboard/Breadboard x1
- Potensio/Trimpot x1
- Kabel jumper secukupnya
Praktik
Susun rangkaian arduino antara potensio dengan projectboard seperti gambar di bawah ini.
Upload sketch program di bawah ini ke arduino.
int sensorPin = A0; // pin A0 diinisialisasi sebagai variable "sensorPin" int ledPin = 13; // pin 13 dinisialisasi sebagai variable "ledPin" int dataInput = 0; // variable untuk menyimpan data dari pembacaan nilai analog int analogDelay; // varable untuk menyimpan data hasil pemetaan interval 0-1023 menjadi 0-1000; void setup() { // deklarasi variable ledPin/pin 13 sebagai Output pinMode(ledPin, OUTPUT); // Memulai komunikasi antara PC dengan Arduino dengan baudrate 9600 Serial.begin(9600); } void loop() { // Membaca data dari pin A0 yang diwakilkan melalu variable sensorPin lalu disimpan ke variable dataInput dataInput = analogRead(sensorPin); // memetakan nilai analog 0-1023 menjadi 0-1000 analogDelay = map(dataInput, 0, 1023, 0, 1000); // mencetak kalimat "Nilai analog = " pada serial monitor Serial.print("Nilai analog = "); // mencetak nilai analog pada serial monitor Serial.print(dataInput); // mencetak "(tab horizontal)Delay = " pada serial monitor Serial.print("\tDelay = "); // mencetak nilai dari variable analogDelay lalu membuat baris baru Serial.println(analogDelay); // output pin 13 = 1 digitalWrite(ledPin, HIGH); // delay perintah selama [analogDelay] milliseconds: delay(analogDelay); // ouput pin 13 = 0 digitalWrite(ledPin, LOW); // delay perintah selama [analogDelay] milliseconds: delay(analogDelay); }
Compile/Verify sketch program.
Upload sketch program.
Buka Serial Monitor pada Arduino IDE.
Putar ke kanan dan ke kiri potensio yang anda gunakan, lihat perubahan pada nilai pada serial monitor dan LED pada board Arduino.
Baca juga: Rangkaian Sensor Cahaya DC dengan LDR
Sekian artikel ini semoga bermanfaat.
Pustaka
MEMBACA TEGANGAN ANALOG DENGAN ARDUINO - Amateur Physicist