PERALATAN :
1. Komputer : 1 set
2. Arduino Uno : 1 pcs
3. Kabel USB tipe B : 1 pcs
4.
Project board :
1 pcs
5.
Kabel jumper :
1 set
6.
Potensiometer 10K : 3 pcs
7.
LCD 2x16 :
1 pcs
PERCOBAAN :
3.1 Analog Input dengan Tegangan Referensi Internal (1,1 Volt)
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 :
Gambar 3.1
Rangkaian Percobaan 3.1
2. Tuliskan sintaks program di bawah ini, kemudian lakukan kompilasi dan upload
program ke sistem minimum Arduino.
#include
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);
pinMode(A0,INPUT);
}
void
loop() {
unsigned int
dataADC = analogRead(A0);
lcd.setCursor(0,1);
lcd.print("Value=
");
lcd.print(dataADC);
delay(500);
}
Tugas dan Pertanyaan :
1.
Putarlah potensiometer sehingga terjadi perubahan
tegangan dari 0 volt sampai 1.5 volt dengan rentan perubahan 0.5 volt. Amati data yang ditampilkan pada LCD,
kemudian isilah Tabel 3.1 !
Tabel 3.1 Perbandingan
data hasil perhitungan
dan data pada LCD
2. Jelaskan fungsi tiap baris
dari sintaks program pada percobaan 3.1
!
#include <LiquidCrystal.h>//Pemanggilan
library untuk LCD
//Menginisialisasikan
pin LCD yang di pakai ke Library LCD
LiquidCrystal lcd(2,3,4,5,6,7);
void setup(){
lcd.begin(16,2);//Men-set jumla baris dan kolom yang di gunakan
lcd.clear();//Meng-clear baris
dan kolom pada LCD dari karakter apapun
lcd.setCursor(0,0);//Men-set kursor ke baris 0, kolom 0
lcd.print("ADC Example on A0");//Mengirimkan
text ke LCD
analogReference(INTERNAL);//Menggunakan
referensi tegangan analog sebesar 1,1V
pinMode(A0,INPUT);//Men-set pin A0 menjadi INPUT
}
void loop(){
//Membaca nilai analog di pin A0, kemudian di
simpan di varibel
//dataADC dengan format integer.
int
dataADC = analogRead(A0);
lcd.clear();//Meng-clear baris dan kolom pada LCD dari karakter apapun
lcd.setCursor(0,1);//Men-set
kursor ke baris 0, kolom 1
lcd.print("Value = ");//Mengirimkan
text ke LCD
lcd.print(dataADC);//Mengirimkan nilai ADC yang terbaca ke LCD
delay(500);//program di tunda selama 500mS sebelum ke step selanjutnya.
}
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 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);
pinMode(A0,INPUT);
}
void
loop() {
unsigned int
dataADC = analogRead(A0);
lcd.setCursor(0,1);
lcd.print("Value=
");
lcd.print(dataADC);
delay(500);
}
Tugas dan Pertanyaan :
1.
Putarlah potensiometer sehingga terjadi perubahan tegangan dari 0 volt sampai 5 volt dengan rentan perubahan 1 volt, kemudian amati data yang ditampilkan pada LCD dan isilah Tabel 3.2 !
Tabel 3.2 Perbandingan
data perhitungan dan data pada LCD
2. Jelaskan fungsi tiap baris
dari sintaks program pada Percobaan 3.2
#include <LiquidCrystal.h>//Pemanggilan
library untuk LCD
//Menginisialisasikan
pin LCD yang di pakai ke Library LCD
LiquidCrystal lcd(2,3,4,5,6,7);
void setup(){
lcd.begin(16,2);//Men-set jumla baris dan kolom yang di gunakan
lcd.clear();//Meng-clear
baris dan kolom pada LCD dari karakter apapun
lcd.setCursor(0,0);//Men-set kursor ke baris 0, kolom 0
lcd.print("ADC Example on A0");//Mengirimkan
text ke LCD
//Menggunakan referensi tegangan analog dari tegangan Vcc
analogReference(DEFAULT);
pinMode(A0,INPUT);//Men-set pin A0
menjadi INPUT
}
void loop(){
//Membaca nilai analog di pin A0, kemudian di
simpan di varibel
//dataADC dengan format integer.
int
dataADC = analogRead(A0);
lcd.clear();//Meng-clear baris dan kolom pada LCD dari karakter apapun
lcd.setCursor(0,1);//Men-set
kursor ke baris 0, kolom 1
lcd.print("Value = ");//Mengirimkan
text ke LCD
lcd.print(dataADC);//Mengirimkan nilai ADC yang terbaca ke LCD
delay(500);//program di tunda selama 500mS sebelum ke step selanjutnya.
}
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 besar tegangan pada
pin
AREF akan di-set sebesar 4 volt. Sehingga dapat dikatakan bahwa besarnya
tegangan referensi yang digunakan adalah 4 volt.
Prosedur :
Gambar 3.2
Rangkaian Praktikum 3.3
2.
Tuliskan sintaks program di bawah ini, kemudian lakukan kompilasi dan upload program ke sistem minimum Arduino.
#include
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);
pinMode(A0,INPUT);
}
void
loop() {
unsigned int
dataADC = analogRead(A0);
lcd.setCursor(0,1);
lcd.print("Value=
");
lcd.print(dataADC);
delay(500);
}
3.
Putar potensiometer R3 hingga tegangan pada pin
AREF
terukur 4 volt.
Tugas dan Pertanyaan :
1.
Putarlah potensiometer
R2 sehingga terjadi
perubahan tegangan dari 0-5
volt dengan rentan perubahan 1 volt. Amati data yang ditampilkan pada LCD, kemudian
isilah Tabel 3.3.
Tabel 3.3 Perbandingan data hasil perhitungn dan
data pada
LCD
2.
Jelaskan fungsi tiap baris dari sintaks program pada Percobaan 3.3 !
#include <LiquidCrystal.h>//Pemanggilan
library untuk LCD
//Menginisialisasikan
pin LCD yang di pakai ke Library LCD
LiquidCrystal lcd(2,3,4,5,6,7);
void setup(){
lcd.begin(16,2);//Men-set jumla baris dan kolom yang di gunakan
lcd.clear();//Meng-clear
baris dan kolom pada LCD dari karakter apapun
lcd.setCursor(0,0);//Men-set kursor ke baris 0, kolom 0
lcd.print("ADC Example on A0");//Mengirimkan
text ke LCD
//Menggunakan referensi tegangan analog dari tegangan di pin Aref
analogReference(EKSTERNAL);
pinMode(A0,INPUT);//Men-set pin A0
menjadi INPUT
}
void loop(){
//Membaca nilai analog di pin A0, kemudian di
simpan di varibel
//dataADC dengan format integer.
int
dataADC = analogRead(A0);
lcd.clear();//Meng-clear baris dan kolom pada LCD dari karakter apapun
lcd.setCursor(0,1);//Men-set
kursor ke baris 0, kolom 1
lcd.print("Value = ");//Mengirimkan
text ke LCD
lcd.print(dataADC);//Mengirimkan nilai ADC yang terbaca ke LCD
delay(500);//program di tunda selama 500mS sebelum ke step selanjutnya.
}
3. Jelaskan pengaruh nilai tegangan referensi
pada hasil konversi ADC !
>> Nilai
tegangan referensi pada konfersi ADC mempengaruhi pada resolusi yang di
hasilkan semakin besar nilai tegangan referensi maka semakin besar juga
resolusi perubahannya.
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 komparator yaitu AIN0 (pin
6) dan AIN1(pin 7) Output komparator akan ditampilkan pada LCD.
Prosedur :
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>
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.print("Comparator High");
comparatorOutput = false;
}
else {
lcd.setCursor(0,1);
lcd.print("Comparator Low
");
}delay(1000);}
Tugas dan Pertanyaan :
1.
Putarlah potensiometer R2 dan R3, amati
teks pada LCD sehinga terjadi perubahan
output. Apakah
yang terjadi jika tegangan pada pin AIN0 lebih besar dari tegangan pada pin AIN1, jelaskan !
>> Jika tegangan pada AIN0 ( pin 6 ) lebih besar dari AIN1 ( pin 7 )
maka tampilan LCD akan menunjukkan “ Comparator HIGH “ selang 1 detik.
2.
Jelaskan prinsip kerja dari analog komparator pada sistem minimum Arduino ! apakah prinsip kerja komparator pada mikrokontroler sama dengan prinsip kerja komparator pada op-amp ?
>> Prinsip kerjanya hampir sama, akan tetapi ada sedikit perbedaan
dimana komparator pada arduino hanya akan menghasilkan nilai output HIGH saat
terjadi interrupt, atau saat ada perubahan tegangan antara AIN0 dan AIN1. Jika
tidak ada perubahan di antaranya output dari komparator arduino adalah LOW.
3.
Apakah yang terjadi jika tegangan pada
pin AIN0 lebih kecil dari tegangan pada AIN1, jelaskan !
>> Jika
AIN0 lebih kecil dari AIN1 , maka tampilan pada LCD akan tetap menunjukkan “
Comparator LOW” .
4.
Jelaskan fungsi tiap baris
dari sintaks program pada Percobaan 3.4 !
#include <LiquidCrystal.h>//Pemanggilan library untuk LCD
//Menginisialisasikan
pin LCD yang di pakai ke Library LCD
LiquidCrystal
lcd(A0,A1,A2,A3,A4,A5);
boolean comparatorOutput;//Menginisialisasikan variable dengan tipe boolean
ISR (ANALOG_COMP_vect){//Interrupt Service Routine untuk analog comparator
comparatorOutput=true;//Memberikan boolean true jika terjadi interrupt
}
void setup(){
ADCSRB=0; //Menonaktifkan analog
komparator multiplexser
//[ACD, ACBG, ACO, ACI, ACIE, ACIC,
ACIS1, ACIS0]
ACSR=_BV(ACI) //(clear) analog comparator interrupt flag
| _BV(ACIE) //analog comparator interrupt enable
| _BV(ACIS1); //Pemilihan
mode analog comparator interrupt
lcd.begin(16,2); //Men-set jumla
baris dan kolom yang di gunakan
lcd.clear();//Membersihkan
baris dan kolom pada tampilan LCD dari semua karakter
lcd.setCursor(0,0); //Men-set kursor pada baris 0 dan kolom 0
lcd.print("Analog Comparator"); //Mencetak text ke LCD
}void loop()
{
if (comparatorOutput==true)//Jika terjadi interupsi
{//lakukan program didalam fungsi if()
lcd.setCursor(0,1); //Men-set kursor pada baris 0 dan kolom 1
lcd.print("Comparator High");//Mencetak text ke LCD
comparatorOutput=false;//constans pada
comparatorOutput di kembalikan ke false
}
else //jika tidak terjadi
interupsi
{//lakukan program di dalam fungsi else.
lcd.setCursor(0,1); //Men-set kursor pada baris 0 dan kolom 1
lcd.print("Comparator Low");//Mencetak text ke LCD
}delay(2000); //program di tunda
selama 500mS sebelum ke step selanjutnya.
}
You Might Also Like :