릴레이 모듈을 사용하여 LED를 깜박이기

[컴퓨터월드] 아두이노는 이탈리어로 ‘친한 친구’라는 뜻을 가진 대표적인 오픈소스 하드웨어다. 딱딱하고 접근하기 힘들었던 임베디드 분야를 누구나 쉽게 접근할 수 있도록 만든 미니 기판이라 할 수 있다. 이번 강좌에 사용하는 아두이노 오렌지보드는 한국형 아두이노라 할 수 있다.

아두이노의 보급은 오픈소스 하드웨어의 확산을 불러일으켰고 메이커 문화의 확산에도 큰 기여를 했다. 최근에는 인텔, 마이크로소프트 등 대형 기업들도 이런 오픈소스 하드웨어시장에 뛰어들기 시작했다. 그 만큼 오픈소스 하드웨어 시장의 잠재력이 커졌다는 얘기다.

릴레이(Relay)란 무엇인가?
전류가 흐르면 주변에 자기장이 형성된다. 코일을 원통에 감게 되면 자기장이 중첩되면서, 코일의 중앙에 한 방향으로 작용하는 자기장이 형성된다. 코일 안에 철심을 넣으면 자기장이 강해지면서 자석과 같은 힘이 발생하게 된다.

 

이와 같은 원리를 이용하여 만든 스위치를 릴레이라고 한다. 다음 그림과 같이 전류가 흐르면 자력이 발생하며 스위치를 잡아당겨 닫힌 상태로 된다. 전류가 흐르지 않을 때에는 자력이 사라지기 때문에 스위치를 잡아당기는 힘이 사라져서 열린 상태로 바뀌게 된다.

릴레이는 전기적으로 독립된 회로를 연동시켜 제어할 수 있다는 장점이 있다. 따라서 적은 전력으로 큰 전력을 제어하거나, 하나의 신호로 다수의 전원을 제어하는 등의 목적으로 사용되고 있다.

그러나, 릴레이는 기계적으로 접점을 닫거나 열기 때문에 고속 동작이 어려우며, 소음도 발생시키는 단점이 있어, 최근에는 반도체를 활용한 릴레이가 많이 사용되고 있다.
 

 


릴레이 사용방법
이 예제에서 사용된 5핀 릴레이구조는 아래와 같다. 코일 제어선은 1번과 2번으로 연결되어 있으며, 4번과 5번 두개의 접점이 있다. 코일에 전류가 흐르면 3번과 4번이 연결되며, 전류가 흐르지 않으면 3번과 5번이 연결된다. 실제로는 전자석(코일)의 위치가 위에 있어, 위아래로 동작한다.
 

 

필요한 부품 목록
오렌지보드로 LED를 제어해보기 위한 준비물은 아래와 같다.

 

※ 릴레이의 경우에는 래치 릴레이와 일반 릴레이가 있는데 일반 릴레이는 전류가 흘러야 그 상태를 유지하고 흐르지 않을 경우 원상태로 되돌아가는 반면에 래치 릴레이는 순간적으로 조금만 전류를 흘러줘도 그 상태를 유지하는 릴레이를 말한다.
본 회로에서는 일반 릴레이를 사용하여 전류를 흐르지 않게 만들 경우 릴레이는 다시 원래의 상태로 돌아간다.


하드웨어 연결하기

릴레이와 트랜지스터, LED는 오렌지보드 핀 번호 연결 그림과 같이 연결한다.

 


1. 오렌지보드의 5V핀을 브레드 보드의 +버스에 연결한다.
2. 오렌지보드의 GND핀을 브레드 보드의 -버스에 연결한다.
3. 릴레이를 그림과 같이 핀의 개수를 확인 후, 양쪽 IC영역에 걸치도록 세로로 꽂는다.
4. 트랜지스터의 평평한 면이 오렌지보드를 향하게 하여 세로로 꽂는다.
5. 다이오드의 띠가 오렌지보드를 향하게 하여 IC영역에 걸치게 가로로 꽂는다.
6. 빨간색 LED와 녹색 LED를 애노드(긴 단자)가 아래쪽으로 향하게 하여 꽂는다.
7. 각각 LED의 애노드에 330Ω 저항을 연결한다.

 

