PERIPERAL MASUKAN ANALOG

on Friday, 11 October 2013
Assalamualaikum war .. wab .. 
annyeong chingu ..... :D
kali ini aku akan mem-posting tentang Periperal Masukkan Analog, dimana postingan ini merupakan lanjutan dari postingan aku kemaren (Periperal Masukkan Digital) ..
oke , tanpa memperpanjang mukadimah *ee eeeh -_-
let's check it out these steps :D ..   

A. Analog Input dengan Tegangan Referensi Internal (1.1 Volt)
 Pada percobaan aku yang ke-3 ini, aku akan membuat program untuk mengkonversi nilai egangan analog dan potensiometer mnjadi nilai digital. Data hasil konversi ini akan ditampilkan pada LCD 2x16. Tegangan referensi ADC yang digunakan adalah tegangan referensi internal sebesar 1.1 volt.
  • Buka softwere ARDUINO  kamu pada PC/Laptop kamu lalu masukkan syntax dibawah ini ke dalam softwere tsb :
#include <LiquidCrystal.h>  
LiquidCrystal lcd(2,3,4,5,6,7);
 void setup() { 
 lcd.begin(16,2); 
lcd.clear(); 
lcd.setCursor(0,0);
lcd.print("ADC Example on A0"); 
analogReference(INTERNAL);}

void loop() {
unsigned int dataADC = analogRead(A0); 
lcd.clear(); 
lcd.setCursor(0,1);

lcd.print("Value = ");
lcd.print(dataADC); 
delay(500);}
  • Setelah dimasukkan program diatas maka compile-lah program tsb. look at the picture.
Gambar 1.1
  •  Kemudian, kita rakit rangkaian dibawah ini pada project board yang telah disiapkan (as usual).
Gambar 1.2
  •  Putarlah potensiometer sehingga terjadi perubahan tegangan dari 0v sampai 1.5v dgn rentan perubahan 0.5v.  Dan hasil nya adalah sbb.
Gambar 1.3
  •  dan berikut merupakan penjelasan fungsi dari beberapa syntax.
Gambar 1.4
 B. Analog Input dengan Tegangan Referensi VCC (5V)
Pada percobaan 3.2 ini akan membuat program seperti percobaan 3.1. Pada percobaan ini tegangan referensi ADC yng digunakan adalah tegangan VCC pada mikrokontroller.
  • Gantilah syntax program pada percobaan 3.1 menjadi seperti dibawah ini, kemudian compile and then upload the program.

#include <LiquidCrystal.h> 
 LiquidCrystal lcd(2,3,4,5,6,7);
 void setup() 
{ 
 lcd.begin(16,2); 
lcd.clear(); 
lcd.setCursor(0,0);


lcd.print("ADC Example on A0");
analogReference(DEFAULT);
}
void loop() 
{


unsigned int dataADC = analogRead(A0);
lcd.setCursor(0,1);


lcd.print("Value = ");
lcd.print(dataADC); 
delay(500);

}
 

  •   Putarlah potensiometer sehingga terjadi perubahan tegangan dari 0V smpai 5V dengan rentan perubahan 1V.
tadaaaa, ini dia hasil nya :D .. 
Gambar 1.5
  •  Penjelasan dari tiap baris syntax program percobaan 3.2 !
Gambar 1.6

C. Analog Input dengan Tegangan Referensi Eksternal

