1.2.4. fejezet, Mozgás érzékelés

Felhasznált alkatrészek

Forráskód

#include <Eventually.h>
 
#define LIGHT_PIN 13
#define BUTTON_PIN 7
 
bool speed = LOW;
EvtManager mgr;
bool pin_state = LOW;
 
bool blink() {
  pin_state = !pin_state;
  digitalWrite(LIGHT_PIN, pin_state);
  return false;
}
 
bool set_speed() {
  mgr.resetContext();
  mgr.addListener(new EvtPinListener(BUTTON_PIN, (EvtAction)set_speed));
  speed = !speed; // Change speeds
  if(speed == HIGH) {
    mgr.addListener(new EvtTimeListener(250, true, (EvtAction)blink));
  } else {
    mgr.addListener(new EvtTimeListener(1000, true, (EvtAction)blink));
  }
 
  return true;
}
 
void setup() {
  pinMode(LIGHT_PIN, OUTPUT);
  pinMode(BUTTON_PIN, INPUT);
  set_speed();
}
 
USE_EVENTUALLY_LOOP(mgr)

A program mozgás érzékelésekor megváltoztatja a D13-as lábra kötött (és beépített) led villogásának frekvenciáját. Az Eventually könyvtárat használja az mozgás esemény érzékelésére és a led ki/be kapcsolására, és a mintaprogramok közütt találjuk.

Érdekességek

Az arduino fogyasztása csökkenthető, ha használjuk a LowPower függvénykönyvtárat.

Hasonló projektek










Kapcsolódó hivatkozások