이번 글의 주인공인 4ch 릴레이보드 (OCS-028C) DC 5V모델과,

아두이노 UNO, DC 12V 모터, 버튼, DC 12V 파워입니다.

이번 글에서는 아두이노 UNO에 버튼을 달아서, 버튼 입력을 받으면 버튼 상태를 시리얼 모니터에 출력을 하고,

동시에 4ch 릴레이보드 1번째 릴레이를 작동 시킬 것입니다.

또한 버튼에서 손을 떼면 릴레이를 작동을 멈출 것입니다.

선을 연결하는 과정이 조금 복잡해 보일수는 있지만, 잘 설명할 수 있도록 노력해보겠습니다.

먼저 4ch 릴레이보드의 결선 모습입니다.

아두이노로부터 작동전원을 공급 받을 것이기에 DC 5V 모델을 사용하였습니다.

아두이노의 5V와 GND를 4ch 릴레이보드의 DC+/- 에 연결 하고, 아두이노의 8pin을 CH1에 연결해줍니다.

아두이노에서 버튼 입력을 받으면, 이 CH1에 아두이노가 HIGH출력을 내줄 것입니다.

DC 12V 파워로 부터 나오는 출력 전원을 COM1~2 단자에 연결해주고,

릴레이 작동시 흘러갈, COM1~2에서 들어온 12V 파워의 전기를 위해 NO1단자에서 선을 빼줍니다. 

아두이노가 버튼입력을 받아야 하므로 버튼도 설치해주기 위해, 브레드보드를 준비해줍니다.

버튼 결선 모습입니다.

10KΩ 저항은 5V 전원에 맞춰 계산한 저항이나, 이 글에서는 3.3V 전원으로 버튼 입력을 받을 것입니다.

그 이유는 아두이노 UNO에 5V 전원출력 단자가 1개뿐이며, 이 단자는 4ch 릴레이보드 전원공급에 사용되어질 것이기 때문입니다.

아두이노 UNO에 3.3V 전원출력 단자가 있기에 여기서 전원을 공급해줍니다.

3.3V전원과 GND를 빼주고 그 사이에 저항을 달고, 버튼을 달아줍니다.

버튼 입력을 받을 핀도 연결하여 아두이노 UNO 9pin으로 빼줍니다.

아두이노 결선모습입니다.

5V, 3.3V, GND 단자를 전부 사용하며,

8pin은 4ch 릴레이보드 CH1 단자에,

9pin은 버튼입력을 위해 사용되어집니다.

전체적으로 구성된 모습입니다.

이런 구조로 짜여지게 됩니다.

이제 아두이노 UNO를 PC에 연결해준 후 프로그래밍을 해줍니다.

아두이노 프로그램을 열어준후 지정된 포트 COM6를 연결해주고, 보드도 “Arduino Uno”로 선택해줍니다.

전체적인 프로그램 모습입니다.

8pin은 relay_1으로 이름 지정을, 9pin은 button_1으로 이름 지정을 해준 뒤,

릴레이는 OUTPUT 버튼은 INPUT_PULLUP으로 핀지정을 해줍니다.

버튼 상태는 loop() 내에서 계속 읽을 것이기에 읽은 상태를 저장할 button_state를 byte형태로 만들어줍니다.

이 글에서는 아두이노가 버튼이 눌린 상태를 읽을 때 1(HIGH)로 읽고, 버튼이 떼어진 상태를 읽을 때 0(LOW)으로 읽습니다.

 

특이한점으로 pre_button_state를 만들어 준 이유는, 버튼이 눌린 순간과 떼어지는 순간을 한번씩만 확인하기 위해서입니다.

&&문을 if()의 조건속에 넣어 이전 버튼상태와 현재 버튼상태 두개를 가지고서,

눌리는 순간과 떼어지는 순간을 한번씩만 캐치하기 위해pre_button_state까지 만들어 준 것입니다.

또한 시리얼 모니터로 버튼의 입력과 떼어진 상황을 확인하기 위해 Serial.begin(9600); 으로 시리얼 통신을

사용할 것을 setup()에서 설정해주었습니다.

 

버튼이 눌리는 순간에는 시리얼모니터에서 보이게끔 Serial.prinln()으로 “ON”이라는 것을 보내고, 동시에 4ch 릴레이 CH1핀에 HIGH 출력을 내줍니다.

버튼이 떼어진 순간에는 Serial.prinln()으로 “OFF”라는 것을 보내고, 동시에 4ch 릴레이 CH1핀에 LOW 출력을 내줍니다.

프로그래밍 아래부분입니다.

이제 아두이노 보드로 프로그래밍 한것을 업로딩해주고,

아두이노 프로그램의 시리얼모니터를 켜줍니다.

이제 버튼을 눌러줍니다.

보면 4ch 릴레이보드의 첫번째 릴레이의 녹색 LED가 켜지며, 모터가 작동되는 것을 볼 수 있습니다. 

버튼을 떼지 않고 누르고 있으면서 캡처한 화면입니다.

보면 시리얼모니터에 ON이 출력 되어진 것을 볼 수 있습니다.

이제 버튼에서 손을 떼줍니다.

누르고 있는것처럼 사진상으로는 손가락이 저곳에 있으나, 버튼을 뗀 상태에서 찍은 것입니다.

보면 첫번째 릴레이의 녹색 LED가 꺼지고, 모터의 작동도 중지되었습니다.

시리얼 모니터에서도, 버튼에서 손을 떼자 OFF가 출력 되어진 것을 볼 수 있습니다.

이처럼 이번에는 아두이노 UNO에 연결되어진 버튼입력을 통해, 아두이노 UNO에 연결된 4ch 릴레이보드를 작동시켜보았습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다