회로도전자부품

아두이노NANO 스위치로 릴레이 제어하기

by nanumi posted Jun 13, 2020
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

아두이노 스위치로 릴레이 제어하기

 

음,, 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