PERIPERAL MASUKAN ANALOG
Pada percobaan kali ini akan dibuat program untuk
mengkonversi nilai tegangan analog dari potensiometer menjadi nilai digital.
Data hasil konversi akan ditampilkan pada LCD 2x16. Tegangan referensi ADC
yang digunakan adalah tegangan refrensi internal yang besarnya adalah 1,1
volt.
Prosedur :
1.
Rangkaialah rangkaian pada Gambar 3.1
Gambar
3.1 Rangkaian Percobaan 3.1
2.
Tuliskan sintaks program di bawah ini, kemudian lakukan ko mpilasi dan upload
program ke sistem minimum Arduino.
#include
<LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7);
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.setCursor(0,1);
lcd.print("Value
= "); lcd.print(dataADC); delay(500);
1. Putarlah
potensiometer sehingga terjadi perubahan tegangan dari 0 volt sampai 1.5 volt
dengan rentan perubahan 0.5 volt. Dan di dapatkan hasil sbb:
Tegangan Pin A0 (Volt) Data di LCD Data Hasil Perhitungan
0 0 0
0.25 255 0.27
0.5 475 0.51
0.75 715 0.76
1 952 1.02
1.25 1023 1,1
1.5 1023 1.1
0 0 0
0.25 255 0.27
0.5 475 0.51
0.75 715 0.76
1 952 1.02
1.25 1023 1,1
1.5 1023 1.1
- fungsi tiap baris dari sintaks program pada Percobaan 3.1 !
#include <LiquidCrystal.h> \\
memanggil library untuk lcd
LiquidCrystal lcd(2,3,4,5,6,7); \\
inisialisasi pin lcd
void setup() \\
setting awal program
{
lcd.begin(16,2); \\ tampilan
lcd (kolom , baris)
lcd.clear(); \\
tampilan lcd di hapus
lcd.setCursor(0,0); \\
letak kursor pada lcd (0,0)
lcd.print("ADC
Example on A0"); \\ lcd
menampilkan ("ADC Example on A0");
analogReference(INTERNAL); \\ parameter
input internal ( 1.1 volt)
}
void loop() \\
program looping
{
unsigned int dataADC = analogRead(A0); \\ inisialisasi input A0
lcd.clear(); \\
tampilan lcd di hapus
lcd.setCursor(0,1); \\
letak kursor pada lcd (0,1)
lcd.print("Value = "); \\
lcd menampilkan “value =”
lcd.print(dataADC); \\
lcd menampilkan data ACD
delay(500); \\
jeda 500 milisekon
}
3.2
Analog Input dengan Tegangan Referensi VCC
Pada percobaan kali ini akan dibuat program
seperti pada Percobaan 3.1. Pada Percobaan 3.2 tegangan referensi ADC yang
digunakan adalah tegangan VCC pada mikrokontroler.
Prosedur :
1. Gantilah sintaks program pada
Percobaan 3.1 menjadi seperti di bawah ini, kemudian lakukan kompilasi dan upload
program.
#include
<LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7);
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);
}
1. Putarlah
potensiometer sehingga terjadi perubahan tegangan dari 0 volt sampai 5 volt
dengan rentan perubahan 1 volt, dan di dapatkan hasil sebagai berikut :
Tegangan Pin
|
A0 (Volt) Data di LCD Data Hasil
Perhitungan
|
0
0
0
1
207
1.01
2
413
2.01
3
620
3.03
4
840
4.1
2. fungsi tiap baris dari sintaks program pada Percobaan 3.2
#include <LiquidCrystal.h> \\ memanggil
library untuk lcd
LiquidCrystal lcd(2,3,4,5,6,7); \\
inisialisasi pin lcd
void setup() \\
setting awal program
{
lcd.begin(16,2); \\
tampilan lcd (kolom , baris)
lcd.clear(); \\
tampilan lcd di hapus
lcd.setCursor(0,0); \\
letak kursor pada lcd (0,0)
lcd.print("ADC
Example on A0"); \\ lcd
menampilkan ("ADC Example on A0");
analogReference(INTERNAL); \\ parameter
input (default) 5 volt
}
void loop() \\
program looping
{
unsigned int dataADC = analogRead(A0); \\ inisialisasi input A0
lcd.clear(); \\
tampilan lcd di hapus
lcd.setCursor(0,1); \\
letak kursor pada lcd (0,1)
lcd.print("Value = "); \\
lcd menampilkan “value =”
lcd.print(dataADC); \\
lcd menampilkan data ACD
delay(500); \\
jeda 500 milisekon
}
3.3
Analog Input dengan Tegangan Referensi Eksternal
Pada percobaan kali ini akan dibuat program
seperti pada Percobaan 3.1 dan Percobaan 3.2. Tegangan referensi ADC yang
digunakan adalah tegangan referensi eksternal yaitu tegangan pada pin AREF.
Pada percobaan kali ini b esar tegangan pada pin AREF akan di-set
sebesar 4 volt. Sehingga dapat dikataka n bahwa besarnya tegangan referensi
yang digunakan adalah 4 volt.
Prosedur :
2.
Tuliskan sintaks program di bawah ini, kemudian lakukan ko mpilasi dan upload
program ke sistem minimum Arduino.
#include
<LiquidCrystal.h>
LiquidCrystal lcd(2,3,4,5,6,7);
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 terukur 4 volt.
1. Putarlah
potensiometer R2 sehingga terjadi perubahan tegangan dari 0-5 volt dengan
rentan perubahan 1 volt. dan di dapatkan hasil sbb :
Tegangan pada Pin Data di LCD Data hasil perhitungan
0 0 0
1 254 0.99
2 501 1.95
3 760 2.97
4 1023 4
2.
fungsi tiap baris dari sintaks program pada Percobaan 3.3 !
LiquidCrystal lcd(2,3,4,5,6,7); \\
inisialisasi pin lcd
void setup() \\
setting awal program
{
lcd.begin(16,2); \\
tampilan lcd (kolom , baris)
lcd.clear(); \\
tampilan lcd di hapus
lcd.setCursor(0,0); \\
letak kursor pada lcd (0,0)
lcd.print("ADC
Example on A0"); \\ lcd
menampilkan ("ADC Example on A0");
analogReference(Eksternal); \\
parameter input eksternal ( 4 volt)
}
void loop() \\
program looping
{
unsigned int dataADC = analogRead(A0); \\ inisialisasi input A0
lcd.clear(); \\
tampilan lcd di hapus
lcd.setCursor(0,1); \\
letak kursor pada lcd (0,1)
lcd.print("Value = "); \\
lcd menampilkan “value =”
lcd.print(dataADC); \\
lcd menampilkan data ACD
delay(500); \\
jeda 500 milisekon
}
Tegangan referensi berfungsi sebagai parameter. Jika
input dari pin A0 di bawah tegangan referensi maka inputan tersebut di skalakan
dengan nilai 0<x<1023 ; x =value.
Hasil
skala ADC pada lcd bisa di gunakan untuk menghitung V input. Dengan cara :
ADC = nilai terbaca pada lcd;
Vin = tegangan input;
Vref = tegangan referensi ;
Jika suatu input lebih besar dari pada Vref ,
nilai input = Vref. Jadi input tidak bisa melebihi Vref.
3.4
Analog Comparator
Pada Percobaan 3.4 akan dibuat program untuk
mengakses fitur analog komparator pada mikrokontroler. Pada percobaan kali ini
dua buah input analog akan dihubungkan ke input pin kompara tor yaitu
AIN0 (pin 6) dan AIN1 (pin 7). Output
analog komparator akan ditampilkan pada LCD.
Prosedur :
- Rangkaialah
rangkaian pada Gambar 3.3.
Gambar 3.3 Rangkaian percobaan analog komparator
2.
Tuliskan sintaks program di bawah ini, kemudian lakukan kompilasi dan upload
program ke sistem minimum Arduino
#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 ");
}
}
jika tegangan pada pin AIN0 lebih besar dari tegangan pada
pin AIN1, Lcd akan menampilkan comparator high, di sebabkan arduino
membandingkan nilai tegangan pin 6 dan pin 7. Dimana pin 6 lebih besar dari pin
7. jika tegangan pada pin AIN0
lebih kecil dari tegangan pada AIN1, Lcd akan menampilkan comparator low, disebabkan arduino
membandingkan nilai tegangan pin 6 dan pin 7. Dimana pin 6 lebih kecil dari pin
7. prinsip kerja dari analog komparator pada sistem minimum Arduino, Berbeda
dengan op amp, Prinsip kerja ADC adalah mengkonversi sinyal analog ke dalam
bentuk besaran yang merupakan rasio perbandingan sinyal input dan tegangan
referensi ( 0 – 1023 ). Kemudian membandingkan hasil konversi tersebut satu
dengan yang lainnya.
fungsi tiap baris dari sintaks program pada Percobaan 3.4 !
#include <LiquidCrystal.h> \\
inisialisasi library LCD
LiquidCrystal
lcd(A0,A1,A2,A3,A4,A5); \\
inisialisasi inputan LCD
boolean comparatorOutput; \\
inisialisasi Boolean operator
ISR (ANALOG_COMP_vect) \\ program interupt
{
comparatorOutput = true; \\
inisialisasi nilai true
}
void setup()
{
ADCSRB = 0; \\
ADCSRB = bernilai 0
ACSR = _BV(ACI) | _BV(ACIE) | _BV (ACIS1); \\
lcd.begin(16,2); \\
inisialisasi dimensi lcd( kolom ,baris)
lcd.clear(); \\
menghapus tampilan lcd
lcd.setCursor(0,0); \\
inisialisasi letak kursor
lcd.print("Analog Comparator"); \\ lcd menampilkan “analog
comparator”
}
void loop()
{
if (comparatorOutput==true) \\
jika syarat memenuhi lakukan eksekusi
{
lcd.setCursor(0,1); \\
inisialisasi letak kursor
lcd.print("Comparator High"); \\
lcd menampilkan “komparator high”
comparatorOutput = false; \\
comparator output bernilai false.
}
else
{
lcd.setCursor(0,1); \\
inisialisasi letak kursor
lcd.print("Comparator Low "); \\
lcd menampilkan “comparator low”
}
delay(100); \\
jeda 100 milisekon
lcd.clear(); \\
menghapus tampilan lcd
}






Tidak ada komentar:
Posting Komentar