Minggu, 05 Januari 2014

SLEEP MODE DAN WATCHDOG TIMER Arduino Uno

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 pcs
6. LED                                    : 1 pcs
7. Resistor 330 Ohm               : 1 pcs
9.1 Sleep Mode Selama 4 detik dan Wake up saat terjadi Timer Overflow
            Pada percobaan kali ini akan dibuat program untuk mengakses mode sleep pada mikrokontroller. Mode sleep akan terjadi selama 4 detik, kemudian mikrokontroller akan aktif kembali (wake up). Pada saat wake up, mikrokontroller aka melakukan perubahan terhadap kondisi LED yang terhubung pada pin 12. Sehingga jika program dijalankan, seakan-akan LED akan berkedip dengan selang waktu 4 detik. Namun, sebenarnya 4 detk tersebut mikrokontroller sedang sleep mode (tidak melakukan apa-apa).
Prosedur:
1.      Rangkailah rangkaian pada Gambar 9.1 berikut ini.

2.      Tuliskan sintaks program berikut ini pada Arduino IDE, kemudian lakukan kompilasi dan upload program.
#include <avr/sleep.h>
#include <avr/power.h>
#define LED_PIN (12)
volatile int f_timer=0;
ISR(TIMER1_OVF_vect) {
if(f_timer == 0) {
f_timer = 1;
}
}
void enterSleep(void) {
set_sleep_mode(SLEEP_MODE_IDLE); sleep_enable();
power_adc_disable();             power_spi_disable();
power_timer0_disable();          power_timer2_disable();
power_twi_disable();             sleep_mode();
sleep_disable();                 power_all_enable();
}
void setup() {
pinMode(LED_PIN, OUTPUT);
TCCR1A = 0x00; TCNT1=0x0000;
TCCR1B = 0x05; TIMSK1=0x01;
}
void loop() {
if(f_timer==1) {
f_timer = 0;
digitalWrite(LED_PIN, !digitalRead(LED_PIN));
enterSleep();
}

}

0 komentar:

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More