아두이노 나노 ESP32 LED 페이드

이 튜토리얼은 다음의 사용 방법에 대한 지침을 제공합니다:

준비물

1×아두이노 나노 ESP32 쿠팡 | 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×LED 쿠팡 | 아마존
1×220Ω Resistor 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(옵션) DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
1×(추천) 아두이노 나노용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) 아두이노 나노용 브레이크아웃 확장 보드 쿠팡 | 아마존
1×(추천) 아두이노 나노 ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

LED에 대하여

LED 핀배열

LED는 두 개의 핀을 포함합니다:

  • 음극(-) 핀: 이 핀을 GND(0V)에 연결하세요.
  • 양극(+) 핀: LED의 상태를 제어하는 데 사용됩니다.
LED 사용법 핀아웃

LED가 어떻게 작동하는가

음극(-)을 GND에 연결한 후:

  • 우리가 GND를 양극(+)에 연결하면, LED는 꺼집니다.
  • 우리가 VCC를 양극(+)에 연결하면, LED는 켜집니다.
  • 양극(+) 핀에 PWM 신호를 생성하면, LED의 밝기는 PWM 듀티 사이클에 비례합니다. PWM 듀티 사이클은 0부터 255까지 변화합니다. PWM 듀티 사이클이 클수록 LED는 더 밝습니다.
    • PWM 값이 0이면, 이것은 GND와 동일합니다 ⇒ LED는 꺼집니다
    • PWM 값이 255이면, 이것은 VCC와 동일합니다 ⇒ LED는 최고 밝기로 켜집니다.
    how LED works

    ※ 주의:

    보통 LED가 타지 않도록 보호하기 위해 저항기가 필요합니다. 저항의 값은 LED의 사양에 따라 달라집니다.

    아두이노 나노 ESP32 - LED 페이드

    ESP32의 디지털 출력 핀은 PWM 신호를 생성하도록 프로그래밍할 수 있습니다. LED의 양극(+) 핀을 Arduino Nano ESP32의 핀에 연결하고, LED의 음극(-)을 GND에 연결한 다음, Arduino Nano ESP32를 프로그래밍하여 PWM의 듀티 사이클을 변경함으로써 LED의 밝기를 조절할 수 있습니다.

LED와 Arduino Nano ESP32 사이의 배선도

아두이노 나노 ESP32 LED 연결 배선도

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

프로그램하는 방법

Arduino Nano ESP32의 핀을 디지털 출력 핀으로 설정하려면 pinMode() 함수를 사용하세요. 예를 들어, 핀 D5의 경우:

pinMode(D5, OUTPUT);

analogWrite() 함수를 사용하여 해당 듀티 사이클로 PWM 신호를 생성함으로써 LED의 밝기를 설정하세요.

analogWrite(D5, brightness);

밝기는 0에서 255까지의 값입니다.

아두이노 나노 ESP32 코드 - 간단한 페이드 예제

사용 방법

아두이노 나노 ESP32를 시작하려면 다음 단계를 따르세요:

Arduino Nano ESP32에 익숙하지 않다면, 아두이노 나노 ESP32 - 소프트웨어 설치에 대한 튜토리얼을 참고하십시오.

제공된 다이어그램에 따라 구성 요소를 연결하십시오.

USB 케이블을 사용하여 Arduino Nano ESP32 보드를 컴퓨터에 연결하십시오.

컴퓨터에서 Arduino IDE를 실행하십시오.

Arduino Nano ESP32 보드와 해당 COM 포트를 선택하십시오.

아래 코드를 복사하여 Arduino IDE에 붙여넣으십시오.

/* * 이 아두이노 나노 esp32 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 나노 esp32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-led-fade */ #define LED_PIN D5 // 아두이노 나노 ESP32 핀 D5가 LED에 연결됨 int brightness = 0; // LED의 밝기 int fade_amount = 5; // LED를 얼마나 페이드시킬 지점의 수 // setup 함수는 리셋이나 전원이 켜질 때 한 번 실행됩니다. void setup() { // 아두이노 나노 ESP32 핀을 출력으로 설정 pinMode(LED_PIN, OUTPUT); } // loop 함수는 무한 반복됩니다. void loop() { // 밝기 설정 analogWrite(LED_PIN, brightness); // 다음 루프를 위한 밝기 변경 brightness = brightness + fade_amount; // 페이드의 끝에서 페이딩 방향 반전 if (brightness <= 0 || brightness >= 255) { fade_amount = -fade_amount; } // 빛바램 효과를 보기 위해 30밀리초 동안 기다림 delay(30); }

아두이노 IDE에서 Upload 버튼을 클릭하여 코드를 컴파일하고 Arduino Nano ESP32 보드에 업로드하세요.

아두이노 코딩

LED의 밝기를 보세요.

코드 줄마다 설명하기

위의 Arduino Nano ESP32 코드는 줄마다 설명이 포함되어 있습니다. 코드의 주석을 읽어주세요!

※ 주의:

위 예제는 delay() 함수를 사용하여 서서히 밝아지게 하고 서서히 어두워지게 합니다. delay() 함수는 LED가 부드럽게 변하지 않게 하고 다른 코드를 차단합니다. 다음 파트에서는 다른 코드를 차단하지 않으면서 부드럽게 밝아지고 어두워지게 하는 방법을 millis() 함수를 사용하여 배우게 될 것입니다.

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

/* * 이 아두이노 나노 esp32 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 나노 esp32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-led-fade */ #define LED_PIN D5 // Arduino Nano ESP32의 D5핀이 LED에 연결됨 #define FADE_PEDIOD 3000 // 페이드 시간은 3초임 unsigned long start_time; // 설정 루틴은 리셋을 누를 때 한 번 실행됩니다 void setup() { pinMode(LED_PIN, OUTPUT); // Arduino Nano ESP32 핀을 출력으로 구성 start_time = millis(); } // 루프에서 fade-in을 실행하고, 완료 후 다시 시작 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를 서서히 꺼는 방법

/* * 이 아두이노 나노 esp32 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 나노 esp32 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-nano-esp32/arduino-nano-esp32-led-fade */ #define LED_PIN D5 // 아두이노 나노 ESP32 핀 D5가 LED에 연결됨 #define FADE_PEDIOD 3000 // 페이드 시간은 3초입니다 unsigned long start_time; // setup 루틴은 리셋 버튼을 눌렀을 때 한 번 실행됩니다 void setup() { pinMode(LED_PIN, OUTPUT); // 아두이노 나노 ESP32 핀을 출력으로 구성합니다 start_time = millis(); } // 루프에서 fade-out하고 완료된 후 다시 시작합니다 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 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.