아두이노 LED 스트립

이 튜토리얼에서는 LED 스트립이 빛을 내도록 제어하기 위해 아두이노 프로그래밍 방법을 배우게 됩니다.

아두이노와 LED 스트립 사이에는 릴레이 또는 MOSFET 모듈을 둘 수 있습니다. 릴레이를 사용하면 스트립은 켜짐 또는 꺼짐만 가능합니다. MOSFET 모듈을 사용하면 스트립을 켜고 끌 수 있고, 아두이노가 PWM으로 원하는 밝기까지 어둡게 조절할 수도 있습니다. MOSFET 모듈은 소리도 전혀 나지 않습니다. 먼저 릴레이 방법을 배우고, 마지막에 MOSFET 방법을 배웁니다.

준비물

1×아두이노 우노 R3 쿠팡 | 아마존
1×USB 2.0 타입 A-to-B 케이블 (USB-A PC용) 쿠팡 | 아마존
1×USB 2.0 타입 C-to-B 케이블 (USB-C PC용) 아마존
1×릴레이 아마존
1×(또는) MOSFET Module (AOD4184, LR7843 or FR120N) 아마존
1×12V 1-color LED 스트립 아마존
1×12V RGB LED 스트립 아마존
1×12V 전원 어댑터 아마존
1×DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(또는) 24V 1-color LED 스트립 아마존
1×(또는) 24V RGB LED 스트립 아마존
1×(또는) 24V Power Adapter 아마존
1×(옵션) 5V Power Adapter for Arduino 아마존
1×(추천) 아두이노 우노용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) Sensors/Servo Expansion Shield for Arduino Uno 쿠팡 | 아마존
1×(추천) 아두이노 우노용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

LED 스트립에 대하여

LED 스트립은 LED 테이프 또는 LED 리본이라고도 하며, 빛을 내는 표면 실장 LED가 붙어 있는 유연한 회로 기판입니다. 이러한 스트립은 활용도가 높아 다양한 용도의 장식 조명에 흔히 사용됩니다. LED 스트립은 다양한 색상으로 제공되며 분위기 조명, 강조 조명 또는 장식 조명 효과를 내는 데 자주 사용됩니다.

LED 스트립은 두 가지 주요 유형이 있습니다:

  • 주소 지정 가능 LED 스트립: 이 유형에서는 스트립의 각 개별 LED의 색상과 밝기를 독립적으로 제어할 수 있습니다. 이 기능은 각 LED에 특정 주소가 할당되어 있기 때문입니다.
  • 주소 지정 불가능 LED 스트립: 대조적으로, 주소 지정 불가능 LED 스트립은 색상과 밝기를 제어할 수 있지만, 이 제어는 스트립의 모든 LED에 동일하게 적용됩니다.

이 튜토리얼은 주소 지정 불가능 LED 스트립에 초점을 맞춥니다. 주소 지정 가능한 LED 스트립에 대해서는 다음 튜토리얼을 참조하세요:

주소 지정 불가능 LED 스트립 핀배열

주소 지정 불가능 LED 스트립은 두 가지 주요 유형이 있습니다:

  • 주소 지정 불가능 단색 LED 스트립: 제조업체가 정한 한 가지 색상만 냅니다.
  • 주소 지정 불가능 RGB LED 스트립: 모든 색상

주소 지정 불가능 단색 LED 스트립은 보통 두 개의 핀을 가지고 있습니다:

  • 12V/24V 핀: 12V 또는 24V DC 전원 공급 장치의 양극에 연결해야 합니다
  • GND 핀: 12V 또는 24V DC 전원 공급 장치의 음극에 연결해야 합니다

주소 지정 불가능 RGB LED 스트립은 보통 4개의 핀을 가지고 있습니다:

  • 12V/24V 핀: 12V 또는 24V DC 전원 공급 장치의 양극에 연결해야 합니다
  • R 핀: 이 핀은 빨간색을 제어하는 데 사용됩니다. 이 핀을 전원 공급 장치의 음극에 연결하면 빨간색이 켜집니다
  • G 핀: 이 핀은 초록색을 제어하는 데 사용됩니다. 이 핀을 전원 공급 장치의 음극에 연결하면 초록색이 켜집니다
  • B 핀: 이 핀은 파란색을 제어하는 데 사용됩니다. 이 핀을 전원 공급 장치의 음극에 연결하면 파란색이 켜집니다
아두이노 non-addressaBLE LED strip 사용법 핀아웃

LED 스트립용 릴레이 vs MOSFET 모듈

선택하기 전에 MOSFET 모듈이 어떻게 작동하는지 알아보면 좋습니다. 아두이노 - MOSFET 모듈 튜토리얼을 읽어 보세요.

