กลับไปหน้ารวมไฟล์
ir-remote-controlled-rgb-led-009aaa.md

Project Overview: Wireless Lighting Control

เทคโนโลยี Infrared (IR) ยังคงเป็นหนึ่งในวิธีที่น่าเชื่อถือและคุ้มค่าที่สุดในการควบคุมอุปกรณ์อิเล็กทรอนิกส์ภายในบ้านแบบไร้สาย โปรเจกต์นี้มีชื่อว่า IR Remote-Controlled RGB LED ซึ่งแสดงให้เห็นถึงวิธีเชื่อมโยงรีโมทคอนโทรลมือถือมาตรฐานเข้ากับ RGB LED แบบไดนามิก ได้รับแรงบันดาลใจจากคำสอนของ Paul McWhorter โครงสร้างนี้ใช้อุปกรณ์ Arduino Nano ในการถอดรหัสสัญญาณ IR และแปลงเป็นคำสั่งสีและความสว่างที่เฉพาะเจาะจง

Hardware & Signal Processing

ระบบนี้อาศัยการทำงานร่วมกันทางอิเล็กทรอนิกส์หลักสองส่วน:

  1. IR Decoding: ตัว IR Receiver (ซีรีส์ TSOP) ตรวจจับแสงอินฟราเรดที่ส่งเป็นพัลส์ที่ 38kHz โดยจะกำจัดคลื่นพาหะออกไปและส่งสตรีมข้อมูลดิจิทัลดิบไปยัง Arduino Nano
  2. PWM Color Mixing: RGB LED โดยพื้นฐานแล้วคือ LED สามดวง (แดง, เขียว, น้ำเงิน) ที่รวมอยู่ในตัวเรือนเดียว โดยการใช้ Pulse Width Modulation (PWM) นั้น Arduino สามารถปรับความสว่างของ LED แต่ละดวงภายในได้อย่างอิสระ ทำให้สามารถสร้างสีผสมเช่น Yellow, Cyan และ Magenta ได้

Components in the Build

  • Arduino Nano R3: เป็นตัวเลือกที่กะทัดรัดสำหรับโปรเจกต์ไฟขนาดเล็ก สามารถติดตั้งได้ง่ายหลัง LED diffuser
  • IR Receiver Module: ถอดรหัสสัญญาณ 38kHz ที่เข้ามาจากรีโมท
  • JustBoom IR Remote: รีโมทโปรโตคอล NEC มาตรฐานที่ส่ง hex codes ที่ไม่ซ้ำกันสำหรับแต่ละปุ่ม
  • RGB Diffused LED: ชนิด "Diffused" เป็นที่นิยมสำหรับโปรเจกต์นี้ เนื่องจากมันจะผสมสีภายในเพื่อให้แสงนุ่มนวลขึ้น

Technical Code Logic

เฟิร์มแวร์นี้ใช้ IRremote library ในการจัดการงานที่ซับซ้อนของการถอดรหัสสัญญาณ ตรรกะเป็นไปตามโครงสร้างคำสั่งและการตอบสนองที่ชัดเจน:

  • Hex Code Matching: Arduino จะรับฟังค่าเฉพาะ (เช่น 0xFF30CF สำหรับปุ่ม "One") ค่าเหล่านี้สอดคล้องกับโปรโตคอล NEC ที่รีโมทราคาประหยัดหลายตัวใช้
  • Color Presets:
    • Buttons 1, 2, 3: ตั้งค่า LED เป็นสี Red, Green และ Blue บริสุทธิ์
    • Button 0: รีเซ็ตเป็นสี White บริสุทธิ์ (ทุกช่อง 100%)
    • Buttons 4, 5, 6: เปิดใช้งานสีผสม (Cyan, Magenta, Yellow)
  • Brightness Dimming: ที่ไม่เหมือนใครคือ โค้ดนี้มี dFact (dimming factor) การกดปุ่ม UP หรือ DN บนรีโมทจะคูณความสว่างปัจจุบันด้วย 1.3 หรือ 0.75 ตามลำดับ ทำให้เกิดเอฟเฟกต์การหรี่แสงที่ราบรื่น
// Example of the dimming logic in the code
if (myCom == "dn"){
  dFact = dFact * 0.75;
}
if (myCom == "up"){
  dFact = dFact * 1.3;
  if (dFact > 1) dFact = 1;
}

Setup & Calibration

เพื่อให้ได้ประโยชน์สูงสุดจากโปรเจกต์นี้:

  1. Mapping the Remote: รีโมทแต่ละตัวจะส่ง hex codes ที่แตกต่างกัน ใช้ตัวอย่าง "IRrecvDemo" จาก library เพื่อระบุโค้ดสำหรับรีโมทของคุณโดยเฉพาะ และอัปเดต if statements ในโค้ดตามนั้น
  2. Common Cathode vs. Anode: วงจรนี้ออกแบบมาสำหรับ Common Cathode LED หาก LED ของคุณเป็น Common Anode คุณจะต้องสลับค่า PWM (เช่น 255 - brightness)
  3. Circuit Protection: ตรวจสอบให้แน่ใจว่ามี 220-ohm resistors ติดตั้งไว้สำหรับแต่ละขาของ LED ทั้งสามขา เพื่อป้องกันไม่ให้ Nano จ่ายกระแสไฟมากเกินไป

Conclusion

โปรเจกต์ IR Remote-Controlled RGB LED เป็นโปรเจกต์ "ระดับ 2" ที่สมบูรณ์แบบสำหรับผู้เริ่มต้น โดยเป็นการแนะนำเกี่ยวกับ external libraries, complex conditional logic และการทำงานร่วมกันระหว่าง timing-sensitive sensors กับ high-frequency PWM outputs

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

title: "IR Remote-Controlled RGB LED"
description: "This project controls an RGB LED using an Infared Remote."
author: "ryanrhinoy"
category: ""
tags:
  - "lights"
  - "remote control"
views: 4119
likes: 0
price: 870
difficulty: "Easy"
components:
  - "1x IR receiver (generic)"
  - "1x Jumper Wire Kit, Multicolor"
  - "1x Arduino Nano R3"
  - "1x JustBoom IR Remote"
  - "1x RGB Diffused Common Cathode"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles:
  - "https://projects.arduinocontent.cc/892a7d24-6c53-4111-a9cd-1772d866d5a9.ino"
documentationLinks: []
passwordHash: "839137d13d40900954c23e3bf81eb49b86d694de94ca66c06c7f0235a865e5c9"
encryptedPayload: "U2FsdGVkX1+qMiTHlNLqdUYC/EbJAI/3zBPm13+iy7Rl24+c8ATn9qXqb1k0d6MK7sb81ibGKhVqBifLMGoo4pZpv/3lplPUllS0kXEWwv4="
seoDescription: "Learn how to control an RGB LED using an Infared Remote in this simple Arduino project."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/ir-remote-controlled-rgb-led-009aaa_cover.jpg"
lang: "th"