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.
#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;digitalWrite(LED_PIN, !digitalRead(LED_PIN));enterSleep();}
}
Hasil percobaan :
Kesimpulan :
- Dari hasil praktikum mula – mula led berada dalam kondisi mati, setelah empat detik kemudian led akan menyala. Saat led menyala di dalam program juga mengaktifkan mode sleep dari arduino dengan mendisable beberapa fitur dari mikrokontroller.
- Manfaat dari sleep mode pada mikrokontroller adalah kita dapat mematikan fitur-fitur yang tersedia pada mikrokontroller seperti ADC, TWI, Serial, Timer dan sebagainya. Fungsi dari kita mematikan beberapa fitur yang kita inginkan adalah untuk menghemat pemakaian daya dari mikrokontroller. Sehingga jika sebuah mikrokontroller dijalankan dengan menggunakan battery, akan dapat bertahan lebih lama lagi.
You Might Also Like :