릴레이 MOSFET 모듈
조명 제어 스트립 켜기 / 끄기 스트립 켜기 / 끄기 및 밝기 / 디밍(PWM)
소리 스위칭할 때마다 딸깍 소리 없음
속도 느림, 밀리초가 걸림 매우 빠르게 스위칭
수명 접점이 마모됨 움직이는 부분이 없어 수명이 김
조명 종류 AC 또는 DC 조명 DC 스트립만 가능
스트립 전압 릴레이 정격 내의 모든 전압 6V 이상 (12V와 24V 스트립 모두 가능)
절연 예, 코일과 접점이 분리됨 예, 내부에 PC817 포토커플러
용도 AC 조명, 켜기/끄기만 필요할 때 밝기를 조절하고 싶은 12V/24V 스트립, 빠른 효과

12V 또는 24V 주소 지정 불가능 스트립에는 MOSFET 모듈이 아주 좋은 선택입니다. 밝기를 조절하면 조명이 훨씬 보기 좋아지기 때문입니다. RGB 스트립은 세 개의 색상 핀(R, G, B)이 있으므로 릴레이 세 개가 필요한 것과 같이 MOSFET 모듈도 색상마다 하나씩 총 세 개가 필요합니다.

두 가지 유형을 아두이노로 하나씩 제어하는 방법을 배워 보겠습니다.

주소 지정 불가능 단색 LED 스트립 제어 방법

12V LED 스트립이 12V 전원 공급 장치로 구동되면 빛을 발합니다. 12V LED 스트립을 제어하려면 Arduino와 12V LED 스트립 사이에 릴레이를 사용해야 합니다. Arduino는 릴레이를 통해 12V LED 스트립을 제어할 수 있습니다. 릴레이(핀아웃, 작동 방식, 프로그래밍 방법 등)에 대해 모르신다면, 아두이노 - 릴레이에서 릴레이에 대해 배워보세요.

배선도

아두이노와 주소 지정 불가능 단색 LED 스트립 사이의 배선도

아두이노 12v LED strip 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

점퍼 와이어는 빠른 테스트에는 좋지만 최종 제작에는 적합하지 않습니다. 이를 위해 Arduino에 Proto Screw Terminal Block Shield 또는 Screw Shield V2를 장착하세요. Screw Shield V2를 사용하면 다음과 같습니다:

아두이노 12v LED strip 연결 배선도 (screw shield v2)

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

아두이노와 주소 지정 불가능 RGB LED 스트립 사이의 배선도

아두이노 12v rgb LED strip 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

아두이노 코드

주소 지정 불가능 단색 LED 스트립 제어를 위한 아두이노 코드

아래 코드는 LED 스트립을 5초 동안 켰다가 5초 동안 껐다가를 반복합니다.

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-led-strip */ #define LED_STRIP_PIN 3 // 아두이노 핀이 릴레이를 통해 LED 스트립을 제어합니다. void setup() { Serial.begin(9600); // 아두이노 핀을 디지털 출력 핀으로 초기화합니다. pinMode(LED_STRIP_PIN, OUTPUT); } // 루프 함수는 계속해서 반복 실행됩니다. void loop() { Serial.println("The LED strip is turned on"); digitalWrite(LED_STRIP_PIN, HIGH); delay(5000); Serial.println("The LED strip is turned off"); digitalWrite(LED_STRIP_PIN, LOW); delay(5000); }

주소 지정 불가능 RGB LED 스트립 제어를 위한 아두이노 코드

아래 코드는 RGB LED 스트립의 색상(빨강, 초록, 파랑, 노랑, 자홍, 청록 및 흰색)을 반복적으로 제어합니다.

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-led-strip */ #define BLUE_PIN 5 // 아두이노 핀이 릴레이 1을 통해 LED 스트립의 파란색 핀에 연결됩니다 #define RED_PIN 4 // 아두이노 핀이 릴레이 2를 통해 LED 스트립의 빨간색 핀에 연결됩니다 #define GREEN_PIN 3 // 아두이노 핀이 릴레이 3을 통해 LED 스트립의 초록색 핀에 연결됩니다 void setup() { Serial.begin(9600); // 아두이노 핀을 디지털 출력 핀으로 초기화합니다 pinMode(BLUE_PIN, OUTPUT); pinMode(RED_PIN, OUTPUT); pinMode(GREEN_PIN, OUTPUT); } // loop 함수는 계속해서 반복 실행됩니다 void loop() { Serial.println("The LED strip is turned red"); digitalWrite(BLUE_PIN, LOW); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, LOW); delay(2000); Serial.println("The LED strip is turned green"); digitalWrite(BLUE_PIN, LOW); digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, HIGH); delay(2000); Serial.println("The LED strip is turned blue"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, LOW); delay(2000); Serial.println("The LED strip is turned yellow"); digitalWrite(BLUE_PIN, LOW); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, HIGH); delay(2000); Serial.println("The LED strip is turned magenta"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, LOW); delay(2000); Serial.println("The LED strip is turned cyan"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, LOW); digitalWrite(GREEN_PIN, HIGH); delay(2000); Serial.println("The LED strip is turned white"); digitalWrite(BLUE_PIN, HIGH); digitalWrite(RED_PIN, HIGH); digitalWrite(GREEN_PIN, HIGH); delay(2000); }

