Search Code

บทเรียน ESP32 5/55 - การหรี่แสง LED, ควบคุมความสว่างของ LED - ชุดเรียนรู้ IoT ESP32

บทเรียน ESP32 5/55 - การหรี่แสง LED, ควบคุมความสว่างของ LED - ชุดเรียนรู้ IoT ESP32

บทช่วยสอนนี้สาธิตวิธีการควบคุมความสว่างของ LED โดยใช้ไมโครคอนโทรลเลอร์ ESP32 โดยเฉพาะชุดเรียนรู้ IoT ESP32 ของ SunFounder (ในวิดีโอที่ 00:04) โปรเจกต์นี้เหมาะสำหรับผู้เริ่มต้นที่ต้องการเรียนรู้เกี่ยวกับการมอดูเลตความกว้างพัลส์ (PWM) และการประยุกต์ใช้ในการควบคุมความเข้มของแหล่งกำเนิดแสง ความสามารถ PWM ในตัวของ ESP32 ช่วยให้ควบคุมได้อย่างราบรื่นและแม่นยำ เปิดโอกาสความเป็นไปได้มากมายสำหรับโปรเจกต์สร้างสรรค์

การประยุกต์ใช้งานจริง:

  • สร้างระบบไฟส่องสว่างโดยรอบที่ปรับความสว่างได้
  • สร้างไฟกลางคืนแบบง่ายที่มีการหรี่แสงแบบค่อยเป็นค่อยไป
  • พัฒนาไฟแสดงสถานะแบบไดนามิกสำหรับสถานะต่างๆ (เช่น แบตเตอรี่ต่ำ การเชื่อมต่อเครือข่าย)
  • เชื่อมต่อกับเซนเซอร์และแอคชูเอเตอร์อื่นๆ เพื่อสร้างการติดตั้งแบบอินเทอร์แอคทีฟที่ซับซ้อน

ฮาร์ดแวร์/ส่วนประกอบ

โปรเจกต์นี้ใช้ชุดเริ่มต้น SunFounder ESP32 Starter Kit (ในวิดีโอที่ 00:12) ซึ่งประกอบด้วยไมโครคอนโทรลเลอร์ ESP32 บอร์ดขยาย ส่วนประกอบต่างๆ และแบตเตอรี่ลิเธียม 18650 คุณจะต้องมี LED และตัวต้านทาน 220 โอห์มด้วย (ในวิดีโอที่ 04:32)

คู่มือการเดินสายไฟ

อ้างอิงจากแผนผังการเดินสายไฟในวิดีโอ (ในวิดีโอที่ 01:46 และ 04:18) และคำอธิบายโดยละเอียดที่ไทม์สแตมป์ 04:40 การเดินสายไฟเกี่ยวข้องกับการเชื่อมต่อขาแอโนดของ LED เข้ากับตัวต้านทาน ตัวต้านทานเข้ากับพิน GPIO 26 ของ ESP32 และขาแคโทดของ LED เข้ากับกราวด์

LED_พร้อม_ตัวต้านทาน


LED ต่ออนุกรมกับตัวต้านทาน 220 โอห์ม  ด้านล่างคือการเดินสายไฟบนเบรดบอร์ด 

LED_หรี่แสง_ESP32

คำอธิบายโค้ด

โค้ด Arduino ใช้การมอดูเลตความกว้างพัลส์ (PWM) เพื่อควบคุมความสว่างของ LED ส่วนสำคัญที่สามารถกำหนดค่าได้คือ:

  • ledPin: กำหนดพิน GPIO ที่เชื่อมต่อกับ LED (ในวิดีโอที่ 09:41 ตั้งค่าเป็น 26) เปลี่ยนค่านี้หากคุณใช้พินอื่น
  • fadeAmount: ควบคุมอัตราการเปลี่ยนแปลงความสว่างของ LED (ในวิดีโอที่ 10:06) ค่าที่สูงขึ้นจะทำให้การหรี่แสงเร็วขึ้น โค้ดจะกลับทิศทางโดยอัตโนมัติเมื่อความสว่างถึงค่าต่ำสุด (0) หรือสูงสุด (255) (ในวิดีโอที่ 11:44)

const int ledPin = 26;  // พิน GPIO สำหรับ LED
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
}

แหล่งข้อมูลและเอกสารอ้างอิง

ยังไม่มีทรัพยากรเลย

ไฟล์📁

ไม่มีไฟล์ที่พร้อมใช้งาน