Archive for the ‘analogRead()’ Category

Function analogRead() pada Arduino Programming Language

Tuesday, February 23rd, 2021

Deskripsi

Merupakan fungsi untuk membaca tegangan dari pin analog Arduino Board. Arduino Board memiliki multichannel 10 bit ADC dengan tegangan antara 0 – 5V atau 0-3.3V untuk VCC = 3.3V. Sebagai contoh pada Arduino UNO dengan analog input 0 – 5V maka akan diperoleh resolusi sebesar 5V / 1024 = 4.9mV.  Untuk Arduino Board yang lain, terdapat perbedaan tegangan maksimum, pin yang digunakan maupun resolusinya. Hal ini dapat dilihat pada tabel dibawah ini.

** Resolusi standard dari analog input adalah 10 bit, namun dengan instruksi analogReadResolution() dapat diubah menjadi 12 bit

Range input maksimum dapat diatur dengan fungsi analogReference() dan resolusi dapat diubah dengan fungsi analogReadResolution(), namun hanya dapat dilakukan pada Arduino Zero, Due atau MKR Family Boards.

Untuk ATMega yang menjadi basis Arduino UNO, Nano, Mini dan Mega dibutuhkan 100uS untuk membaca analog input. Oleh karena itu dalam 1 detik dapat dilakukan 10.000x pembacaan.

Potensiometer terhubung pada pin analog 3

Syntax

analogRead(pin)

Parameters

pin: A0 – A5 untuk kebanyakan Arduino Board, A0 – A6 untuk MKR Boards dan A0 – A7 untuk Mini dan Nano dan A0 – A15 untuk Arduino Mega

Returns

Berupa data analog yang terbaca dari pin yaitu 0 – 1023 untuk 10 bit dan 0 – 4095 untuk 12 bit. Tipe data ini adalah int

Contoh Program

Program untuk membaca tegangan analog dan mengirimkan ke serial port

int analogPin = A3; // potentiometer terhubung pada pin analog 3 di bagian 
                    // tengah dan di kaki 1 ke VCC serta kaki 3 ke GND 
                    // (lihat gambar di atas)
int val = 0;  // variable untuk menyimpan nilai yang dibaca

void setup() {
  Serial.begin(9600);           //  inisial serial
}

void loop() {
  val = analogRead(analogPin);  // baca input pin
  Serial.println(val);          // kirim nilai ke serial port
}

Catatan dan Peringatan

Apabila analog input ini tidak terhubung dengan apapun maka nilai yang diperoleh akan tidak menentu atau acak

Terjemahan dan edit dari https://www.arduino.cc/reference/en/language/functions/analog-io/analogread/

DELTA ELECTRONIC

Paulus Andi Nalwan, ST