Search Code

ESP32 튜토리얼 5/55 - LED 페이드, LED 밝기 제어 - ESP32 IoT 학습 키트

ESP32 튜토리얼 5/55 - LED 페이드, LED 밝기 제어 - ESP32 IoT 학습 키트

이 튜토리얼은 ESP32 마이크로컨트롤러, 특히 SunFounder ESP32 IoT 학습 키트(영상 00:04)를 사용하여 LED의 밝기를 제어하는 방법을 보여줍니다. 이 프로젝트는 펄스 폭 변조(PWM)와 광원의 강도 제어 응용에 대해 배우는 초보자에게 이상적입니다. ESP32의 내장 PWM 기능은 부드럽고 정밀한 제어를 가능하게 하여 창의적인 프로젝트에 다양한 가능성을 열어줍니다.

실용적인 응용:

  • 밝기를 조절할 수 있는 분위기 조명 시스템 만들기.
  • 점진적으로 어두워지는 간단한 야간 조명 만들기.
  • 다양한 상태(예: 배터리 부족, 네트워크 연결)를 표시하는 동적 표시등 개발.
  • 다른 센서 및 액추에이터와 통합하여 복잡한 인터랙티브 설치물 만들기.

하드웨어/부품

이 프로젝트는 SunFounder ESP32 스타터 키트(영상 00:12)를 사용하며, ESP32 마이크로컨트롤러, 확장 보드, 다양한 부품, 18650 리튬 배터리가 포함되어 있습니다. 또한 LED와 220옴 저항(영상 04:32)이 필요합니다.

배선 가이드

영상의 배선 다이어그램(영상 01:46 및 04:18)과 타임스탬프 04:40의 자세한 설명을 참조하세요. 배선은 LED의 애노드를 저항에 연결하고, 저항을 ESP32의 GPIO 26 핀에 연결하며, LED의 캐소드를 접지에 연결하는 것을 포함합니다.

LED_with_Resistor


220옴 저항과 직렬로 연결된 LED입니다.  아래는 브레드보드에서의 배선입니다. 

LED_fade_ESP32

코드 설명

Arduino 코드는 펄스 폭 변조(PWM)를 사용하여 LED의 밝기를 제어합니다. 주요 구성 가능한 부분은 다음과 같습니다:

  • ledPin: LED에 연결된 GPIO 핀을 정의합니다(영상 09:41에서 26으로 설정). 다른 핀을 사용하는 경우 변경하세요.
  • fadeAmount: LED 밝기가 변경되는 속도를 제어합니다(영상 10:06). 값이 높을수록 페이딩이 빨라집니다. 코드는 밝기가 최소값(0) 또는 최대값(255)에 도달하면 자동으로 방향을 반전합니다(영상 11:44).

const int ledPin = 26;  // LED용 GPIO 핀
int brightness = 0;
int fadeAmount = 5;

void setup() {
  ledcAttachPin(ledPin, 0); // 핀을 PWM 채널에 연결
}

void loop() {
  ledcWrite(ledPin, brightness); 
  brightness = brightness + fadeAmount;
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  delay(50); 
}

실시간 프로젝트/데모

영상은 페이딩 LED가 작동하는 모습을 보여줍니다(영상 14:51). 강사는 fadeAmount 변수를 조정하여 페이드 속도를 제어하는 방법을 보여줍니다(영상 15:16 및 15:51). ESP32에 코드를 업로드하는 과정도 표시됩니다(영상 14:20).

챕터

  • [00:00] 소개 및 프로젝트 개요
  • [00:12] ESP32 스타터 키트 개요
  • [01:46] 배선 다이어그램 및 설명
  • [02:03] 디지털 신호 및 PWM
  • [04:18] LED 배선
  • [06:33] 코드 설명: 함수
  • [09:11] 코드 설명: LED 페이딩
  • [13:33] 코드 업로드
  • [14:51] 실시간 데모 및 조정

이미지

LED_fade_ESP32
LED_fade_ESP32
LED_with_Resistor
LED_with_Resistor
791-ESP32 Tutorial 5/55 - LED Fade, control brightness of an LED in Arduino
언어: C++
const int ledPin = 26;  // The GPIO pin for the LED
int brightness = 0;
int fadeAmount = 5;

void setup() {
  ledcAttach(ledPin, 5000, 8);  // Attach the LED pin
}

void loop() {
  ledcWrite(ledPin, brightness);  // Write the new brightness value to the PWM pin
  brightness = brightness + fadeAmount;
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  delay(50);  // Wait for 50 milliseconds
}

자원 및 참고자료

아직 자원이 없습니다.

파일📁

파일이 없습니다.