Anda di halaman 1dari 8

MATERI ARDUINO

2. MATERI 2 - INPUT ANALOG


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. Hal ini sangat berguna
ketika kita hendak mengukur sesuatu dari sensor dan menggunakan nilai masukan tersebut
untuk keperluan lain.

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,
atau resolusinya adalah 5 volt/1024=4,9mV per unit dimana itu berarti nilai digital yang
dihasilkan akan berubah setiap perubahan 4,9mV dari tegangan input analognya. Akan
tetapi range input analog dan resolusi tersebut dapat dirubah dengan fungsi
analogReference(). 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.

Fungsi yang kita gunakan untuk membaca nilai analog pada Arduino adalah
analogRead([nomorPin]). Pada contoh kasus berikut, kita akan menghubungkan
potensiometer, LDR dan sensor suhu LM35 pada pin analog A0 dan hasil konversi nilai
analog akan kita lihat pada jendela Serial Monitor pada Arduino IDE

AETC Page 1
MATERI ARDUINO

2.1 Percobaan 1 – Baca input potensiometer

Membaca data dari input potensiometer menggunakan analog

Rangkaian :

Sketch Program :

const int pinPot = A0;

void setup() {

Serial.begin(9600);

void loop() {

int InAnalog = analogRead(pinPot);

Serial.print("IN ADC:"); Serial.print(InAnalog);

int dtPersen = map(InAnalog,0,1023,0,100);

Serial.print("\t Konversi ke % :");

Serial.print(dtPersen);

Serial.println("%");

delay(300);

AETC Page 2
MATERI ARDUINO

2.2 Percobaan 2 - Baca input sensor cahaya

Membuat fungsi untuk membaca status terang gelap kondisi cahaya di sekitar sensor

Rangkaian :

Sketch Program :

const int pinLDR = A0;

void setup() {

Serial.begin(9600);

pinMode(pinLDR,INPUT_PULLUP);

void loop() {

int InLDR = analogRead(pinLDR);

Serial.print("IN LDR:"); Serial.println(InLDR);

delay(300);

AETC Page 3
MATERI ARDUINO

2.3 Percobaan 3 – Sensor Suhu LM35

Membuat fungsi membaca data dari sensor suhu LM35 dan mengkonversi data menjadi ke
derajad celcius

Rangkaian :

Sketch Program :

const int pinLM35 = A0;

float Suhu;

void setup() {

Serial.begin(9600);

void loop() {

AETC Page 4
MATERI ARDUINO

int InAnalog = analogRead(pinLM35);

Serial.print("IN ADC :"); Serial.print(InAnalog);

//1'C = 10mV (sesuai datasheet)

// 5v /1023 = 4,883 mV

//(5v = tegangan refrensi, 1023 = resolusi 10 bit)

// setiap kenaikan 1'C --> 10 / 4.883 = 2.0479

Suhu = InAnalog / 2.0479;

//tampilkan konversi data analog ke persen

Serial.print("\t Suhu :");

Serial.print(Suhu,1);

Serial.println(" 'C");

delay(300);

AETC Page 5
MATERI ARDUINO

2.4 Mini Project 1 - Lampu otomatis sesuai kondisi cahaya

Membuat system lampu otomatis yg aktif jika kondisi di sekitar sensor gelap

Rangkaian :

Sketch Program :

const int pinLDR = A0;

const int pinLED = 13;

void setup() {

Serial.begin(9600);

pinMode(pinLDR,INPUT_PULLUP);

pinMode(pinLED,OUTPUT);

void loop() {

int InLDR = analogRead(pinLDR);

Serial.print("IN LDR:"); Serial.println(InLDR);

if(InLDR > 500){

digitalWrite(pinLED,HIGH);

AETC Page 6
MATERI ARDUINO

}else{

digitalWrite(pinLED,LOW);

delay(300);

2.5 Mini Project 2 - Indikator Suhu dengan led

Membuat system indikator level suhu menggunakan led

Rangkaian :

Sketch Program :

const int pinLM35 = A0;

const int pinLed1 = 7;

const int pinLed2 = 10;

const int pinLed3 = 13;

float Suhu;

void setup() {

AETC Page 7
MATERI ARDUINO

Serial.begin(9600);

pinMode(pinLed1,OUTPUT);

pinMode(pinLed2,OUTPUT);

pinMode(pinLed3,OUTPUT);

void loop() {

int InAnalog = analogRead(pinLM35);

Serial.print("IN ADC :"); Serial.print(InAnalog);

Suhu = InAnalog / 2.0479;

//tampilkan konversi data analog ke persen

Serial.print("\t Suhu :");

Serial.print(Suhu,1);

Serial.println(" 'C");

if(Suhu > 40.0){ // jika suhu tinggi

digitalWrite(pinLed1,HIGH);

digitalWrite(pinLed2,LOW);

digitalWrite(pinLed3,LOW);

}else if(Suhu > 30.0){ // jika suhu sedang

digitalWrite(pinLed1,LOW);

digitalWrite(pinLed2,HIGH);

digitalWrite(pinLed3,LOW);

}else{ // jika suhu rendah

digitalWrite(pinLed1,LOW);

digitalWrite(pinLed2,LOW);

digitalWrite(pinLed3,HIGH);

delay(300);

AETC Page 8

Anda mungkin juga menyukai