아두이노(Arduino)는 컨트롤러(controller)인 만큼 외부기기나 센서의 전원을 on/off 하는 경우가 많이 있습니다. 보통 이런 기능은 스위치(switch)가 하죠 ^^ 전자기기에서 전기신호를 받아서 스위치 역할을 하는 부품을 릴레이(Relay: 전자계전기)라고 합니다. 지난 포스팅에서 초음파 센서를 사용하여 사람이 접근하면 외부기기에 전원을 공급하는 방법에서도 릴레이 모듈을 사용할 수 있습니다. 오늘은 아두이노에서 주로 사용되는 릴레이 모듈을 알아보고 사용하는 방법을 알아보겠습니다.
1. 릴레이(Relay: 전자계전기)
우선 릴레이는 스위치입니다. 아두이노에서 제공하는 전력만으로 구동할 수 없는 외부기기를 컨트롤하고 싶을 때 외부 전원을 릴레이와 연결하여 (설정)조건이 만족할 때 아두이노에서 신호를 보내 컨트롤하기 위해 주로 사용합니다.
저희가 알고 있는 일반적인 스위치는 버튼(button)형이나 텀블러(tumbler)형 같이 손으로 수동으로 on/off 해야 하지만 릴레이는 전기신호로 자동으로 on/off 할 수 있습니다. 보통 릴레이는 '전자석(철심에 코일을 감은 것)'의 원리로 움직이는데 전자석은 전류가 흐르면 자기장이 형성되는 자석입니다. 그래서 릴레이 모듈에 전기신호가 들어오면, 즉 전류가 흐르면 자기가 형성되어 그림과 같이 자석이 열려있는 스위치를 끌어당겨 on 시켜줍니다.
릴레이 종류는 동작 방식이나 허용 전력 용량에 따라 여러 종류가 있습니다. 더 자세한 내용이 궁금하면 아래 '메카솔루션' 링크 참조 부탁드립니다.
2. 릴레이 모듈
위 사진은 1채널 릴레이 모듈이며, 채널 수에 따라 아래 4 채널 모듈과 같이 릴레이 수가 늘어납니다. 모듈에서 파란색 네모 박스가 실제적인 릴레이인데 상단에 JQC3F-5VDC-C (5VDC: 5V 직류 구동)라고 모델명이 있고 아래에 10A 250VAC (교류전압), 10A 30VDC (직류전압) 표시는 최대 입력전압(input voltage)을 나타내고, 하단에 10A 125VAC, 10A, 28VDC는 기본 입력 전압을 나타냅니다. 이에 맞게 허용 전력을 사용하면 됩니다.
제가 구입한건 중국산이라 한자 (常开, 公共端 ,常闭)로 적혀있는데 보통 NC (Normally Close), COM, NO (Normally Open) 이렇게 표시되어 있습니다.
NC (Normally Close, 常闭): 평상시에 닫혀있다는 뜻으로, 릴레이에 전류가 흐르면 Open 되므로 평상시에 전원을 on 상태로 유지하다가 신호를 주어 off 할 때 사용합니다.
NO (Normally Open, 常开): 반대로 평상시에 열려있다는 뜻으로, 릴레이에 전류가 흐르면 Close 되므로 평상시에 전원을 off 상태로 유지하다가 신호를 주어 on 할 때 사용합니다.
COM (Common port, 公共端)는 공통 단자로 전력 또는 외부기기의 한쪽 선을 항상 연결해야 하는 단자입니다.
VCC, GND, IN는 릴레이(전자석)을 구동하기 위한 전력 단자 (VCC, GND)와 신호를 주기 위한 IN (input) 단자입니다.
3. 릴레이 배선
그림과 같이 아두이노의 5V 단자와 릴레이 모듈의 VCC와 연결하고, GND는 GND pin에 연결합니다. 그리고 아두이노 프로그램에서 설정한 디지털 PIN 번호(저는 3번과 연결하겠습니다.)와 IN 단자와 연결합니다. 다음으로 전원을 컨트롤하고 싶은 전자기기와 외부 전력을 연결하고 한쪽 단자 중간에 릴레이(스위치)를 장착한다고 생각하시면 됩니다.
* 주의: 만약 전선작업을 직접 하시면 전원 반드시 뽑아서 안전 주의하세요!!!
4. 아두이노 프로그램
int Relay = 3;
void setup(){
pinMode(Relay,OUTPUT); // 릴레이를 출력으로 설정
}
void loop(){
if(조건)
{
digitalWrite(Relay,HIGH); // 조건 만족하면 1채널 릴레이 ON
delay(500);
}
else
{
digitalWrite(Relay,LOW); // 아니면 1채널 릴레이 OFF
delay(500);
}
}
릴레이를 동작하기 위한 아두이노 스케치 프로그램 코드입니다. 저는 아두이노의 디지털 pin 3번에 릴레이 IN 단자와 연결하였기 때문에 int Relay = 3; 으로 설정하고 pinMode를 OUTPUT으로 설정하였습니다. void loop()에서 if 조건문을 사용해서 조건에 맞으면 릴레이에 HIGH 신호를 줘서 릴레이 스위치를 on 하고, 조건이 맞지 않으면 off 되는 간단한 프로그램 코드입니다. 다양한 센서를 사용해서 if()에 원하는 설정 조건을 직접 작성하시면 됩니다.
아두이노 명령어가 익숙하지 않으신 분은 pinMode 및 if문에 대한 명령어는 아래 링크 참조하시면 됩니다.
여기까지 아두이노(Arduino)에서 자주 사용하는 릴레이(Relay: 전자계전기)에 대해 알아보았습니다. 릴레이는 앞으로 추진하는 IoT 프로젝트에 반드시 필요한 모듈 중 하나라 사용방법을 알아두면 좋습니다. 다음 포스팅에는 릴레이에 외부기기와 전원을 연결하여 동작하는 작은 프로젝트를 하나 진행해 보겠습니다.
오늘도 긴 글 읽어주셔서 감사합니다. 궁금한 부분은 댓글로 언제든지 남겨주세요 ^^
'아두이노 (Arduino) > 아두이노 센서&모듈 (Sensor)' 카테고리의 다른 글
Arduino 아두이노 멀티플렉서(Multiplexer, MUX) 사용방법 (5) | 2020.04.21 |
---|---|
아두이노(Arduino)에서 토양수분센서(soil moisture sensor) 사용 (3) | 2020.03.15 |
Arduino 아두이노 초음파(거리) 센서(ultrasounds sensor) 활용: 사람 인식하는 전자기기 작동 시스템 (2) | 2019.12.14 |
Arduino 아두이노 초음파(거리) 센서(ultrasounds sensor) 사용방법 (2) | 2019.11.26 |
Arduino 아두이노 온도 습도 센서(Temperature and Humidity sensor) 종류 및 사용법 (0) | 2019.11.03 |