아두이노2015. 9. 7. 13:30

릴레이는 자동으로 컨트롤이 가능한 스위치의 일종으로 작은 전압으로 큰 전압을 컨트롤 하기 위한 부품이다. 

 

쉽게 말해 아두이노로 가정용 전기인 220V나 그 이상의 전기를 제어하려고 할 때 쓰이는 부품이다.

아두이노에서 선풍기, 가정용 전등 등을 켜고 끌수 있는 것이다.



릴레이의 원리이다. 위의 그림을 보면 5V 전압으로 릴레이를 동작시켜 가정용 전기에 연결된 오븐을 제어하는 것을 볼 수 있다. 릴레이에 5V 전기가 가해지면(릴레이 규격에 따라 동작 전압이 다름) 릴레이 안의 전자석이 자성을 띄어 스위치를 ON 한다. 5V전기를 끊으면 전자석이 자성을 잃고 스프링에 의해 원복되면서 전류도 끊어지게 된다. 사실 이 글에서 해 보는 것은 이 그림의 손 역할을 아두이노가 대신 하게 되는 것이다.


릴레이 전원연결측 단자. 중간이 공통단자, 좌측단자가 ON, 우측단자가 OFF 시 연결된다.


내가 가지고 있는 릴레이 모듈이다. 릴레이 부품에 아두이노와의 연결을 용이하게 하기 위하여 다이오드, LED 등의 부품이 들어있는 보드가 부착되어 있다. 


릴레이에 쓰여져 있는 부분을 보면 SRD-05VDC-SL-C(모델명) 라고 되어 있는데 릴레이 컨트롤을 위한 전압은 5VDC(5V 직류)인 것을 알 수 있다. 5V는 아두이노에서도 공급가능한 전압이기 때문에 아두이노에서 컨트롤이 가능하다.


그 위에 10A 250VAC, 10A 30VDC 라는 것은 릴레이에서 컨트롤 가능한 최대전압/전류이다.

10A 250VAC 는 10암페어, 250볼트(교류) 이므로 우리나라 가정용 전압인 220VAC(교류)도 컨트롤 가능하다.

10A 30VDC 는 컨트롤 가능한 직류전압이다.


단, 10A를 넘어가는 전열기 같은 것을 컨트롤 하려면 더욱 큰 전류를 컨트롤 가능한 릴레이를 사용하여야 한다.


릴레이(SRD-05VDC-SL-C) 데이터시트:

27115-Songle-Relay-Datasheet.pdf


릴레이모듈 사용 매뉴얼:

27115-Single-Relay-Board-Guide-v1.0.pdf




나는 위와 같이 전원플러그와 연결된 220V용 전선의 중간 부분을 끊어서 릴레이와 연결하였다. 제어가 필요한 가전제품은 멀티탭에 꼽아서 쓸 수 있도록 만들었다. 릴레이가 ON되면 전원의 끊어진 부분이 이어지면서 멀티탭에 전원이 공급될 것이고 멀티탭에 연결된 가전제품이 동작이 될 것이고 반대의 경우 가전제품의 동작이 중단될 것이다. 


※ 만약 이 글을 보고 따라하려는 사람이 있다면 220V의 높은 전압을 다루게 되므로 자칫 잘못하면 감전되어 다칠 수 있으므로 주의를 기울여야 하며 사용하려는 릴레이의 허용전압/전류를 꼭 확인하고 사용해야 한다.



위와 같이 아두이노를 연결해 준다. 아두이노의 역할은 단순히 프로그램에 의해 릴레이에 전원을 공급하거나 끊어주는 것이다. 전원 ON/OFF를 다른 입력센서를 이용하여 하게되면 온도가 올라가면 가동되는 선풍기(온도센서 이용-블로그 참조), 가까이가면 켜지는 전등(초음파센서 이용-블로그 참조) 등을 만들 수 있을 것이다.

위의 그림에서 릴레이의 전원연결은 공통단자인 검정색과 릴레이 ON시 연결되는 빨간색 단자를 연결해 주었다.



##소스##

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


##결과##

