Senin, 16 Desember 2013

Periperal Masukan Analog



Periperal Masukan Analog

        Apa ada yang tau apa itu periperal masukan analog. apa sih peripheral analog itu ??? 
dan apa tujuan nya sebelum kita tambah bingung akan baiknya kita mencoba melakukan peraktikum yang akan saya jelaskan Pada postingan percobaan kali ini, memiliki tujuan untuk :

1. Mampu membuat program untuk mengakses periperal masukan analog dengan
tegangan referensi internal, vcc, dan eksternal.
2. Mampu memahami pengaruh nilai tegangan referensi terhadap hasil konversi Analog to
Digital Converter (ADC)
3. Mampu membuat program untuk mengakses fitur analog komparator pada mikrokontroler.
Untuk melakukan percobaan ini, kita memerlukan:
  1. PC                                                                   : 1 set
  2. Arduino Uno                                                   : 1 pcs
  3. Kabel USB tipe B                                           : 1 pcs
  4. Project board                                                   : 1pcs
  5. Kabel jumper                                                   : secukupnya
  6. Potensiometer 10K                                         : 3 pcs
  7. LCD 2×16                                                       : 1 pcs
  8. Multitester                                                       : 1 pcs
Akan tetapi jika kita tidak mempunyai alat tersebut kita cukup menggunakan simulasi menggunakan proteus

Percobaan 1. Analog Input dengan Tegangan Referensi Internal (1,1 Volt)
         Sesuai dengan tujuan percobaan kita, kita akan membuat program untuk mengkonversikan nilai tegangan analog dari potensiometer menjadi nilai digital dan hasilnya akan di tampilkan pada LCD. Tegangan referensi yang pertama kita pakai sebesar 1,1 Volt.

Terlebih dahulu rangkailah seperti rangkaian berikut menggunakan software proteus yang prnah kita bahas pada topic sebelumnya
        Kemudian buatlah program di bawah ini. Jangan lupa melakukan kompilasi terlebih dahulu sebelum mengupload program ke 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 Exampel on A0”);
        analogReference(INTERNAL);
}
Void loop()  {
        Unsigned int dataADC = analogRead(A0);
        lcd.set.Cursor(0,1);
        lcd.print(“Value =  “);
lcd.print(dataADC);
delay(500)
}

        Setelah program diatas dibuat, seperti biasa, lakukan kompilasi dan copykan data .hex kedalam arduino yang ada pada proteusnya, lalu klik 2x arduinonya dan paste kan data .hex tadi di dalam program file.
Seperti ini :



.   Setelah itu jalankan rangkaian yang ada pada proteus dengan menekan tombol play.  



 

 

         Nah, angka yang muncul pada LCD tersebut merupakan data ADC nya. Sedangkan angka yang muncul pada Voltmeter merupakan Vin nya. Kita dapat merubah-rubah Vin sesuai dengan yang kita inginkan dan ketentuannya, dan secara otomatis data pada LCD pun akan berubah. Kita dapat memastikan kembali apakah benar data ADC pada LCD sesuai dengan Vin nya, cara dengan melakukan perhitungan. Rumus untuk mencari Vin dalam perhitungan yaitu :


 


Nah, sekarang kita dapat memastikan apakah benar hasil yang muncul pada LCD atau tidak. Ayo kita coba dengan Vin yang berbeda :



          Dari gambar di atas dapat dilihat, bahwa Vin nya adalah 0.5 volt, sedangkan data ADC nya adalah 465. Untuk mengatur Vin nya sesuai dengan keinginan, caranya yaitu klik dan tahan tombol yang di dalam lingkaran merah (bawah untuk menurunkan nilai, atas untuk menaikkan nilai), kemudian liat hasilnya pada voltmeter, berapa Vin yang ingin dibuat.
Mari kita buktikan data di atas, apakah sesuai Vin yang muncul pada voltmeter dengan perhitungan atau tidak :
Vreff =1.1V



 


Jika percobaan anda sama dengan diatas berarti percobaan anda benar

Disini, mengapa tegangan referensi nya ada bermacam-macam???
Karena, tegangan referensi sangat lah berpengaruh terhadap ADC nya, karena ADC dan Vref berbanding terbalik, semakin besar Vref maka semakin besar pula ADC nya begitupun sebaliknya.

Setelah kita bisa melakukan percobaan pertama kita juga bisa mencoba praktikum selanjutnya cara nya hamper sama dengan yang telah kita bahas sebelumnya

Percobaan 2. Analog Input dengan Tegangan Referensi VCC
Masih menggunakan rangkaian seperti percobaan pertama, namun kita akan mengganti sintaks programnya. Kali ini kita akan mengakses tegangan VCC sebagai tegangan referensi. Berikut programnya.
#include <LiquidCrystal.h>
LiquidCrysral 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);
}
Sebelum kita melakukan perhitungannya, kita perlu mengukur nilai tegangan VCC pada arduino. Walaupun tertulis nilai tegangan VCC sebesar 5 V, tapi pada kenyataannya nilainya tidak tepat 5 V. 
Setelah kita melakukan percobaan ke dua kita bisa juga mencoba percobaan yang ketiga

Percobaan 3. Analog Komparator
Saat ini kita akan membuat program untuk mengakses analog komparator pada mikrokontroler.
Seperti biasa kita buat rangkaian berikut terlebih dahulu.
 
Lalu untuk programnya.
#include <LiquidCrystal.h>
LiquidCrystal 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.clear();
Lcd.print(“Comparator High”);
comparatorOutput = false;
}
else  {
lcd.setCursor(0,1);
lcd.print(“Comparator Low”);
}
delay(500)
}
Setelah di jalankan, maka tampilan pertama pada LCDnya akan seperti ini.

Jika potensionya RV2 di putar maka akan tampil pada LCD seperti ini selama 0,5 detik
Setelah itu akan kembali menjadi comparator LOW lagi

Tidak ada komentar:

Posting Komentar