아두이노 타이머 사용 방법

Software/Arduino|2023. 2. 6. 11:27
반응형

아두이노에서 내부 Timer를 이용하여 LED를 제어하는 코드 입니다. 

토글 스위치를 이용하여 타이머 동작을 제어하고 타이머가 구동되면 1초간격으로 LED 가 점멸하도록 했습니다.

#include "MsTimer2.h"    // Timer를 사용하기위한 헤더 선언 

#define     LED_ON          0
#define     LED_OFF         1

const int LED_CONT   = 1 ;
const int Timer_CONT = 2 ;      

boolean LED_Status = false ;     // LED 의 현재 상태 Flag 
boolean timerStatus = false ;    // 타이머 동작 여부 상태 Flag
//--------------------------------------------------------------------------------
void setup() 
{
    MsTimer2::set(1000, Timer_Event);      // 타이머 설정 : 1000msec, 구동 함수 선언  
	
	pinMode(LED_CONT, OUTPUT) ;
	pinMode(Timer_CONT, INPUT) ;           // toggle switch를 사용한 입력 
	
	digitalWrite(LED_CONT, LED_OFF);  
}
//--------------------------------------------------------------------------------
void loop() 
{
	int input = digitalRead(Timer_CONT) ;
	
	if(input == 1)
	{
		if(timerStatus == false)
		{		
			MsTimer2::start();  			// 타이머 동작 시작 
			timerStatus = true ;
		}
	}
	else
	{
		if(timerStatus == true)
		{		
			MsTimer2::stop();                // 타이머 동작 멈출
			timerStatus = false ;
		}
	}
}
//--------------------------------------------------------------------------------
void Timer_Event()  
{
    /* Timer Event : 1초에 한번씩 동작 */
    
	if(LED_Status)
	{
		digitalWrite(LED_CONT, LED_OFF);  
	}
	else
	{
		digitalWrite(LED_CONT, LED_ON);  
	}
	
	LED_Status = !LED_Status ;
}
//--------------------------------------------------------------------------------

아두이노 타이머 테스트
타이머 테스트 회로

반응형

댓글()