Minggu, 01 Desember 2013

TIMER DAN COUNTER



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:

1. Buatlah rangkaian seperti Gambar6.2.   


 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

program ini merupakan program untuk menghitung jumlah penekana switch pada input counter menggunakan mode fallingedge.


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);
}
 

 
3.Maka saat di jalankan akan menjadi seperti pada Rekaman ini






Sekian lah Materi yang dapat saya sampaikan...... TERIMAKASIH
 

Tidak ada komentar:

Posting Komentar