ค้นหาโค้ด

บทช่วยสอน ESP32 6/55 - การใช้โปรเจกต์ RGB LED 2.3 - ชุดเรียนรู้ IoT ESP32 ของ SunFounder

บทช่วยสอน ESP32 6/55 - การใช้โปรเจกต์ RGB LED 2.3 - ชุดเรียนรู้ IoT ESP32 ของ SunFounder

ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีควบคุม LED RGB โดยใช้ไมโครคอนโทรลเลอร์ ESP32 โปรเจกต์นี้จะช่วยให้คุณเข้าใจวิธีเชื่อมต่อ LED RGB และควบคุมสีของมันโดยใช้สัญญาณ PWM (Pulse Width Modulation) เมื่อจบบทช่วยสอนนี้ คุณจะสามารถสร้างสีผสมใดๆ ก็ได้โดยการปรับความเข้มของแต่ละองค์ประกอบสี LED ทักษะนี้เป็นพื้นฐานสำคัญสำหรับการสร้างโปรเจกต์ที่ดึงดูดสายตา

เพื่อให้เข้าใจ LED RGB และความสามารถในการผสมสีได้ดียิ่งขึ้น เราจะสำรวจการเดินสายไฟและโค้ดที่จำเป็นในการควบคุมด้วย ESP32 หากคุณต้องการความช่วยเหลือด้านภาพ อย่าลืมดูวิดีโอที่ (ในวิดีโอที่ 03:20) เพื่อคำอธิบายที่ชัดเจนยิ่งขึ้นเกี่ยวกับการเดินสายไฟและการตั้งค่าโค้ด

อธิบายฮาร์ดแวร์

ส่วนประกอบหลักของโปรเจกต์นี้ประกอบด้วยโมดูล ESP32, LED RGB และตัวต้านทาน ESP32 เป็นไมโครคอนโทรลเลอร์ที่ทรงพลังซึ่งมี Wi-Fi และ Bluetooth ในตัว ทำให้เหมาะสำหรับแอปพลิเคชัน IoT LED RGB ประกอบด้วย LED สามดวงแยกกัน (แดง เขียว และน้ำเงิน) ภายในแพ็คเกจเดียว ทำให้สามารถสร้างสีได้หลากหลายตามการผสมของสีทั้งสาม

ในการตั้งค่าของเรา LED RGB จะถูกเดินสายในรูปแบบ common anode โดยที่ขาแอโนดเชื่อมต่อกับแรงดันไฟฟ้าบวก และขาแคโทดของแต่ละสีจะถูกควบคุมแยกกัน ด้วยวิธีนี้ เราสามารถปรับความสว่างของแต่ละสีได้โดยการส่งสัญญาณ PWM ผ่าน ESP32

รายละเอียดจาก Datasheet

ผู้ผลิตSunFounder
หมายเลขชิ้นส่วนRGB-LED-4PIN
ประเภททั่วไปCommon anode
แรงดันไฟฟ้าไปข้างหน้า (ต่อ LED)2.0 V (แดง), 3.2 V (เขียว), 3.2 V (น้ำเงิน)
กระแสสูงสุด (ต่อ LED)20 mA
อุณหภูมิการทำงาน-25 ถึง 85 °C
แพ็คเกจขา Through-hole 4 ขา

  • ใช้ตัวต้านทาน 220 Ω สำหรับแต่ละสีเพื่อจำกัดกระแสและป้องกันความเสียหาย
  • ตรวจสอบให้แน่ใจว่าขาร่วมเชื่อมต่อกับแรงดันไฟฟ้าที่เหมาะสม (3.3 V สำหรับ ESP32)
  • ตรวจสอบขั้วอีกครั้งเมื่อเชื่อมต่อ LED RGB เพื่อหลีกเลี่ยงความเสียหายจากการกลับขั้ว
  • ใช้ PWM เพื่อควบคุมระดับความสว่าง โดยแนะนำความถี่ประมาณ 5000 Hz
  • ทดสอบแต่ละสีแยกกันก่อนเดินสายไฟทั้งชุด

คำแนะนำการเดินสายไฟ

ในการเดินสายไฟ LED RGB เข้ากับ ESP32 ให้เริ่มต้นโดยระบุขาบน LED RGB ขาที่ยาวที่สุดคือขาแอโนดร่วม ซึ่งจะเชื่อมต่อกับแหล่งจ่าย 3.3 V บน ESP32 ขาอีกสามขาที่เหลือคือสำหรับสีแดง เขียว และน้ำเงิน ในการตั้งค่าของเรา ให้เชื่อมต่อขาสีแดงกับ GPIO 27, ขาสีเขียวกับ GPIO 26 และขาสีน้ำเงินกับ GPIO 25 แต่ละขาเหล่านี้จะมีตัวต้านทาน 220 Ω เชื่อมต่ออยู่ด้วย

