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:
- PC : 1 set
- Arduino Uno : 1 pcs
- Kabel USB tipe B : 1 pcs
- Project board : 1pcs
- Kabel jumper : secukupnya
- Potensiometer 10K : 3 pcs
- LCD 2×16 : 1 pcs
- 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