Arduino Sleep Mode
Pada percobaan kali ini akan dibuat program untuk mengakses Mode Sleep pada mikrokontroler. Mode sleep akan terjadi selama 4 detik, kemudian mikrokontroler akan aktif kembali (wake up). Pada saat wake up, mikrokontroler akan 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 selama 4 detik tersebut mikrokontroler sedang dalam sleep mode (tidak melakukan apa-apa).Prosedur :
1. Rangkailah rangkaian pada Gambar 9.1 berikut ini.
1. Rangkailah rangkaian pada Gambar 9.1 berikut ini.
2. Tuliskan sintaks program berikut ini pada Arduino IDE, kompilasi dan upload program.
#include <avr/sleep.h>
#include <avr/power.h>
#define LED_PIN 13
volatile int f_timer=0;
void loop() {
ISR(TIMER1_OVF_vect)
{ if(f_timer == 0) {f_timer = 1;}}
void enterSleep(void)
{
set_sleep_mode(SLEEP_MODE_IDLE);
sleep_enable();
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;
TCCR1B = 0x05;
TCNT1=0x0000;
TIMSK1=0x01;
}
if(f_timer==1)
{f_timer = 0;di