เริ่มต้นโดยวาง LED RGB บนเบรดบอร์ด โดยตรวจสอบให้แน่ใจว่าขาแอโนดร่วมอยู่ทางด้านซ้าย เสียบขาสีแดงเข้ากับเบรดบอร์ดและเชื่อมต่อกับปลายด้านหนึ่งของตัวต้านทาน โดยปลายอีกด้านของตัวต้านทานไปที่ GPIO 27 ทำซ้ำสำหรับขาสีเขียวและสีน้ำเงิน โดยเชื่อมต่อขาสีเขียวกับ GPIO 26 และขาสีน้ำเงินกับ GPIO 25 สุดท้าย เชื่อมต่อขาร่วมกับขา 3.3 V บน ESP32 เพื่อให้วงจรสมบูรณ์ ตรวจสอบให้แน่ใจว่าได้เชื่อมต่อกราวด์ของ ESP32 เข้ากับเบรดบอร์ดด้วย

ESP32_RGB_LED_wiring_lesson_06

ตัวอย่างโค้ดและคำอธิบาย

ในโค้ด เราเริ่มต้นด้วยการกำหนดขา LED RGB โดยใช้ค่าคงที่ ตัวอย่างเช่น const int redPin = 27; กำหนดขา GPIO สำหรับ LED สีแดง เรายังตั้งค่าความถี่ PWM และความละเอียดด้วย const int freq = 5000; และ const int resolution = 8; ซึ่งเป็นการตั้งค่าพารามิเตอร์ที่จำเป็นสำหรับการควบคุมความสว่างของแต่ละสี LED

const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;

ถัดไป เรากำหนดช่องสัญญาณ PWM สำหรับแต่ละสีในฟังก์ชัน setup() ฟังก์ชัน ledcAttach() เชื่อมโยงแต่ละขากับช่องสัญญาณ PWM ที่เกี่ยวข้อง การตั้งค่านี้ช่วยให้เราสามารถควบคุมความสว่างของแต่ละสีได้อย่างอิสระ

void setup() {
  ledcAttach(redPin, freq, resolution);
  ledcAttach(greenPin, freq, resolution);
  ledcAttach(bluePin, freq, resolution);
}

ในฟังก์ชัน loop() เราใช้ฟังก์ชัน setColor() เพื่อเปลี่ยนสี LED ค่าที่ส่งให้ฟังก์ชันนี้แสดงถึงความเข้มของสีแดง เขียว และน้ำเงิน ตัวอย่างเช่น การเรียก setColor(255, 0, 0); จะตั้งค่า LED เป็นสีแดง หลังจากการเปลี่ยนสีแต่ละครั้ง เราใช้ delay(1000); เพื่อรอหนึ่งวินาทีก่อนที่จะเปลี่ยนเป็นสีถัดไป

void loop() {
  setColor(255, 0, 0); // แดง
  delay(1000);
  setColor(0, 255, 0); // เขียว
  delay(1000);
}

การสาธิต / สิ่งที่คาดหวัง

หลังจากเดินสายไฟเสร็จและอัปโหลดโค้ดไปยัง ESP32 แล้ว คุณควรเห็น LED RGB เปลี่ยนสีต่างๆ ตามลำดับ ได้แก่ แดง เขียว น้ำเงิน เหลือง ม่วง และฟ้า หาก LED ไม่สว่างอย่างถูกต้อง ให้ตรวจสอบการเดินสายไฟอีกครั้งและตรวจสอบให้แน่ใจว่าขาแอโนดร่วมเชื่อมต่อกับ 3.3 V นอกจากนี้ หากคุณสังเกตเห็นสีที่ไม่คาดคิด ให้ตรวจสอบการเชื่อมต่อตัวต้านทานกับขา LED

ตามที่สาธิตในวิดีโอ (ในวิดีโอที่ 10:45) การปรับค่าในฟังก์ชัน setColor() ช่วยให้คุณสร้างสีต่างๆ ได้ ทดลองกับชุดค่าผสมต่างๆ เพื่อดูว่า LED RGB ตอบสนองอย่างไร

ไทม์สแตมป์ในวิดีโอ

  • 00:00 - แนะนำ RGB LED
  • 03:20 - คำอธิบายการเดินสายไฟ
  • 10:45 - อธิบายโค้ดทีละขั้นตอน
  • 12:30 - สาธิตการผสมสี

ภาพ

ESP32_rgb_pin
ESP32_rgb_pin
ESP32_RGB_led_wires
ESP32_RGB_led_wires
ESP32_RGB_LED_wiring_lesson_06
ESP32_RGB_LED_wiring_lesson_06
806-ESP32 Tutorial 6/55 - Arduino code to control RGB LED with ESP32
ภาษา: C++
// Define RGB LED pins
const int redPin = 27;
const int greenPin = 26;
const int bluePin = 25;

// Define PWM frequency and resolution
const int freq = 5000;
const int resolution = 8;

void setup() {
  // Set up PWM pins
  ledcAttach(redPin, freq, resolution);
  ledcAttach(greenPin, freq, resolution);
  ledcAttach(bluePin, freq, resolution);
}

void loop() {
  setColor(255, 0, 0); // Red
  delay(1000);
  setColor(0, 255, 0); // Green
  delay(1000);
  setColor(0, 0, 255); // Blue
  delay(1000);
  setColor(255, 255, 0); // Yellow
  delay(1000);
  setColor(80, 0, 80); // Purple
  delay(1000);
  setColor(0, 255, 255); // Cyan
  delay(1000);
}

void setColor(int red, int green, int blue) {
  ledcWrite(redPin, red);
  ledcWrite(greenPin, green);
  ledcWrite(bluePin, blue);
}

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

ไฟล์📁

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