ESP8266 - LED - 페이드 | ESP8266 - LED - Fade

이 튜토리얼은 ESP8266을 프로그래밍하여 LED가 서서히 밝아지게 하는 방법을 안내합니다. 우리는 세 가지 예제를 통해 진행하며, 그들 사이의 차이점을 비교할 것입니다:

준비물

1×ESP8266 NodeMCU Amazon
1×Micro USB Cable Amazon
1×LED Amazon
1×220 ohm resistor Amazon
1×Breadboard 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) 5V Power Adapter for ESP8266 Amazon
1×(Optional) Screw Terminal Expansion Board for ESP8266 쿠팡 | Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

LED에 대하여

LED 핀배열

LED는 두 개의 핀을 가지고 있습니다:

  • 음극(-) 핀: GND(0V)에 연결해야 합니다.
  • 양극(+) 핀: LED의 상태를 제어하는 데 사용됩니다.
LED pinout

작동 원리

음극(-)이 GND에 연결되면:

  • GND를 양극(+)에 연결하면 LED가 꺼집니다.
  • VCC를 양극(+)에 연결하면 LED가 켜집니다.
  • 양극(+)에 PWM 신호를 생성하면 PWM 값에 따라 LED의 밝기가 조절됩니다. 이 값은 0에서 255까지의 범위를 가질 수 있으며, 더 높은 값은 LED를 더 밝게 하고 낮은 값은 LED를 어둡게 합니다.
  • PWM 값이 0이면 GND를 연결하는 것과 같으므로, LED는 꺼집니다.
  • PWM 값이 255이면 VCC를 연결하는 것과 같으므로, LED는 완전히 켜집니다.
How LED Works

※ NOTE THAT:

대부분의 LED의 경우, 양극(+)과 VCC 사이에는 저항기를 배치해야 합니다. 이 저항기의 값은 LED의 사양에 의해 결정됩니다.

ESP8266 - LED 페이드

ESP8266의 핀 중 일부는 PWM 신호를 생성하도록 프로그래밍될 수 있습니다. LED의 양극 (+) 핀을 ESP8266 핀에 연결하고, 음극 (-)을 GND에 연결한 다음, ESP8266 핀을 PWM을 생성하도록 프로그래밍하면 LED를 서서히 밝게 하거나 어둡게 할 수 있습니다.

선연결

ESP8266 NodeMCU LED wiring diagram

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

ESP8266의 핀 배치ESP8266 및 다른 구성 요소에 전원을 공급하는 방법에 대해 더 많이 보십시오.

프로그램하는 방법

ESP8266의 핀을 디지털 출력 모드로 설정하려면 pinMode() 함수를 사용하세요. 예를 들어, D5 핀에 대해 이렇게 할 수 있습니다:

pinMode(D5, OUTPUT);

analogWrite() 함수로 PWM 신호를 생성하여 LED의 밝기를 조절합니다.

analogWrite(D5, brightness);

밝기는 0에서 255까지 조절할 수 있습니다.

ESP8266 코드 - 아두이노 IDE에서의 페이드 예제

사용 방법

Arduino IDE에서 ESP8266을 시작하는 방법은 다음과 같은 단계를 따르세요:

  • ESP8266을 처음 사용하는 경우 Arduino IDE에서 ESP8266 환경 설정하는 방법 튜토리얼을 확인해 보세요.
  • 도표에 표시된 대로 구성 요소를 연결하세요.
  • USB 케이블을 사용하여 ESP8266 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Arduino IDE를 엽니다.
  • 올바른 ESP8266 보드(예: NodeMCU 1.0 (ESP-12E Module))와 해당 COM 포트를 선택하세요.
  • USB 케이블로 컴퓨터에 ESP8266을 연결하세요.
  • Arduino IDE를 열고 올바른 보드와 포트를 선택하세요.
  • 아래 코드를 복사하여 Arduino IDE에 붙여넣으세요.