8. 트랜지스터의 상단 단자 (Emitter)를 -버스에 연결한다.
9. 트랜지스터의 가운데 단자 (Base)를 오렌지보드 5번 핀에 연결한다.
10. 트랜지스터의 하단 단자 (Collector)를 다이오드 애노드에 연결한다.
11. 릴레이의 왼쪽 상단 핀을 다이오드의 캐소드에 연결한다.
12. 릴레이의 오른쪽 상단 핀을 트랜지스터 하단 단자에 연결한다.
13. 릴레이의 왼쪽 상단 핀을 +버스에 연결한다.
14. 릴레이의 왼쪽 가운데 핀을 +버스에 연결한다.
15. 릴레이의 오른쪽 하단 핀을 빨간색 LED의 애노드에 연결한다.
16. 릴레이의 왼쪽 하단 핀을 녹색 LED의 애노드에 연결한다.
17. 각각 LED의 캐소드(짧은)를 -버스에 연결한다.

 


소스코드

/*
제목 : 릴레이로 LED 깜빡이기
내용 : 릴레이가 연결되면 초록색 LED를 켜고, 끊겼을 때에는 빨간색 LED가 켜지도록 하여, 두 개의 LED가 번갈아가며 깜빡이도록 만들어 봅니다.
*/
// 릴레이를 5번 핀으로 설정합니다.
int relay = 5;
// 실행시 가장 먼저 호출되는 함수이며, 최초 1회만 실행됩니다.
// 변수를 선언하거나 초기화를 위한 코드를 포함합니다.
void setup() {
// 릴레이가 연결된 핀을 OUTPUT으로 설정합니다.
pinMode(relay, OUTPUT);
}// setup() 함수가 호출된 이후, loop() 함수가 호출되며,
// 블록 안의 코드를 무한히 반복 실행됩니다.
void loop() {
// 릴레이가 연결된 핀의 로직레벨을 HIGH (5V)로 설정하여, 릴레이의 접점이 붙도록 합니다.
digitalWrite(relay, HIGH);
// 0.5초 동안 대기합니다.
delay(500);
// LED가 연결된 핀의 로직레벨을 LOW (0V)로 설정하여, 릴레이의 접점이 떨어지도록 합니다.
digitalWrite(relay, LOW);
// 0.5초 동안 대기합니다.
delay(500);
}

소스 코드의 경우 상당히 단순한 구조로 돼 있다.

5번 핀에 HIGH를 주게 되면 NPN 트랜지스터의 Base에 전류가 흘러 들어가고 릴레이 내부의 코일의 -극은 GND와 연결된다. 코일에 전류가 흘러 자기장이 생기면 스위치를 잡아 당기게 되고 어느 한 방향의 접점과 붙어 연결되게 된다. 그렇게 되면 LED 2개 중 어느 한 쪽의 LED(위 회로도 기준은 초록색 LED가 켜진다)는 전류가 흘러 켜지게 된다.

반대로 5번 핀에 LOW를 주면 NPN트랜지스터의 Base쪽에는 전류가 흐르지 않아 트랜지스터에서 전류가 차단된다. 그렇기 때문에 코일에는 전류가 흐르지 않게 되고 스위치는 다시 원 상태로 돌아가 다른 쪽의 접점과 붙어 다른 LED(빨간색 LED)가 켜지게 된다.


마치며

릴레이는 모듈 자체가 가격이 높지 않은데도 불구하고 회로를 제어할 수 있고 회로 개폐를 통해 회로를 보호할 수 있는 등 많은 기능을 가지고 있기 때문에 많은 전자회로에서 쓰이고 있다. 미리 설정해준 전류로 큰 전류의 흐름을 제어할 수 있기 때문에 다양한 전자기기에서 많이 쓰이고 있다. 특히 차량의 경우 선루프나 사이드미러 등 여러 스위치를 제어할 때 릴레이가 많이 쓰이며 자동 제어 시스템을 구축할 때 빠질 수 없는 중요한 기기이다.

프로젝트에 대한 더 자세한 내용을 알고 싶다면 Kocoafab.cc를 방문해 보길 바란다.
 

 

 코코아팹은 한국 메이커 문화를 만들어가는 온라인 메이커포털이다. 오픈소스 하드웨어 오렌지보드의 생산과 활용법 공개 등 많은 활동을 진행하고 있다.

 

저작권자 © 아이티데일리 무단전재 및 재배포 금지