ควบคุม WS2812B LED Strip ด้วย Bluetooth
ทำไมต้องซื้อไฟอัจฉริยะเชิงพาณิชย์ในราคา $80 เมื่อคุณสามารถสร้างแบบปรับแต่งเองได้ในราคาเพียง $15? โปรเจกต์ Bluetooth WS2812B Controller นี้ผสมผสานการแยกวิเคราะห์คำสั่ง Serial เข้ากับไลบรารี FastLED เพื่อสร้างแสงไฟในห้องที่สวยงามและตอบสนองได้ดีเยี่ยม

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