กลับไปหน้ารวมไฟล์
led-strip-using-infrared-ir-remote-89289b.md

ชื่อโปรเจกต์: LED Strip โดยใช้รีโมทอินฟราเรด (IR)

Project Overview

"ระบบไฟส่องสว่างตามอารมณ์ที่ควบคุมด้วย IR" เป็นโปรเจกต์ระบบอัตโนมัติภายในบ้านอเนกประสงค์ที่เปลี่ยนรีโมทโทรทัศน์หรือมีเดียทั่วไปให้เป็นศูนย์กลางคำสั่งสำหรับแผง LED ที่กำหนดเอง โดยใช้ TSOP1738 Infrared Receiver ระบบจะถอดรหัสพัลส์แสงแบบโมดูเลตจากรีโมทให้เป็น Hexadecimal Command Codes ที่ไม่ซ้ำกัน สิ่งนี้ทำให้ Arduino UNO สามารถเปิด/ปิดและสร้างแอนิเมชันให้กับ LED แต่ละชุดได้อย่างอิสระตามปุ่มที่กด เป็นบทนำที่ยอดเยี่ยมสำหรับ optical communication protocols และการถอดรหัสสัญญาณด้วยฮาร์ดแวร์และซอฟต์แวร์

บทนำ

ในโปรเจกต์นี้ ผมจะแสดงวิธีสร้าง LED Strip และทำให้ LED สว่างขึ้นด้วยฟังก์ชันต่างๆ โดยใช้รีโมทอินฟราเรด (IR) และดูค่าใน Serial Monitor

คุณสามารถกำหนดปุ่มรีโมทที่แตกต่างกัน และทำให้ LED สว่างขึ้นด้วยฟังก์ชันที่แตกต่างกันได้

Technical Deep-Dive

  • วิทยาศาสตร์ของการแยกสัญญาณ IR: รีโมท IR มักจะส่งข้อมูลโดยใช้ 38kHz carrier frequency เพื่อป้องกันการรบกวนจากแสงแดดภายนอกหรือแสงไฟภายในอาคาร TSOP1738 sensor มีฟิลเตอร์แบบ band-pass ภายในและวงจรควบคุมอัตราขยายอัตโนมัติ (AGC) มันจะกำจัดคลื่นพาหะ 38kHz ออกไปและส่งมอบคลื่นดิจิทัลสี่เหลี่ยมที่ "สะอาด" ซึ่งแสดงถึงบิตข้อมูลที่เข้ารหัส (เช่น NEC หรือ Sony protocol) ไปยัง Arduino
  • การถอดรหัส Pulse-Width Modulation: ไลบรารี IRremote.h ทำงานโดยการวัดระยะเวลาของพัลส์ HIGH และ LOW ที่แม่นยำในระดับไมโครวินาที ในหลายๆ โปรโตคอล:
    • "Logic 0" แทนด้วยพัลส์ 562.5µs ตามด้วยช่องว่าง 562.5µs
    • "Logic 1" แทนด้วยพัลส์ 562.5µs ตามด้วยช่องว่าง 1.6875ms
    • ไลบรารีจะแปลรูปแบบเวลาเหล่านี้เป็นค่า 32-bit เช่น 0xFF30CF ซึ่ง Arduino จะใช้เป็นคีย์สำหรับค้นหาฟังก์ชันแสงเฉพาะ
  • ตรรกะของเฟิร์มแวร์และ Repeat Codes: คุณสมบัติเฉพาะของ NEC protocol คือ Repeat Code (0xFFFFFFFF) หากผู้ใช้กดปุ่มค้างไว้ รีโมทจะไม่ส่งคำสั่งซ้ำ แต่จะส่งแฟล็กการทำซ้ำนี้โดยเฉพาะ เฟิร์มแวร์ขั้นสูงสามารถตรวจจับแฟล็กนี้เพื่อให้ฟังก์ชัน "หรี่ไฟ" หรือ "เปลี่ยนสี" ทำงานต่อเนื่องจนกว่าจะปล่อยปุ่ม
  • การจัดการพลังงานและกระแสไฟฟ้า: โปรเจกต์นี้ขับเคลื่อน LED หลายตัวผ่านสามช่องสัญญาณ (สีแดง สีเหลือง สีน้ำเงิน) แต่ละขาของ Arduino มีขีดจำกัดกระแสไฟฟ้าที่ 40mA เนื่องจากแต่ละชุดประกอบด้วย LED 4 ตัว กระแสไฟฟ้าจึงถูกกระจายอย่างระมัดระวังเพื่อให้แน่ใจว่า absolute maximum ratings ของ ATMega328P จะไม่เกิน ปกป้องอายุการใช้งานของไมโครคอนโทรลเลอร์ในขณะที่ยังคงความสว่างที่มองเห็นได้

Implementation & Testing

  • โหมดค้นหารหัส: ขั้นแรกของโปรเจกต์คือ "Discovery Mode" ด้วยการรันสเก็ตช์การถอดรหัสแบบง่าย ผู้ใช้จะพิมพ์ Hex codes ดิบของรีโมทเฉพาะของตนไปยัง Serial Monitor จากนั้นรหัสเหล่านี้จะถูก hardcoded ลงในสเก็ตช์ "Production" ขั้นสุดท้าย เพื่อให้มั่นใจว่ามีการแมปแบบ 1:1 ระหว่างปุ่มจริงกับสถานะแสง
  • ความเข้ากันได้แบบสากล: เนื่องจากการถอดรหัสถูกกำหนดโดยซอฟต์แวร์ ระบบจึงสามารถฝึกให้ทำงานร่วมกับรีโมทในครัวเรือนเกือบทุกชนิด ไม่ว่าจะเป็น TV, AC หรือเครื่องเล่น DVD ทำให้เป็นโปรเจกต์ "Recycled Tech" ที่สมบูรณ์แบบ
  • การขยายแบบโมดูลาร์: ส่วน "Hookup" กำหนดการแมปขาอย่างชัดเจนสำหรับ TSOP และชุด LED ความเป็นโมดูลาร์นี้ช่วยให้ผู้สร้างสามารถเปลี่ยน LED ขนาด 5 มม. มาตรฐานเป็น LED strips กำลังสูง หรืออาร์เรย์ที่ขับเคลื่อนด้วย MOSFET สำหรับระบบไฟส่องสว่างในห้องระดับมืออาชีพ

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

title: "LED Strip using Infrared (IR) Remote"
description: "Make LED Strip and Glow LED using Various Function using Infrared (IR) Remote and See Values in Serial Monitor"
author: "krishna_agarwal"
category: "Home & Automation"
tags:
  - "infrared"
  - "ir remote"
  - "remote control"
  - "TSOP1738"
  - "lighting-automation"
views: 4495
likes: 2
price: 1120
difficulty: "Easy"
components:
  - "1x Arduino UNO"
  - "4x LED, Blue/Green"
  - "1x Breadboard (generic)"
  - "4x 5 mm LED: Yellow"
  - "1x JustBoom IR Remote"
  - "1x Infrared Receiver (TSOP1738)"
  - "4x 5 mm LED: Red"
  - "1x IRremote.h Library"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles:
  - "https://projects.arduinocontent.cc/f74547bf-e609-41a6-a0ce-0b0fbf535df8.ino"
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/led-strip-using-infrared-ir-remote-89289b_cover.jpg"
lang: "th"