아두이노 스위치로 릴레이 제어하기
음,, LOW가 0이고 HIGH가 1이네?
스위치가 눌려진 상태가 0, 안누른 상태가 1
릴레이가 켜진상태가 0, 안켜진 상태가 1
LED가 켜진상태가 0, 안켜진 상태가 1
해본지가 오래되어서 기억이 잘 안나네...
새롭다!
//KY019 5V 릴레이 모듈
int sw1 = 4;
int sw2 = 5;
int sw3 = 7;
int led1 = 11;
int led2 = 12;
int led3 = 13;
int relay = 10; //릴레이에 5V or 12V 신호를 보낼 핀설정
int sw_mode = 1;
void setup ()
{
pinMode (sw1, INPUT_PULLUP);
pinMode (sw2, INPUT_PULLUP);
pinMode (sw3, INPUT_PULLUP);
pinMode (led1, OUTPUT);
pinMode (led2, OUTPUT);
pinMode (led3, OUTPUT);
pinMode (relay, OUTPUT); // relay를 output으로 설정한다.
Serial.begin(9600);
}
void loop ()
{
if (digitalRead(sw1) == LOW)
sw_mode = 1;
if (digitalRead(sw2) == LOW)
sw_mode = 2;
if (digitalRead(sw3) == LOW)
sw_mode = 3;
Serial.print(digitalRead(sw1));
Serial.print(" / ");
Serial.print(digitalRead(sw2));
Serial.print(" / ");
Serial.println(digitalRead(sw3));
Serial.print("스위치모드 : ");
Serial.println(sw_mode);
switch (sw_mode)
{
case 1 : digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
Serial.print(sw_mode);
Serial.println("스위치모드 : 이 선택되어 10분간 ON 후 10분간 OFF 시작합니다.");
digitalWrite (relay, LOW); // 릴레이 ON
delay (600000); //10분 delay
digitalWrite (relay, HIGH); // 릴레이 OFF
delay (600000); //10분 delay
break;
case 2 : digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
Serial.print(sw_mode);
Serial.println("스위치모드 : 이 선택되어 10분간 ON 후 30분간 OFF 시작합니다.");
digitalWrite (relay, LOW); // 릴레이 ON
delay (600000); //10분 delay
digitalWrite (relay, HIGH); // 릴레이 OFF
delay (1800000); //30분 delay
break;
case 3 : digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
Serial.print(sw_mode);
Serial.println("스위치모드가 선택되어 30분간 ON 후 1시간 OFF 시작합니다.");
digitalWrite(relay, LOW); // 릴레이 ON
delay (1800000); //30분 delay
digitalWrite (relay, HIGH); // 릴레이 OFF
delay (3600000); //1시간 delay
break;
}
}
#아두이노 #스위치로 #릴레이 #제어하기 #ARDUINO #NANO #RELAY #CONTROL