ชื่อโปรเจกต์: Control RGB LED using Bluetooth
สวัสดีทุกคน,
โปรเจกต์นี้จะแสดงให้เห็นถึงวิธีควบคุม RGB LED โดยใช้ Bluetooth ลองดูวิดีโอนี้:
🛠️ เจาะลึก / วิเคราะห์ทางเทคนิค
ทำไมต้องซื้อไฟตกแต่งห้องอัจฉริยะราคา $80 ในเมื่อคุณสามารถสร้างแบบกำหนดเองได้ในราคาเพียง $15? โปรเจกต์ Bluetooth WS2812B Controller ผสมผสานการแยกวิเคราะห์คำสั่ง Serial เข้ากับไลบรารี FastLED เพื่อสร้างแสงสว่างที่สวยงามและตอบสนองได้ดีเยี่ยมสำหรับห้องของคุณ
ความมหัศจรรย์ของไลบรารี FastLED
แถบ WS2812B (NeoPixels) มีสายไฟเพียง 3 เส้น: 5V, GND, และสาย Data เพียงเส้นเดียว
- เป็นแบบ "Addressable" คุณสามารถสั่งให้ LED ตัวที่ 5 เป็นสีแดงในขณะที่ LED ตัวที่ 60 เป็นสีน้ำเงินได้
- ไลบรารี
FastLED.hจะจัดการเรื่อง Timing ที่ซับซ้อนอย่างยิ่งยวดซึ่งจำเป็นสำหรับสาย Data leds[0] = CRGB::Red; FastLED.show();
การแยกวิเคราะห์สตริง RGB จาก Bluetooth
ความท้าทายที่แท้จริงคือการดึงสีที่แม่นยำจากโทรศัพท์ของคุณ
- คุณใช้ Android App (เช่น Bluetooth Electronics) เพื่อเลือกสีม่วงที่กำหนดเองบน Color Wheel
- แอปจะส่งสตริงไปยัง HC-05 Receiver:
R:150,G:0,B:200\n - Arduino จะอ่านสตริงนั้น โดยใช้ C++
String.indexOf()เพื่อค้นหาเครื่องหมายคอมมา และString.substring().toInt()เพื่อดึงค่า Integer150และ200ที่แม่นยำออกมา - จากนั้นจะนำตัวเลขที่แยกวิเคราะห์แล้วเหล่านี้ป้อนเข้าสู่
fill_solid(leds, NUM_LEDS, CRGB(r, g, b));โดยตรง
คำเตือนเรื่องแหล่งจ่ายไฟ
- Arduino Uno/Nano: สำหรับ Logic คำสั่ง
- HC-05 Bluetooth Module
- Pin ของ Arduino สามารถจ่ายกระแสได้สูงสุด 500mA แถบ NeoPixels ความยาว 1 เมตร ที่มี 60 ดวง และเปิดเป็นสีขาวเต็มที่นั้นกินกระแสถึง 3.6 Amps! คุณ ต้อง จ่ายไฟให้กับแถบ LED ผ่าน 5V/5A power supply ภายนอก หากคุณเสียบแถบ LED เข้ากับ Pin 5V ของ Arduino โดยตรง Voltage Regulator จะไหม้ทันที