반응형

아두이노, 타이머 지정 실행 SimpleTimer 라이브러리

 

글. 오상문 sualchi@daum.net

 

SimpleTimer 라이브러리를 이용하면 원하는 시간 이후에 동작하거나

지정한 숫자만큼 일정 시간 간격으로 동작하는 것이 가능합니다.

 

참고로, 기본 라이브러리가 아니므로 아두이노 스튜디오에 라이브러리를 추가해야 합니다.

 

링크: http://playground.arduino.cc/Code/SimpleTimer

 

 

<예제 1>

-----------------------------------------------------------

#include <SimpleTimer.h>

 

#define BUTTON 2
#define ALARM 8
#define LED 13
 
SimpleTimer timer;
int pState = LOW;
boolean booked = false;
 
void setup() {
  pinMode(BUTTON, INPUT);
  pinMode(LED, OUTPUT);
}
 
void loop() {
  int state = digitalRead(BUTTON);
 
  if(pState == LOW && state == HIGH) {
    if(booked == false) {
      booked = true;
      digitalWrite(LED, HIGH);
      timer.setTimeout(5000, beep); // 5초 뒤에 beep 함수 호출
    }
  }
 
  pState = state;
  timer.run();
}
 
void beep() {
  booked = false;
  digitalWrite(LED, LOW);
  tone(8, 1000, 20);
  delay(100);
  tone(8, 1000, 20);
  delay(100);
  tone(8, 1000, 20);
}

 

 

<예제 2>

-----------------------------------------------------------

 
#include <SimpleTimer.h>

 

#define LED 13
 
SimpleTimer timer;
boolean ledOn = false;
 
void setup() {
  pinMode(LED, OUTPUT);
  Serial.begin(9600);
  timer.setInterval(1000, toggle); // 1초에 한번 toggle 함수 호출
  timer.setInterval(5000, notify); // 5초에 한번 notify 함수 호출
}
 
void loop() {
  timer.run();
}
 
void toggle() {
  if(ledOn == true) {
    digitalWrite(LED, LOW);
  } else {
    digitalWrite(LED, HIGH);
  }
  ledOn = !ledOn;
}
 
void notify() {
  Serial.print("Brightenss : ");
  Serial.println(analogRead(A0));
}


 

참조: http://tkpark86.tistory.com/17

 

<이상>

반응형

+ Recent posts