아두이노

아두이노 + 타이머 + 릴레이 제어 – 시간 설정으로 전원 자동 ON/OFF 구현하기

게임교수 2025. 4. 19. 17:57
반응형

아두이노 + 타이머 + 릴레이 제어 – 시간 설정으로 전원 자동 ON/OFF 구현하기

정해진 시간에 전기를 켜거나 끄는 시스템, 어렵지 않을까요?
이번 글에서는 아두이노와 릴레이 모듈을 이용해 시간 설정 기반 자동 ON/OFF 제어 시스템을 만들어보겠습니다.
예를 들어, 1분에 한 번씩 전원을 켰다 끄거나, 사용자가 설정한 시간만큼 릴레이를 동작시키는 방식입니다.
스마트 팜, 자동 조명, 펌프 제어, 환풍기 자동화 등 다양한 분야에 활용할 수 있습니다.

📦 준비물

  • 아두이노 UNO 또는 나노
  • 5V 릴레이 모듈 (1채널 또는 다채널)
  • LED 또는 220V 부하 장치 (테스트용은 LED 추천)
  • 브레드보드, 점퍼 와이어

🔌 릴레이 모듈 작동 원리

릴레이는 아두이노의 디지털 출력 신호로 고전압 전원을 On/Off할 수 있게 해주는 스위치입니다.
디지털 핀을 HIGH 또는 LOW로 전환함으로써 릴레이를 작동시킬 수 있습니다.

⏱️ 타이머 제어 방식

아두이노에서 시간 제어는 2가지 방식으로 구현할 수 있습니다.

  1. delay() 함수: 간단하지만 블로킹 방식
  2. millis() 함수: 논블로킹 방식, 실시간 처리에 적합

💻 기본 코드 예제 (millis 기반, 5초 ON → 5초 OFF 반복)

const int relayPin = 7;
unsigned long previousMillis = 0;
const long interval = 5000; // 5초

bool relayState = false;

void setup() {
  pinMode(relayPin, OUTPUT);
  digitalWrite(relayPin, LOW); // 릴레이 꺼짐 상태
}

void loop() {
  unsigned long currentMillis = millis();

  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;
    relayState = !relayState; // 상태 반전
    digitalWrite(relayPin, relayState ? HIGH : LOW);
  }
}

📘 예제 설명

  • millis()는 프로그램 시작 이후 경과한 시간(ms)을 반환합니다
  • 5초마다 릴레이 상태를 반전시켜 ON/OFF 반복 제어
  • delay() 방식보다 정확하고 다른 처리와 동시에 사용 가능

🧠 실전 활용 팁

  • 스마트 조명: 밤 10시 자동 소등
  • 펌프 제어: 1시간마다 10분간 작동
  • 팬 제어: 일정 온도 이상 시 타이머 작동
  • 센서와 연동: PIR + 릴레이 + 타이머 조합

✅ 마무리

릴레이와 타이머를 조합하면 매우 간단한 방식으로 자동 전원 제어 시스템을 만들 수 있습니다.
지금까지의 예제를 바탕으로 스마트 홈, 자동화 기기 등 다양한 분야에 적용해보세요.
향후에는 RTC 모듈(실시간 시계)과 결합하여 더 정교한 시간 기반 제어도 구현할 수 있습니다.


Arduino 자동화 시리즈 – 릴레이 타이머 제어편 | 작성자: YT

반응형