중급⏱ 예상 시간: 45분📝 4단계

리모컨으로 LED 제어하기

IR 수신 모듈로 TV 리모컨 신호를 읽어 RGB LED의 색상을 리모컨 버튼으로 제어합니다.

🧩 필요한 모듈

Arduino Uno
브레드보드
IR 수신 모듈
점퍼 와이어
저항 (220Ω / 10kΩ)
RGB LED

📖 단계별 설명서

📝

1단계준비물 확인

다음 부품들을 준비해주세요:

  • Arduino Uno 1개
  • 브레드보드 1개
  • 점퍼 와이어 7개
  • IR 수신 모듈 1개
  • RGB LED 1개
  • 220Ω 저항 3개
  • TV 리모컨 (아무거나)

💡 팁: 먼저 리모컨의 신호 코드를 읽는 것이 가장 중요한 단계입니다.

📝

2단계회로 연결하기

  1. IR 수신 모듈의 OUT을 D11에, VCC를 5V, GND를 GND에 연결합니다.
  2. RGB LED의 R(빨강)을 D3에, G(초록)을 D5에, B(파랑)을 D6에 각각 220Ω 저항과 함께 연결합니다.
  3. RGB LED의 공통핀(긴 다리)을 GND에 연결합니다. (공통 캐소드)

📐 회로도

회로도 이미지

/images/projects/ir-remote-led-circuit.png

💡 팁: RGB LED가 공통 애노드인 경우 코드에서 HIGH/LOW를 반대로 바꿔야 합니다.

📝

3단계코드 작성하기

IRremote 라이브러리를 설치하고, 먼저 리모컨 신호를 스캔한 뒤 버튼별 색상을 매핑합니다.

code.ino
#include <IRremote.h>

const int IR_PIN = 11;
const int RED_PIN = 3;
const int GREEN_PIN = 5;
const int BLUE_PIN = 6;

bool ledOn = true;
int currentR = 0, currentG = 0, currentB = 0;

void setup() {
  IrReceiver.begin(IR_PIN);
  pinMode(RED_PIN, OUTPUT);
  pinMode(GREEN_PIN, OUTPUT);
  pinMode(BLUE_PIN, OUTPUT);
  Serial.begin(9600);
  Serial.println("IR RGB LED 제어 시작!");
  Serial.println("리모컨 버튼을 눌러보세요.");
  setColor(255, 255, 255); // 시작: 흰색
}

void setColor(int r, int g, int b) {
  currentR = r; currentG = g; currentB = b;
  if (ledOn) {
    analogWrite(RED_PIN, r);
    analogWrite(GREEN_PIN, g);
    analogWrite(BLUE_PIN, b);
  }
}

void loop() {
  if (IrReceiver.decode()) {
    uint32_t code = IrReceiver.decodedIRData.command;
    Serial.print("수신 코드: 0x");
    Serial.println(code, HEX);
    
    switch (code) {
      case 0x45: setColor(255, 0, 0); Serial.println("빨강"); break;     // 1
      case 0x46: setColor(0, 255, 0); Serial.println("초록"); break;     // 2
      case 0x47: setColor(0, 0, 255); Serial.println("파랑"); break;     // 3
      case 0x44: setColor(255, 255, 0); Serial.println("노랑"); break;   // 4
      case 0x40: setColor(255, 0, 255); Serial.println("보라"); break;   // 5
      case 0x43: setColor(0, 255, 255); Serial.println("시안"); break;   // 6
      case 0x15: setColor(255, 255, 255); Serial.println("흰색"); break; // 0
      case 0x16: // 전원 버튼
        ledOn = !ledOn;
        if (!ledOn) {
          analogWrite(RED_PIN, 0);
          analogWrite(GREEN_PIN, 0);
          analogWrite(BLUE_PIN, 0);
          Serial.println("LED OFF");
        } else {
          setColor(currentR, currentG, currentB);
          Serial.println("LED ON");
        }
        break;
    }
    IrReceiver.resume();
  }
}
+42 줄 더 보기

💡 팁: switch문의 코드(0x45 등)를 시리얼 모니터에서 확인한 자신의 리모컨 코드로 바꾸세요!

📝

4단계업로드 및 테스트

  1. Arduino IDE에서 'IRremote' 라이브러리를 설치합니다.
  2. 코드를 업로드합니다.
  3. 시리얼 모니터를 열고 리모컨 버튼을 눌러 코드를 확인합니다.
  4. 코드를 자신의 리모컨에 맞게 수정 후 다시 업로드합니다.
  5. 리모컨 숫자 버튼으로 색상을 변경해보세요!

💡 팁: 햇빛이나 형광등에서 나오는 적외선이 간섭을 일으킬 수 있으니 실내에서 테스트하세요.

🎉

축하합니다!

"리모컨으로 LED 제어하기" 프로젝트를 완성했습니다!