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:
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