나의 경우엔 헤어드라이어를 아두이노에서 ON/OFF 해 보았다. 

프로그램대로 10초간 전원이 연결되어 켜지고, 5초간 전원이 차단되어 꺼진다.



사실 진짜 해 보고 싶었던 것은 아두이노로 집안의 전체 전등을 컨트롤 해보려고 생각해봤지만

일이 너무 커질것 같은 생각이 들었다. 하나 정도는 가능할.듯 하지만 전체는 불가능에 가까울 듯 하다.

콘크리트 천장을 뜯으면 가능할거 같은데.... ;; 

나중에 돈 많이 벌어서 집을 짓게되면 중앙에서 집안의 전원을 따로 따로 관리 할 수 있는 콘솔 같은걸 만들어 보고 싶다. 거기에 아두이노와 이더넷 쉴드 같은걸 연결하면 외출중에도 PC나 스마트폰으로 집안 전체의 전원을 컨트롤 할 수 있겠지... 아마도 요즘 짓는 고급아파트들을 그렇게 이미 되어 있지 않을까???


반응형
Posted by 대네브 (deneb)

댓글을 달아 주세요

  1. 이전 댓글 더보기
  2. ㅠㅠ

    릴레이와 센서를 같이 동작되는 명령문은 어떻게 써야하나요?

    2016.11.16 12:48 [ ADDR : EDIT/ DEL : REPLY ]
    • 구체적이지 않아서 질문이 뭔지 잘 모르겠네요. 센서를 통한 릴레이제어에 대한 것 이라면 http://deneb21.tistory.com/367 글을 참고해 보세요

      2016.11.16 14:41 신고 [ ADDR : EDIT/ DEL ]
  3. 지나가던 개

    릴레이가 전기를 많이 먹는 것 같더군요..
    1602 LCD와 함께 연결했는데 릴레이가 켜지면 화면이 어두워지네요.
    또 이것때문인지는 모르겠지만 아두이노가 자꾸 멈추네요. 혹시 이것 때문이 아니라면 다른 원인이 있을까요?
    그리고 전원을 직접 차단하는 것(전원 잭 뽑기) 말고 다른 방법이 있나요..?왠지 컴퓨터처럼 강제 종료하듯이 하면 왠지 문제가 생길 것 같아서요..

    요점
    1. 아두이노가 자꾸 멈추는게 릴레이가 전기를 많이 먹어서인가요?
    2. 아두이노를 끌 때 전원 잭을 뽑는 것 말고 다른 방법이 있나요?

    2016.11.28 22:25 [ ADDR : EDIT/ DEL : REPLY ]
    • 지나가던 개

      전압 부족이었군요..
      9볼트 배터리가 많이 방전된게 원인이었던듯 합니다.
      집에있던 12V 어댑터를 끼워보니 정상작동 하는군요.

      2016.11.28 23:00 [ ADDR : EDIT/ DEL ]
    • 해결이 되셨군요. 9V 건전지로 동작이 잘 안된 이유는 전압보다는 전류가 부족하기 때문이라고 보여지네요. 각종 센서나 모터, 릴레이 등을 많이 달면 아두이노만의 전원으로는 부족한 경우가 많은데 이럴 경우는 아두이노 동작을 위한 전원과 다른 부품의 전원을 따로 연결해 주어야 합니다. 물론 전원은 분리되어도 GND 는 공유해야 동작 합니다.

      2016.11.28 23:12 신고 [ ADDR : EDIT/ DEL ]
  4. hcho

    안녕하세요. 전기에 관해선 완전초보입니다.

    아두이노 전원공급을 220v 교류에서 직접 얻는 방법은 없을까요?

    별도로 파는 무선전등스위치나 콘센트의 구조와 회로가 궁금해서요.

    2016.12.23 12:16 [ ADDR : EDIT/ DEL : REPLY ]
  5. 가정용 220v 에서도 당연히 아두이노를 구동할 수 있습니다.
    하지만 220V를 그냥 아두이노에 연결하면 아두이노가 폭발할 겁니다.
    그래서 AC to DC 어댑터가 필요하죠. 집에 어댑터 있으시죠?
    그걸 아두이노에 끼우면 됩니다. 아두이노 우노에 보면 어댑터 끼우는 동그란 구멍이 있습니다.
    거기로 전원을 공급받습니다. 7~12V 어댑터면 됩니다.
    더욱 자세한 사항은 아래의 사이트를 읽어보세요.
    http://www.open-electronics.org/the-power-of-arduino-this-unknown/

    2016.12.23 12:26 신고 [ ADDR : EDIT/ DEL : REPLY ]
  6. mingo

    안녕하세요. 관련 지식이 없는 전혀 무지한 상태인데요.
    포스트에 나와 있는 것처럼 파워 콘센트에 연결하지 않고, 파워 콘센트 대신 모터를 연결하여 바로 모터를 구동시키고, 속도를 제어하고자 하는데요.
    현재 저희가 가지고 있는 부품은 AC모터(yj48-15)와 SSR(SDA1-425Z)이구요, 모터에 선이 3개(빨강 파랑 검정)가 있어요. 이 때 릴레이모듈과 모터를 어떻게 연결해야 하는지 궁금합니다.

    2017.01.13 11:47 [ ADDR : EDIT/ DEL : REPLY ]
    • ac 모터는 저도 해 본 적이 없어서 잘 모르겠네요. 구글링을 해 보시는것이 좋을듯 합니다.

      2017.01.15 08:38 신고 [ ADDR : EDIT/ DEL ]
    • 손님

      AC 모터를 제어하기 위해서는 별도의 AC 모터 드라이버 제품을 추가 장착해야 됩니다.

      2019.11.11 18:01 [ ADDR : EDIT/ DEL ]
  7. 이상언

    안녕하세요 인터렉티브 아트로 아두이노를 배우게되는 학생입니다. 선생님이 당최 쉽다고 계속 얘기를 하는데 제입장에서는 여어abc를 세로외우고 단어 가리쳐 줬으니까 써봐 라는거같은 느낌이 너무 강했습니다. 결국 결과믈을 제시해야하는데 어디에도 제가 원하는 참고자료가 없습니다 .. 도움좀 부탁드립니다 ㅠㅠ 일단 제가 생각하는것은 릴레이를 이용한 위와같은 방식에서 적외선 센서나 인체감지 센서 를 이용해 사람이 앞에오면 220v 전구가 켜지고 서보 모터가 동작 하는 식입니다. 그치만 선생님은 잘모르겠지만 아두이노 프로미니와 트랜지스터 레귤레이터? 그렇게 주문해서 지금까지 가리쳐줬으니 만들어서 제출하시오 라고 하는데. 하나도 모르겠습니다 인터넷에서 이래저래 찾아보고 게시자 님 의 글을 보고 릴레이로 하는편이 더쉽겠구나 라는 생각을 했습니다. 혹시 위에 글처럼 센서 로인해 온오프 하고 서보모터를 구동시킬수 있을가요?

    2017.06.03 20:51 [ ADDR : EDIT/ DEL : REPLY ]
    • 질문내용은 알겠으나 제가 모든걸 다 알려드릴수는 없습니다. 하나하나 차근차근 하다보면 감이 오실 겁니다

      2017.07.07 15:30 신고 [ ADDR : EDIT/ DEL ]
  8. 김진우

    저거 릴레이와 연결되어있는 선들 어디서 사신거에요? 일반 플러그선은 고무로 피복된 1개의 선이던데..

    2017.06.20 07:21 [ ADDR : EDIT/ DEL : REPLY ]
  9. 간절한학생

    #include <DHT11.h>
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>

    int SHTPin=2;
    int relay=10;
    DHT11 dht11(SHTPin);
    LiquidCrystal_I2C lcd(0x3F, 16, 2);

    float oldTemp;
    float oldHumi;


    void setup() {
    // put your setup code here, to run once:
    lcd.begin();
    lcd.backlight();
    pinMode(relay,OUTPUT);
    }

    void loop()
    {
    int err;
    float temp, humi;
    if((err=dht11.read(humi, temp))==0) {
    if( temp != oldTemp ){
    lcd.setCursor( 0,0 );
    lcd.print("Temp : ");
    lcd.print( temp );
    }
    delay(500);
    if ( humi != oldHumi ){
    lcd.setCursor( 0,1 );
    lcd.print( "Humidity : ");
    lcd.print( humi);
    }
    } else {
    lcd.clear();
    lcd.print("Error NO");
    }
    oldTemp = temp;
    oldHumi = humi;
    delay(1000);

    if(oldTemp>=30)
    {
    digitalWrite(relay,HIGH);
    }else{
    digitalWrite(relay,LOW);
    }
    }


    lcd에 온도와 습도를 출력한후 온도가 30도가 되면 high를 걸리게 해 릴레이를 작동시키는 명령어를 작성했는데 왜 온도에 따라 릴레이가 작동하는게 아니라 계속 작동될까요

    2017.12.18 18:32 [ ADDR : EDIT/ DEL : REPLY ]
  10. ㅇㅇ

    선생님 안녕하세요.
    릴레이의 3개의 단자가 각각 A, B, C라고 하였을 때, B가 공통단자이고 A가 HIGH상태에서 전원이 들어간다면 전선의 중간을 끊어서 각각 A, B에 연결하면 되는건지요?
    또, B, C에 연결한다면 LOW상태에서 전원이 들어가는 건지요?

    2018.05.16 13:10 [ ADDR : EDIT/ DEL : REPLY ]
    • 3개의 단자가 있는 릴레이면 하나는 common 일 것 이구요. 하나는 high 일때 전원이 들어오도록 되고... 다른 하나는 반대로 low 일 때 전원이 들어갑니다. 그러므로 결론은 님이 low 일때 전원이 들어오게 하려면 해당 단자에 연결하면 되고 아니라면 high 쪽에 연결하면 됩니다. 원하는대로 연결하면 됩니다

      2018.05.16 14:10 신고 [ ADDR : EDIT/ DEL ]
  11. 궁금

    저 멀티탭이랑 전선은 어디서 구한거에여?

    2019.05.15 17:19 [ ADDR : EDIT/ DEL : REPLY ]
  12. 우노

    릴레이로 전원 공급을 제어하는데 드라이기에 전원 공급이 되면 저절로 켜지는 건가요?

    2019.05.19 21:28 [ ADDR : EDIT/ DEL : REPLY ]
    • 드라이기는 스위치를 ON 상태로 두었고
      릴레이로 전원만 끊었다. 이었다 하는거죠.

      2019.05.19 21:32 신고 [ ADDR : EDIT/ DEL ]
  13. ㅇㄹ

    작동 원리와 소스 소개 감사합니다.
    덕분에 잘 배워갑니다.

    2019.06.11 11:47 [ ADDR : EDIT/ DEL : REPLY ]
  14. dzemann

    전기 제품 전체를 위와 같은 방법으로 제어하고 싶습니다
    utp cable을 연결하여 내부나 외부에서도 켜고 끄는 방법이 가능하겠습니까?

    smartlink라는 제품을 몇 개 사서 선물도 주고 그랬는데 한 번도 안 쓴 게 빠르게 깜빡거리는 초기화 상태가 계속 진행되면서 이동전화기로 연결이 잘 되던 것이 연결도 안 되네요 그런 뒤로 iot 제품을 믿지 못 하게 되었습니다

    어머니가 쓰시는 온수매트가 하루에 한 번 자동으로 꺼집니다 온도 관리도 하고, 하루 한 번 씩 원격으로 켜고 싶은데, 파크로니아 전용 앱이 더 이상 회사에서 지원되지 않고 nemoahn으로 사용하게 되었는데, 어떤 전화기에서는 smartlink나 nemoahn이라는 앱이 검색도 안 되는 경우가 있었습니다
    그래서 원격 제어를 하는데 확실한 것은 lan 밖에 없다는 생각이 들었습니다

    2019.10.17 11:35 [ ADDR : EDIT/ DEL : REPLY ]
    • 네 아두이노 인터넷 모듈을 사용하면 외부에서도 제어가 가능합니다.

      2019.10.17 11:43 신고 [ ADDR : EDIT/ DEL ]
  15. 손님

    릴레이 제어 자료 찾다가 오게 되었습니다. 감전되어 본 경험을 말씀드리면... 가정용 AC의 한선만 끊고 테스터기로 전압을 찍어보면 그래도 전압이 나옵니다. 릴레이 2개를 써서 2선 모두 끊는 형태로 쓰는 것이 좀 더 안전하다고 조언드립니다.

    2019.11.11 18:11 [ ADDR : EDIT/ DEL : REPLY ]
  16. 무슈릴룰롱

    안녕하세요.
    지난주부터 아두이노 공부 시작한 초보입니다~^^
    정말 완벽한 포스팅 내용입니다~
    아주 쉽게 이해가 갔어요~
    추가적인 문의드릴께 있는데요.
    DC 5V 를 사용하는 LED 디밍컨트롤(On 신호 전달 이후~~ LED 불빛이 최대 밝기에서~~ 중간 밝기로 반복적으로 디밍)을 하고 있습니다. 헥사코드로 01주면 자동을 켜지고 디밍~ 00을 주면 꺼지게 했습니다.
    여기서 포스팅 내용처럼 릴레이를 적용시켜서 DC24V LED 제품(AC220V에 DC 24V어댑터를 사용)을 디밍 컨트롤 하고 싶은데,
    혹시 릴레이 등을 사용해 디밍 컨트롤이 가능한건지 문의드려요.
    날씨가 점점 추워집니다~~
    감기 조심하세요~~

    2019.12.24 14:52 [ ADDR : EDIT/ DEL : REPLY ]
    • 릴레이는 on/off 만 제어 합니다. led dimming 이라면 pwm 으로 될 듯 하네요

      2019.12.24 14:59 신고 [ ADDR : EDIT/ DEL ]
  17. 능화

    감사드립니다! 덕분에 파워 콘센트를 이용 할 아이디어를 얻었습니다! ^^

    제품 메뉴얼 데이터시트 도 감사합니다!!!

    늘 건강하시기 바랍니다!~~~ ^^

    2020.03.04 13:37 [ ADDR : EDIT/ DEL : REPLY ]
  18. 백형렬

    안녕하세요.
    PIR인체센서에 의해 릴레이를 1분동안 on하려 합니다.
    그런데 센서 동작후 55초에 5초 정도에서 알람이 울리거나 led 램프가 동작하게 하려 합니다.
    방법을 알고 싶습니다. 조언 부탁합니다.

    2020.03.07 22:21 [ ADDR : EDIT/ DEL : REPLY ]
    • pir센서에 대해서도 포스팅한 글이 있습니다 제 블로그에서 찾아보셔서 참고하시면 됩니다.

      2020.03.07 22:25 신고 [ ADDR : EDIT/ DEL ]
  19. 이명휘

    위와 같은 방식으로 하나 만들어봤는데 릴레이를 만지니깐 전기가 심하게 통했습니다.
    원래 이런건가요 아니면 제가 잘못만든건가요?
    원래 이런거면 안전상으로 어떻게 해놔야 좋을까요?

    2020.05.15 14:52 [ ADDR : EDIT/ DEL : REPLY ]
  20. 4학년

    대학교 4학년 캡스톤 디자인 때문에 자료 조사하다가 정보 얻고 갑니다^^

    2020.05.23 18:51 [ ADDR : EDIT/ DEL : REPLY ]
  21. 고등학생

    릴레이가 여자되었는데 다시 복귀되는걸 머라하는지 모르겠네요...ㅡㅡ 알려주세요~ㅠㅡㅠ

    2020.07.20 22:22 [ ADDR : EDIT/ DEL : REPLY ]
    • 여자의 반대말은 탈자겠죠. 제 블로그에서 탈자기로 검색해 보세요. 탈자기를 직접 만들수도 있어요

      2020.07.27 16:09 신고 [ ADDR : EDIT/ DEL ]