TUJUAN:
1. Mampumembuatprogramyangmengunakanfiturtimersebagaipewaktu.
2. Mampumembuatprogramyangmenggunakanfiturtimersebagaipenghitung.
3. Mampumempergunakanfiturtimerpadamikrokontroleruntukmembuatjamdigitalsederhana.
PERALATAN:
1. Komputer
2. ArduinoUno
3. KabelUSBtipeB
4. Projectboard
5. Kabeljumper
6. LED
7. Resistor330Ohm
8. Switchpushbutton
9. LCD
10.Potensiometer
:1set
:1pcs
:1pcs
:1pcs
:1set
:1pcs
:1pcs
:1pcs
:1pcs
:1pcs
PERCOBAAN:
6.1Penggunaan TimerOverflow Untuk LED Blinking
Program di bawah ini merupakan program yang di gunakan intuk mengatur led blink bedasarkan FUNGSI TIMER.
Prosedur:
1. Buatlah rangkaian seperti pada Gambar6.1.
2. lalu buatlah program seperti ini....
booleandataLed=0;
unsignedintoverflowCount=0;
voidsetup(){Serial.begin(9600);pinMode(13,OUTPUT);TCCR1A=0;
TCCR1B=0;TCNT1=34286;
TCCR1B|=(1<<
TIMSK1|=(1<<
sei();
}
CS12); //256prescaler
TOIE1);
ISR(TIMER1_OVF_vect){TCNT1=34286;
if(dataLed==0){
dataLed=1;
}
else{
dataLed=0;
}digitalWrite(13,overflowCount++;
}
dataLed);
voidloop(){
Serial.print("Overflowcount=");Serial.println(overflowCount,DEC);delay(100);
}
3. Maka saat di jalankan akan menjadi seperti pada Rekaman ini
6.2 Jam Digital Menggunakan Timer
Pada percobaan ini akan di buat program jam digital yang menggunakan fungsi timer yang di seting overflow setiap detik.
Prosedur:
2. lalu buatlah program seperti ini...
#include<LiquidCrystal.h>LiquidCrystallcd(2,3,4,5,6,7);
unsignedintjam,
booleanled=0;
menit,detik;
ISR(TIMER1_OVF_vect){TCNT1H=0xC2;TCNT1L=0xF7;
detik++;
if(detik>=60){
detik=0;
menit++;
if(menit>=60){
menit=0;jam++;if(jam>=24){
jam=0;
}
}
}
}
voidinitTimer1(){TCCR1A=0x00;TCCR1B=0x05;TCNT1H=0xC2;TCNT1L=0xF7;ICR1H=0x00;ICR1L=0x00;OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;TIMSK1=0x01;sei();
}
voidsetup(){lcd.begin(16,2);lcd.clear();initTimer1();
}
voidloop(){lcd.clear();lcd.setCursor(0,0);lcd.print("JamDigital");lcd.setCursor(0,1);lcd.print(jam,DEC);lcd.print(":");lcd.print(menit,DEC);lcd.print(":");lcd.print(detik,DEC);delay(500);
}
3.Maka saat di jalankan akan menjadi seperti pada Rekaman ini
6.3CounterModeFallingEdge
Prosedur:
1. BuatlahrangkaiansepertipadaGambar6.3.
2. Buatlah program seperti ini....
voidsetup(){Serial.begin(9600);TCCR1A=0x00;TCCR1B=0x06;TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00;OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;
}
voidloop(){
Serial.print("NilaiTCNT1=");
Serial.println(TCNT1,DEC);
delay(100);
}
3.Maka saat di jalankan akan menjadi seperti pada Rekaman ini
6.4Counter Mode Rising Edge
Percobaan 6.4 ini memiliki fungsi yang sama dengan 6.3 hanya saja pada percobaan ini menggunakan mode counter rising edge.
Prosedur:
1.Gantilah sintaks program pada Percobaan 6.3 dengan sintaks program berikut ini,
voidsetup(){Serial.begin(9600);TCCR1A=0x00;TCCR1B=0x07;TCNT1H=0x00;TCNT1L=0x00;ICR1H=0x00;ICR1L=0x00;OCR1AH=0x00;OCR1AL=0x00;OCR1BH=0x00;OCR1BL=0x00;
}
voidloop(){
Serial.print("NilaiTCNT1=");
Serial.println(TCNT1,DEC);
delay(100);
}
Sekian lah Materi yang dapat saya sampaikan...... TERIMAKASIH
Tidak ada komentar:
Posting Komentar