Arduino

아두이노 신호등 LED 만들기

빨강, 노랑, 초록 LED를 순서대로 켜며 시간 제어를 연습합니다.

아두이노 신호등 LED 만들기 회로 커버 이미지

빨강, 노랑, 초록 LED를 순서대로 켜며 시간 제어를 연습합니다. 이 글은 Arduino UNO 기준으로 부품을 연결하고, 왜 그 핀을 쓰는지, 어떤 순서로 테스트하면 좋은지까지 함께 정리합니다.

초보 프로젝트에서 가장 흔한 실수는 코드를 먼저 올리고 회로를 나중에 보는 것입니다. 반대로 전원, GND, 신호 핀을 먼저 확인하면 같은 예제를 다른 센서나 출력 장치로 바꿔도 훨씬 덜 헤맵니다.

아두이노 신호등 LED 만들기 회로도

프로젝트 개요

  • 보드: Arduino UNO
  • 주제: Traffic LEDs
  • 사용 핀: D10, D11, D12
  • 전원 기준: 5V
  • 준비 부품: LED 3개, 저항 220Ω 3개

이 예제의 목표는 Traffic LEDs를 단순히 연결하는 데서 끝나지 않습니다. 입력과 출력의 흐름을 나누어 보고, 센서 값이 코드에서 어떤 판단으로 바뀌는지 이해하는 것이 핵심입니다. 작은 회로라도 이 구조가 익숙해지면 자동문, 알림기, 데이터 로거, 무선 센서 같은 더 큰 프로젝트로 자연스럽게 확장할 수 있습니다.

회로 연결 기준

먼저 Arduino UNO의 GND와 부품의 GND를 공통으로 연결합니다. 그다음 5V 전원 핀을 확인하고, 마지막에 D10, D11, D12 신호선을 연결합니다. GND가 빠지면 신호가 흔들리거나 값이 계속 이상하게 보일 수 있습니다.

Arduino UNO는 5V 계열 보드입니다. 센서 모듈이 3.3V 전용인지 확인하고, LED와 부저처럼 전류가 흐르는 부품에는 저항이나 드라이버를 넣어야 합니다.

배선할 때는 색을 정해두면 좋습니다. 빨간색은 전원, 검정색은 GND, 노란색이나 파란색은 신호선으로 정하면 나중에 사진만 봐도 어느 선이 무엇인지 구분하기 쉽습니다. 브레드보드 전원 레일을 쓸 때는 좌우 레일이 끊겨 있는 제품도 있으니 멀티미터나 간단한 LED 테스트로 확인하세요.

조립 순서

  1. 보드를 USB에 연결하지 않은 상태에서 부품 위치를 먼저 잡습니다.
  2. GND를 부품 GND와 연결하고, 전원선이 맞는지 다시 봅니다.
  3. D10, D11, D12 신호선을 연결합니다.
  4. 전류가 큰 부품이면 외부 전원과 드라이버 모듈을 먼저 준비합니다.
  5. USB 전원을 연결한 뒤 가장 단순한 테스트 코드로 값이 바뀌는지 확인합니다.
  6. 정상 동작을 확인한 뒤에만 본문 프로젝트 코드로 확장합니다.

이 순서를 지키면 문제가 생겼을 때 원인을 좁히기 쉽습니다. 예를 들어 LED가 켜지지 않는다면 극성, 저항, 핀 번호, GND 순서로 보면 되고, 센서 값이 이상하다면 전원 전압, 풀업 저항, 라이브러리, 샘플링 간격을 차례로 보면 됩니다.

코드 흐름

setup()에서 pinMode를 정하고, loop()에서 센서 값을 읽은 뒤 digitalWrite, analogWrite, Servo, Wire 같은 라이브러리로 출력합니다.

코드는 처음부터 길게 쓰지 않는 것이 좋습니다. 첫 단계에서는 핀 하나를 켜거나 센서 값 하나를 출력하는 수준으로 시작하세요. 그 값이 확인되면 조건문을 넣고, 마지막에 표시 장치나 알림 장치를 붙이는 방식이 안정적입니다.

1. 핀과 라이브러리를 준비한다
2. 센서 또는 입력 값을 읽는다
3. 기준값과 비교한다
4. LED, 부저, 모터, 화면 같은 출력 장치를 바꾼다
5. 시리얼 출력이나 로그로 동작을 확인한다

Arduino는 코드를 업로드하면 보드 안에서 계속 반복 실행됩니다. 시리얼 모니터를 열어 값이 어떻게 바뀌는지 먼저 확인하면 기준값을 잡기 쉽습니다.

자주 생기는 문제

  • 값이 전혀 바뀌지 않으면 GND 공통 연결과 핀 번호를 먼저 확인합니다.
  • LED나 부저가 너무 약하면 저항값, 전원 전압, 부품 극성을 확인합니다.
  • 모터나 릴레이가 불안정하면 보드 전원에서 직접 공급하지 말고 외부 전원과 드라이버를 사용합니다.
  • 센서 값이 흔들리면 여러 번 읽어 평균을 내거나 임계값에 여유를 둡니다.
  • I2C나 SPI 장치가 보이지 않으면 주소, 배선, 전원 전압, 라이브러리를 차례로 확인합니다.

문제가 생겼을 때는 회로 전체를 다시 뜯기보다 한 단계씩 줄이는 편이 빠릅니다. 출력 장치만 따로 테스트하고, 센서만 따로 테스트한 뒤 다시 합치면 어느 부분에서 실패하는지 보입니다.

확장 아이디어

  • 값을 LED 색상이나 부저 패턴으로 바꾸기
  • LCD, OLED, 웹 페이지, LED 매트릭스에 상태 표시하기
  • 기준값을 버튼이나 가변저항으로 조절하기
  • 여러 센서 값을 합쳐 자동화 조건 만들기
  • CSV, SD카드, MQTT, 라디오 통신으로 기록하거나 보내기

이 프로젝트는 단독 예제로도 쓸 수 있지만, 다른 프로젝트의 일부로 넣었을 때 더 재미있습니다. 예를 들어 Traffic LEDs를 알림 장치와 묶으면 생활 자동화가 되고, 디스플레이와 묶으면 관찰 장치가 됩니다.

안전 메모

USB 전원만으로 작은 LED나 센서를 실험하는 것은 비교적 안전하지만, 모터, 펌프, 릴레이, 긴 LED 스트립은 전류가 훨씬 많이 필요합니다. 이런 부품은 보드 핀에 직접 연결하지 말고 드라이버 모듈과 별도 전원을 사용하세요.

특히 Raspberry Pi GPIO에는 5V를 직접 넣지 마세요. micro:bit도 큰 부하를 직접 구동하기보다 확장 보드나 드라이버를 사용하는 편이 안전합니다. Arduino도 핀당 전류 한계를 넘기면 보드가 손상될 수 있으므로 출력 부품에는 저항과 드라이버를 먼저 생각해야 합니다.

정리

아두이노 신호등 LED 만들기 프로젝트는 Arduino에서 Traffic LEDs를 다루는 기본 예제입니다. 전원, GND, 신호 핀을 분리해서 생각하고 작은 테스트부터 성공시키면, 같은 구조를 다른 센서와 출력 장치에도 반복해서 적용할 수 있습니다.