/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-led-fade */ #define LED_PIN D5 // ESP8266 핀이 LED에 연결되어 있습니다. int brightness = 0; // LED의 밝기입니다. int fade_step = 5; // LED를 어둡게 하는 점의 수입니다. // 설정 함수는 리셋이나 전원이 들어왔을 때 한 번 실행됩니다. void setup() { // ESP8266 핀을 디지털 출력 핀으로 구성합니다. pinMode(LED_PIN, OUTPUT); } // 루프 함수는 무한히 반복됩니다. void loop() { // 9번 핀의 밝기를 설정합니다: analogWrite(LED_PIN, brightness); // 다음 반복을 위해 밝기를 변경합니다: brightness = brightness + fade_step; // 페이드의 끝에서 페이딩의 방향을 반대로 합니다: if (brightness <= 0 || brightness >= 255) { fade_step = -fade_step; } // 어둡게 하는 효과를 보기 위해 30밀리초를 기다립니다 delay(30); }

Arduino IDE에서 ESP8266 보드에 코드를 컴파일하고 업로드하려면 Upload 버튼을 클릭하세요.

Arduino IDE Upload Code

LED의 밝기를 확인하세요.

코드 설명

소스 코드의 주석에 포함된 줄별 설명을 확인하세요!

※ NOTE THAT:

위의 예시는 delay() 함수를 사용하여 서서히 밝게 하고 서서히 어둡게 하는 기능을 구현합니다. 그러나 이는 LED가 부드럽게 변하지 않게 하며 다른 코드의 실행을 방해합니다. 다음 섹션에서는 millis() 함수를 활용하여 다른 코드의 실행을 방해하지 않으면서 부드럽게 서서히 밝게 하고 서서히 어둡게 하는 방법을 배울 것입니다.

지연(delay())을 사용하지 않고 일정 기간 동안 LED를 서서히 밝게 하는 방법

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-led-fade */ #define LED_PIN D5 // ESP8266 핀이 LED에 연결되어 있습니다 unsigned long FADE_PEDIOD = 3000; // 페이드 시간은 3초입니다 unsigned long start_time; // 설정 함수는 리셋 또는 전원 켜질 때 한 번 실행됩니다 void setup() { // ESP8266 핀을 디지털 출력 핀으로 구성합니다 pinMode(LED_PIN, OUTPUT); start_time = millis(); } // 루프에서 페이드인하고, 완료 후 다시 시작합니다 void loop() { unsigned long progress = millis() - start_time; if (progress <= FADE_PEDIOD) { long brightness = map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { start_time = millis(); // 다시 페이드를 시작합니다 } }

지연(delay()) 사용 없이 일정 기간 동안 LED를 페이드아웃 하는 방법

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-led-fade */ #define LED_PIN D5 // ESP8266 핀이 LED에 연결됨 unsigned long FADE_PEDIOD = 3000; // 페이드 시간은 3초입니다 unsigned long start_time; // setup 함수는 리셋 또는 전원 켤 때 한 번 실행됩니다. void setup() { // ESP8266 핀을 디지털 출력 핀으로 구성 pinMode(LED_PIN, OUTPUT); start_time = millis(); } // 루프에서 페이드 아웃하고, 완료 후 다시 시작 void loop() { unsigned long progress = millis() - start_time; if (progress <= FADE_PEDIOD) { long brightness = 255 - map(progress, 0, FADE_PEDIOD, 0, 255); analogWrite(LED_PIN, brightness); } else { start_time = millis(); // 다시 페이드 시작 } }

동영상

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

추가 지식

ESP8266에서 analogWrite() 함수는 PWM 신호를 생성할 수 있으며, 이는 LED가 점점 어두워지게 만듭니다. 그러나 고급 지식을 활용하여 사용자 정의 함수를 만들면 저주파 PWM 신호를 생성하여 LED가 희미해지는 대신 깜박거리게 할 수 있습니다.

요약하자면, PWM 신호는 ESP8266에서 서보 모터, DC 모터 제어, 압전 부저로 소리 내기, LED를 희미하게 하거나 깜박거리게 하는 등 다양한 용도로 사용될 수 있습니다.

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!