Cara Membaca Input Pin Analog Pada Arduino (analogRead)
Cara Membaca Pin Analog Arduino (analogRead) - Arduino pada umunya terdiri dari pin analog dan pin digital. Pin analog adalah deretan pin yang terhubung langsung ke ADC (analog to digital converter), sehingga pin analog dapat menerima tegangan antara 0V - 5V. Contoh pin analog adalah seperti yang terdapat pada Arduino Uno yakni A0-A5.
Arduino memiliki fungsi tersendiri untuk membaca masukan pin analog, yaitu analogRead(nama_pin);. Pin analog sangat dibutuhkan pada proyek-proyek yang melibatkan sensor dengan keluaran tegangan maupun resistansi seperti potensio dan sensor suhu LM35.
Pada artikel ini kita akan mempelajari bagaimana cara membaca input pada pin analog menggunakan Arduino Uno dan sensor potensio serta menampilkan hasil pembacaan ke serial monitor dan Serial Plotter.
Rangkaian
Kode Program
Kode program di bawah ini dapat langsung dibuka pada software Arduino IDE tepatnya di File>Example>Basics>analogReadSerial.
void setup()
{
Serial.begin(9600);
}
void loop()
{
int sensorValue = analogRead(A0);
Serial.println(sensorValue);
delay(1);
}
Langkah-langkah
- Hal pertama yang harus dilakukan adalah membuat rangkaian potensio dan Arduino Uno seperti pada gambar di atas.
- Hubungkan Arduino Uno ke komputer atau laptop.
- Buka Arduino IDE, copy program di atas atau dapat melalui File>Example>Basics>analogReadSerial.
- Pilih tipe board dan port yang digunakan, di sini saya menggunakan Arduino Uno.
- Kemudian upload program.
- Jika sudah selesai, buka serial monitor dengan mengklik ikon scope yang berada di pojok kanan atas.
- Selesai.
Penjelasan Kode Program
Serial.begin(9600);
Kode program di atas berfungsi untuk memulai komunikasi serial menggunakan baudrate 9600. Kode program tersebut dibutuhkan agar Arduino dapat berkomunikasi dengan perangkat luar dalam hal ini adalah komputer/laptop.
int sensorValue = analogRead(A0);
Kode program di atas berfungsi untuk mendefinisikan/mendeklarasikan/memperkenalkan sebuah varibel baru bertipe int yang bernama sensorValue (nama varibel dapat ditukar sesuka hati). Variabel ini akan menampung hasil pembacaan pin A0 melalui pemanggilan fungsi analogRead(A0);.
Serial.println(sensorValue);
Kode program di atas berfungsi untuk mengirim hasil pembacaan pin A0 ke serial monitor untuk ditampilkan.
delay(1);
Kode program di atas berfungsi untuk memberikan jeda waktu selama 1 mili detik. Hal ini bertujuan untuk menjaga kestabilan saat program dijalankan.
Pertanyaan Terkait
Mengapa hasil pembacaan berkisar antara 0-1023 dan bukan 0V-5V?
Itu dikarenakan masukan sinyal analog telah melalui proses konversi dari sinyal analog (tegangan) menjadi sinyal digital (bilangan biner) melalui ADC agar dapat diproses oleh mikrokontroler. Jadi sebenarnya 0V = 0 dan 5V = 1023.
Rentang nilai ini bergantung dari resolusi ADC yang digunakan. Arduino Uno memiliki resolusi ADC sebesar 10 bit sehingga nilai maksimumnya adalah 1023, sedangkan Arduino Due memiliki resolusi ADC hingga 12 bit dengan nilai maksimumnya sebesar 4095.
Apakah bisa membaca input analog pada pin digital?
Tidak bisa.
Apakah pin analog hanya bisa membaca input analog?
Tidak, pin analog juga bisa membaca input digital menggunakan fungsi digitalRead(nama_pin);.
Apakah pin analog hanya berfungsi untuk input?
Tidak, pin analog juga bisa difungsikan sebagai output menggunakan fungsi digitalWrite(nama_pin, HIGH);.