กลับไปหน้ารวมไฟล์
rgb-strip-led-controlled-with-bluetooth-0b67bc.md

ชื่อโปรเจกต์: RGB Strip led controlled with Bluetooth

ภาพรวมโปรเจกต์: จัดไฟ Ambient ให้ห้องดูหล่อเท่แบบสมัยใหม่

ไฟในบ้านเดี๋ยวนี้มันต้องล้ำ ไม่ใช่แค่เปิด-ปิดสว่างเฉยๆ แต่มันต้องเปลี่ยนสีได้ตามอารมณ์เว้ยน้อง! โปรเจกต์ RGB Strip LED controlled with Bluetooth นี้คือทางลัดเข้าสู่โลก Smart Home แบบราคาประหยัด แค่เอา Arduino Nano มาฟีเจอริ่งกับ HC-05 Bluetooth Module น้องก็สามารถคุมสีและความสว่างของไฟ RGB Strip ผ่านมือถือได้แบบคูลๆ แล้ว

จะเอาสีฟ้าชิลๆ ไว้อ่านหนังสือ สีเหลืองจี๊ดๆ เพิ่มพลังงาน หรือจะจัด Rainbow Fade ไล่สีรุ้งไว้อวดชุดคอมเกมเมอร์ พี่จัดให้ครบทั้ง Blueprint วงจรและตัว Code จัดไปวัยรุ่น!

Hardware & การจัดการพลังงาน

จำไว้เลยนะน้อง ไฟเส้น LED โดยเฉพาะพวก NeoPixel หรือ Analog RGB Strip พวกนี้มันกินกระแสโหดมาก ห้ามประมาทเด็ดขาด!

  • Arduino Nano R3: บอร์ดเล็กพริกขี้หนู ยัดลงกล่องโปรเจกต์ง่าย ไม่เกะกะ
  • HC-05 Bluetooth Module: ตัวกลางเชื่อมต่อระหว่างมือถือกับสมองกล Arduino ของเรา
  • Power MOSFETs (Optional/N-Channel): ถ้าจะเล่นไฟเส้น Analog แรงๆ ต้องใช้ MOSFET มาช่วยสลับไฟ (Switching) ให้แต่ละสี (Red, Green, Blue) ตามสัญญาณ PWM จาก Arduino ไม่งั้น Pin บอร์ดละลายนะจ๊ะ
  • DC-DC Buck Converter: ไฟ LED Strip ส่วนใหญ่ใช้ 12V แต่ Arduino ของเราชอบ 5V เพราะฉะนั้นต้องมี Buck Converter ไว้แปลงไฟให้เหมาะสม ห้ามต่อตรงเชียวล่ะ เดี๋ยวจะได้กลิ่นไหม้แทนความสวยงาม

ทำความเข้าใจ Protocol การควบคุม

ระบบนี้เราคุยกันผ่าน Serial แบบง่ายๆ แค่ส่งตัวอักษรไปสั่งงาน พอน้องกดปุ่มในแอปบนมือถือ (ที่เขียนด้วย MIT App Inventor) มันจะส่ง Character ตัวเดียวมาให้ Arduino ตามนี้:

  • 'r' / 'g' / 'b': สั่งไฟ แดง, เขียว หรือ น้ำเงิน แบบเพียวๆ
  • 'w': สั่งเปิดทุกสีให้สุด (ได้แสงสีขาว)
  • 'a' / 'y' / 'v': ผสมสีออกมาเป็น ส้ม, เหลือง และ ม่วง โดยการคุมความเข้มแต่ละแม่สี
  • 's': เข้าโหมด "Show" หรือ Rainbow Fade ให้สีค่อยๆ ไหลวนไปอย่างนวล
  • 'z': ปิดไฟทุกดวง (โหมดนอนหลับ)

โลจิกของ Code & ความเทพทางเทคนิค

ตัว Firmware ชุดนี้พี่เลือกใช้ SoftwareSerial ที่ Pins 8 และ 9 บอกเลยว่าฉลาดมาก เพราะจะทำให้เราเหลือ Hardware Serial (USB) ไว้คอย Debug หรืออัปโหลด Code ได้โดยไม่ต้องคอยดึงสาย Bluetooth ออกให้เสียเวลา

การคุมความเข้มด้วย PWM: โปรเจกต์นี้ใช้ analogWrite() ที่ Pins 3, 5 และ 6 ซึ่งเป็นขา PWM ของ Arduino Nano โดยเฉพาะ น้องสามารถปรับค่า Duty Cycle ได้ตั้งแต่ 0 ถึง 255 เพื่อผสมสีได้เป็นล้านๆ เฉดตามใจชอบเลย

ฟังก์ชัน Rainbow Fade: ใน Code จะมีฟังก์ชัน rgb() ที่มีโครงสร้าง for loop ซ้อนกันอยู่ เพื่อไล่ค่าสีในระดับ 8-bit (0-255) ของแต่ละ Channel ทำให้เกิดการเปลี่ยนสีแบบนวลๆ ที่เรียกว่า "HUE shifting" นั่นเอง

void rgb(int rosso, int verde, int blu){
  analogWrite(rossoPin, rosso);
  analogWrite(verdePin, verde);
  analogWrite(bluPin, blu);
}

แนวทางการอัปเกรดในอนาคต

แค่นี้ยังไม่สุดนะวัยรุ่น! น้องสามารถแก้ Code เพิ่ม Color Picker ในแอปมือถือเพื่อส่งค่า RGB แบบละเอียด (เช่น "R255G120B000") ไปสั่งงานสีที่เป๊ะกว่าเดิมได้ หรือจะเอา Sound Sensor มาติดเพิ่มให้ไฟมัน "เต้น" ตามจังหวะเพลงตอนปาร์ตี้ก็หล่อเท่ไปอีกแบบ สู้งานนะน้อง!

ข้อมูล Frontmatter ดั้งเดิม

title: "RGB Strip led controlled with Bluetooth"
description: "Simply circuit for control a RGB strip led, with Arduino."
author: "SaveForest"
category: ""
tags:
  - "bluetooth"
  - "home automation"
  - "rgb"
views: 1326
likes: 1
price: 299
difficulty: "Easy"
components:
  - "1x Arduino Nano R3"
  - "1x Breadboard (generic)"
  - "1x Jumper wires (generic)"
  - "1x LED Strip, NeoPixel Digital RGB"
  - "1x DC-DC Buck (Step Down) Regulator, Adjustable"
  - "1x Resistor 220 ohm"
  - "1x HC-05 Bluetooth Module"
  - "1x Power MOSFET N-Channel"
tools: []
apps:
  - "1x MIT App Inventor 2"
downloadableFiles:
  - "https://projects.arduinocontent.cc/ae66ec97-d39c-40e4-bb7d-6733e66072ea.ino"
  - "https://projects.arduinocontent.cc/ae66ec97-d39c-40e4-bb7d-6733e66072ea.ino"
documentationLinks: []
passwordHash: "3b3f76c19a7e91ad0fcbb9b08415f60c2cd112a7a3cc2b0a9c3f84bb8f85028e"
encryptedPayload: "U2FsdGVkX18iY46/oU1XriQlxp8azcfNigBN9wn0Pke2rllbAVxsodv5l6OmYK2jcFaI+7o6W3S/PnSPCAuG5lVBJrcwnx1/zpkFjApaMZM="
seoDescription: "Learn how to control an RGB Strip led using Arduino and Bluetooth with this simple and easy-to-build circuit project."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/rgb-strip-led-controlled-with-bluetooth-0b67bc_cover.jpg"
lang: "th"