Arduino

Arduino 특정시간 제어와 릴레이 다루기

기하 2022. 10. 23. 02:45

LED 기본예제 소스(1초 단위로 LED 깜박이기)

void setup() {
    pinMode(13, OUTPUT);
}

void loop() {
    digitalWrite(13, HIGH);
    delay(1000);
    digitalWrite(13, LOW);
    delay(1000); 
}
 
릴레이효과 소스
unsigned long previousMillis = 0; 
const long interval = 1000;

void loop() {
  unsigned long currentMillis = millis();
  
  if(currentMillis - previousMillis >= delayTime){
    previousMillis = currentMillis;
    원하는 동작;
  }  
}
 

두 코딩을 합치면

int led = 13; //Red LED 핀번호
unsigned long previousMillis = 0; //이전시간
const long delayTime = 1000; //1초(1000) 대기시간
boolean ledState = false; //LED 현재상태

void setup() {
  pinMode(led, OUTPUT); //13번 핀을 출력모드로 사용.
}

void loop() {
  unsigned long currentMillis = millis(); //현재시간값 가져옴
  
  if(currentMillis - previousMillis >= delayTime){ //1000초 시간이 흘렀는지 체크
    previousMillis = currentMillis; //1초가 지나 참임으로 1초 지난 현재시간을 이전시간에 저장
    ledState=!ledState;   //1초 if문이 참이니깐 1초 단위로 ledState 값을 반전시키면 1초 단위로 참/거짓됨.
    digitalWrite(led, ledState);   //참(5V) or 거짓(0V) 
  }  
}

 

10초간 릴레이가 ON 되고 5초간 OFF 되는 프로그램

사실 소스는 별거 없다. 어떤 센서를 이용하여 어떤 상황에서 전원을 ON/OFF를 할지가 가장 중요하다.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
//KY019 5V 릴레이 모듈
 
int relay = 10//릴레이에 5V 신호를 보낼 핀설정
void setup ()
{
  pinMode (relay, OUTPUT); // relay를 output으로 설정한다.
}
void loop ()
{
  digitalWrite (relay, HIGH); // 릴레이 ON
  delay (10000);              //10초 delay
  digitalWrite (relay, LOW); // 릴레이 OFF
  delay (5000);               //5초 delay
}
 
cs