Pada percobaan ini akan dibuat program seperti pada percobaan sebelumnya. Tegangan referensi ADC yng digunakan adalah tegangan referensi eksternal yaitu tegangan [ada pin AREF. Pada percobaan ini besar tegangan pada pin AREF aan di-set sebesar 4V.
  • Kemudian, kita rakit lagi rangkaian dibawah ini pada project board yang telah disiapkan (as usual).
Gambar 1.7
  • And then, tuliskan syntax program di bawah ini, compile and upload program tsb ke sistem minumum Arduino.

#include <LiquidCrystal.h> 
 LiquidCrystal lcd(2,3,4,5,6,7);
void setup() 
{  
lcd.begin(16,2); 
lcd.clear(); 
lcd.setCursor(0,0);
lcd.print("ADC Example on A0"); 
analogReference(EXTERNAL); 
}
void loop() 
{ 
unsigned int dataADC = analogRead(A0);  
lcd.setCursor(0,1);

lcd.print("Value = "); 
lcd.print(dataADC); 
delay(500);
}

  • Putar potensiometer R3 hingga tegangan pada pin AREF bernilai 4 V. Dan putarlah Potensiometer R2  sehingga terjadi perubahan tegangan dari 0-5V dengan rentan perubahan 1V.
VOILA ... This is it !
Gambar 1.8

  • Berikut ini penjelasan dari tiap-tiap fungsi syntax.
Gambar 1.9

Tegangan referensi sebagai parameter. Jika input dari A0 sama dengan dibawah tegangan referensi maka nilai dari input-an aan diskalakan 0-1023. Apabila tegangan input lebih besardari tegangan referensi maka Vin = Vref, karna memiliki batas yaitu tegangan referensi (4V).
Hasil skala ADC pada LCD bisa digunakan untuk menghitung Vinput. Secara matematis untuk mencari Vin dapat ditulis sebagai berikut.
Gambar 1.10
Keterangan :
ADC  = Nilai yang terbaca pada LCD
Vin    = Tegangan Input
Vref   = Tegangan referensi

D. Analog Komparator
Pada percobaan ini akan dibuat program untuk mengakses fitur analog komparator pada mikrokontroller. Percobaan kali ini memiliki 2 buah input analog yang akan dihubungkan ke input pin komparator yaitu AIN0 (pin 6) dan AIN1 (pin 7). Output analog komparator  akan ditampilkan pada LCD.
  • Rangkailah gambar dibawah ini pada papan project board.
Gambar 1.11
  • kemudian, ketik syntax dibawah ini, then kamu compile and upload program tsb.

#include <LiquidCrystal.h>  
LiquidCrytal lcd=(A0,A1,A2,A3,A4,A5); 
boolean comparatorOutput;
ISR (ANALOG_COMP_vect)
comparatorOutput = true;
}

void setup() 
{ 
 ADCSRB = 0;
 ACSR = _BV(ACI) | _BV(ACIE) | _BV (ACIS1); 
lcd.begin(16,2); 
lcd.clear();
  
lcd.setCursor(0,0); 
lcd.print("Analog Comparator");
}

void loop() 
{
  if (comparatorOutput==true
         { lcd.setCursor(0,1);
     lcd.print("Comparator High"); 
     comparatorOutput = false; 
}
else {  
lcd.setCursor(0,1); 
lcd.print("Comparator Low "); 
}
}
  • Apakah yang terjadi jika tegangan pada pin AIN0 lebih besar dari tegangan pin AIN1, jelaskan ?
LCD akan menampilkan "Comparator High", karena Arduino membandingka nilai pada pin AIN0 (pin6) terhadap pin AIN1 (pin7). Dimana tegangan pada pin 6 lebih besar daripada pin 7.
  • Apakah yang terjadi jika tegangan pada pin AIN0 lebih kecil dari pada pin AIN1, jelaskan?!
LCD akan menampilkan "Comparator High", Karena Arduino membandingkan tegangan pada pin 6 dan pin .Dimana pin7  lebih besar daripada pin6.
  • Jelaskanprinsip kerja dari analog komparator pada sistem minimum rduino ?! Apakah prinsip kerja komparator pada mikrokontroller sama dengan prinsip kerja komparator pada op-amp????
 Prinsip kerja dari analog komparator pada sistem minimum Arduino berbeda dengan op-amp. Prinsip kerja ADC adalah mengkonversi signal analog ke dalam bentuk besaran yang merupakan rasio perbandingan signal input dan tegangan referensi (0-1023). Kemudian membandingkan hasil konversi tersebut satu dengan yang lainnya.
  • Berikut adalah fungsi dari tiap-tiap syntax :D ..
Gambar 1.12
 
Gambar 1.13
nah,, itu dia pembahasan dari percobaan yang telah aku lakukan bersama kawanku.  jikalau ada yang salah mohon dimaklumi :) #pengetahuan aku masih sikit :D .... 
Merci mes amis :) .... 
Selamat membaca :D