빠른 단계

  • 아두이노를 USB 케이블을 통해 PC에 연결하세요
  • 아두이노 IDE를 열고 올바른 보드와 포트를 선택하세요
  • 위의 코드를 복사하여 아두이노 IDE로 여세요
  • 아두이노 IDE에서 Upload 버튼을 클릭하여 아두이노에 코드를 업로드하세요
  • LED 스트립의 상태를 확인하세요

코드 설명

코드의 주석 라인에서 한 줄씩 설명을 확인하세요!

참고로, 주소 지정 불가능 LED 스트립의 밝기와 다른 색상을 제어하려면 릴레이 대신 L298N 드라이버를 사용해야 합니다

아두이노 코드 - MOSFET 모듈로 단색 LED 스트립 밝기 조절

여기서는 릴레이 대신 MOSFET 모듈을 사용하여 단색 LED 스트립의 밝기를 바꿉니다. RGB 스트립의 경우 아두이노의 PWM 핀 세 개에 모듈 세 개(R, G, B 각각 하나)를 사용하세요.

아두이노, MOSFET 모듈, 단색 LED 스트립 사이의 배선도

아두이노 LED strip mosfet module 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

  • Arduino 핀 9 → 모듈 PWM
  • Arduino GND → 모듈 GND
  • 12V 전원 어댑터 + → 모듈 + 단자
  • LED 스트립 12V 핀 → 모듈 + 단자 (어댑터 +와 함께)
  • LED 스트립 GND 핀 → 모듈 LOAD 단자
  • 12V 전원 어댑터 − → 모듈 − 단자

LED 스트립에는 코일이 없으므로 플라이백 다이오드가 필요하지 않습니다. 24V 스트립에는 24V 어댑터를 사용하세요. 배선은 그대로입니다.

아두이노 코드

이 코드는 MOSFET 모듈 튜토리얼의 코드입니다. 스트립이 2초 동안 최대 밝기로 빛나고 2초 동안 꺼집니다. 그다음 10%에서 100%까지 단계적으로 밝아졌다가 다시 0%까지 어두워집니다.

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-led-strip */ const int MOSFET_PIN = 9; // Arduino pin connected to the PWM pin of the MOSFET module void setup() { Serial.begin(9600); pinMode(MOSFET_PIN, OUTPUT); analogWrite(MOSFET_PIN, 0); // start with the load OFF } void setLoad(int percent) { int duty = map(percent, 0, 100, 0, 255); // convert 0-100% to 0-255 analogWrite(MOSFET_PIN, duty); Serial.print("Load power: "); Serial.print(percent); Serial.println("%"); } void loop() { // turn the load fully ON, then fully OFF Serial.println("Load: ON"); setLoad(100); delay(2000); Serial.println("Load: OFF"); setLoad(0); delay(2000); // increase the power step by step (PWM) for (int percent = 10; percent <= 100; percent += 10) { setLoad(percent); delay(500); } // decrease the power step by step (PWM) for (int percent = 90; percent >= 0; percent -= 10) { setLoad(percent); delay(500); } delay(1000); }

빠른 단계

  • 위와 같이 스트립과 MOSFET 모듈을 연결하세요.
  • 릴레이 부분의 빠른 단계와 같이 코드를 아두이노에 업로드하세요.
  • 12V 전원 어댑터를 DC 전원 잭에 꽂으세요.
  • LED 스트립을 보세요: 밝았다가, 꺼졌다가, 천천히 밝아졌다가 천천히 어두워집니다.
  • 시리얼 모니터(보드레이트 9600)를 열고 결과를 확인하세요.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Load: ON Load power: 100% Load: OFF Load power: 0% Load power: 10% Load power: 20% Load power: 30% Load power: 40% Load power: 50% Load power: 60% Load power: 70% Load power: 80% Load power: 90% Load power: 100% Load power: 90% Load power: 80% Load power: 70% Load power: 60% Load power: 50% Load power: 40% Load power: 30% Load power: 20% Load power: 10% Load power: 0%
Ln 11, Col 1
Arduino Uno on COM15
2

알아 두세요: MOSFET 모듈은 약 6V 이상의 전원을 사용하는 DC 조명 전용입니다. AC 조명에는 릴레이를 사용하세요.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

댓글