본문 바로가기

아두이노 수경재배

아두이노와 순수 릴레이를 사용한 시간 지연 릴레이 (자동 스위치)

알리에서 주문한 물건을 중국에서 받을 때까지 기다리는 시간은 복불복이다. 어떨 때는 일주일도 안 돼서 오기도 하고, 또 어떨 때는 한 달이 되어도 안 온다. 물론, 금액이 비쌀 때에는 비교적(한 90 %) 주문한 시간에 통보한 시간에 도착한다. 하지만, 가격이 저렴한 릴레이는...

 

그래서 얼마 전에 만능기판에 납땜해서 조립하다 실수로 단선시켜 태워먹은 릴레이를 뜯어서 사용하기로 했다. 엄청난 막일이 예상되지만, 현재 가진 릴레이도 없고, 새로 씨앗을 발아하는데 필요한 육모 시스템을 빨리 만들어 테스트해 보고 싶어서 고생을 감수하기로 했다.

 

한 시간 동안 씨름하다가 겨우 재 사용할 수 있는 부품을 분리해 냈다. 어차피 트랜지스터나 다이오드나 저항은 너무 작아서 만능기판에서 사용하기에는 불가능하고, 커넥터와 릴레이만 분리했다. 이 놈들은 맴집이 좋기 때문에 인두로 오랫동안 지져도 고장 날 넘들은 아니니까...

 

이제 모듈이 없으니 릴레이를 디지털 핀 전력으로만 동작을 시켜야 하는데 5V 릴레이의 데이터 쉬트를 보니,

 

  • Trigger Voltage (Voltage across coil) : 5V DC
  • Trigger Current (Nominal current) : 70mA
  • Maximum AC load current: 10A @ 250/125V AC
  • Maximum DC load current: 10A @ 30/28V DC
  • Compact 5-pin configuration with plastic moulding
  • Operating time: 10msec Release time: 5msec
  • Maximum switching: 300 operating/minute (mechanically)

Trigger Current가 너무 높아서 디지털 핀에서 나오는 전류로는 동작시킬 수 없겠다는 생각이 들었다. 그래서 디지털 핀에서 나오는 전류를 사용해서 스위치를 만들어야 하는데, 마침 PN2222A라는 스위칭 트랜지스터가 부속함에 하나 있다. PN2222A의 데이터 쉬트를 보면 허용전압과 전류가 제법 높기 때문에 높은 저항값은 필요가 없어 보여 부품함에 있는 2K옴 저항을 하나 연결해 줬다. (오래전에 배운 거라 계산하는 법이 생각나지 않아 주먹구구로 했다.)

 

책상에서 찾아낸 부품과 재 활용한 릴레이

릴레이 핀 구성도는 다음과 같다.

 

출처: Component101

이제 아두이노와 프로타토입 쉴드에 회로를 만들고 제대로 동작하는지 멀티미터로 측정해 봤다.

 

간단한 스케치 프로그램을 만들어 PIN을 HIGH로 놓고 측정해 보니 전압은 5.04V, 전류는 80mA정도 나온다. 릴레이에 연결해 보면 릴레이가 동작하는 "딸깍"이는 소리를 들을 수 있었다.

 

이제 PIN을 LOW로 놓고 잘 동작하는지 측정해 보았다. 전류는 거의 없는 것으로 나오는데 전압이 -2.4V가 나온다. 그래서 고장 난 릴레이 모듈을 살펴봤다. 다이오드가 보인다!

 

그냥 릴레이에 연결해 보고 테스트해 봤지만, 영향은 별로 없어 보이는데 얼마 전에 단선시켜서 태워먹은 기억 때문에 그냥 다이오드를 하나 연결하기로 했다. 이제 0V를 가리킨다.

 

이제 10초간 작동하고 10초간 끊어지는 프로그램을 만들고 테스트해 보면 잘 동작한다.

 

#define TR_PIN  2

void setup() {
  // put your setup code here, to run once:
  pinMode(TR_PIN, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(TR_PIN, LOW);
  delay(10000);
  digitalWrite(TR_PIN, HIGH);
  delay(10000);
}

 

다시 만능기판에 넣고 땜질을 해서 만든 육모 제어용 아두이노 보드이다.

PWM 모듈과 ESP01은 아직 설명하지 않았지만 다른 부분은 이미 앞에서 설명한 부분을 하나의 보드에 조립한 모습이다.

 

이제 프로그래머 본연의 모습?으로 돌아가서 프로그램을 완성해야겠다.