กลับไปหน้ารวมไฟล์
arduino-ir-remote-f4b0c6.md

Arduino IR remote

เปลี่ยนรีโมททีวีของคุณให้เป็นตัวควบคุมหลอดไฟอัจฉริยะด้วย Arduino และเซ็นเซอร์ TSOP1738

ในโปรเจกต์นี้ ผมจะแนะนำทุกคนในการเปลี่ยนรีโมททีวีธรรมดาที่วางอยู่ตามบ้าน ให้กลายเป็นอุปกรณ์ควบคุมสีหลอดไฟ RGB LED แบบไร้สายผ่านอินฟราเรด (IR Remote Control) โดยใช้บอร์ด Arduino เป็นตัวประมวลผลหลัก นี่เป็นขั้นตอนพื้นฐานในการเรียนรู้เกี่ยวกับระบบ Home Automation และการสื่อสารข้อมูลแบบไร้สาย

รายการ Hardware

เพื่อให้โปรเจกต์นี้สำเร็จ คุณจะต้องเตรียมอุปกรณ์ดังต่อไปนี้:

  • Microcontroller Board: คุณสามารถเลือกใช้ได้หลายรุ่น เช่น Arduino Uno, Nano, Mega, Pro Mini หรือ Pro Micro ขึ้นอยู่กับพื้นที่ติดตั้ง
  • TSOP1738 Infrared Receiver Sensor: ส่วนประกอบสำคัญที่จะรับและถอดรหัสสัญญาณจากรีโมท
  • RGB LED: สำหรับแสดงสีต่างๆ (แนะนำ Common Cathode หรือ Common Anode ขึ้นอยู่กับสิ่งที่คุณมี)
  • Remote Control: รีโมททีวีมาตรฐานหรือ IR remote ที่คุณมี
  • Accessories: Breadboard สำหรับประกอบวงจร และ Jumper Wires

ข้อมูลเชิงวิศวกรรม

  1. TSOP1738 IR Sensor: เซ็นเซอร์นี้ไม่ใช่แค่ Photo Transistor ธรรมดา แต่เป็นตัวรับที่รวมฟิลเตอร์ความถี่และวงจรขยายสัญญาณเข้าไว้ด้วยกัน มันตรวจจับสัญญาณอินฟราเรดที่ส่งออกมาที่ความถี่ 38 kHz (ซึ่งเป็นมาตรฐานสำหรับรีโมททีวีส่วนใหญ่) สัญญาณที่ได้รับจะถูก demodulate ออกจากคลื่นพาหะ เหลือเพียงข้อมูลดิจิทัล (Logic 0 และ 1) ที่จะส่งไปยังบอร์ด Arduino
  2. RGB LED & PWM Logic: ความสามารถในการสร้างสีสันที่หลากหลายมาจากการใช้ PWM (Pulse Width Modulation) โดย Arduino จะส่งสัญญาณดิจิทัลที่มีความถี่คงที่แต่มีการเปลี่ยนแปลงระยะเวลาการจ่ายพลังงาน (Duty Cycle) ไปยังขา Red, Green และ Blue ของ LED เพื่อผสมสีตามหลักการของแสง (Additive Color Mixing)

คู่มือทีละขั้นตอน

ขั้นตอนที่ 1: ถอดรหัสรีโมท

ก่อนอื่น เราต้องรู้ว่า "รหัสลับ" (Hexadecimal Codes) ที่รีโมทส่งออกมาเมื่อกดแต่ละปุ่มคืออะไร

  1. เชื่อมต่อวงจรเซ็นเซอร์ TSOP1738 เข้ากับ Arduino (ขา VCC, GND และ Signal)
  2. อัปโหลดโค้ดส่วนแรก (IR Receiver Sketch) เพื่อเตรียมพร้อมสำหรับการอ่านค่า
  3. เปิด Serial Monitor ใน Arduino IDE
  4. ชี้รีโมทไปที่เซ็นเซอร์แล้วลองกดปุ่มที่คุณต้องการ (เช่น ปุ่ม 1, 2, 3)
  5. คุณจะเห็น Hexadecimal Codes (Hex Codes) ปรากฏบนหน้าจอ เช่น 0xFF30CF โปรดจดบันทึกรหัสเหล่านี้อย่างระมัดระวัง เนื่องจากรหัสปุ่มจะแตกต่างกันไปในแต่ละยี่ห้อรีโมท

ขั้นตอนที่ 2: นำไปใช้งาน

เมื่อคุณได้รหัสปุ่มแล้ว ขั้นตอนต่อไปคือการกำหนดว่า "รหัสใดตรงกับสีใด"

  1. แทนที่โค้ดตัวอย่างในส่วนที่สองของโค้ดด้วย Hex Codes ที่คุณบันทึกไว้
  2. เขียนคำสั่ง switch-case หรือ if-else เพื่อตรวจสอบว่าปุ่มใดตรงกับค่าที่ได้รับจาก irrecv.decode(&results)
  3. อัปโหลดโค้ดไปยังบอร์ดและทดสอบการเปลี่ยนสีได้ทันที!

รูปภาพโปรเจกต์


การติดตั้ง Library ที่จำเป็น

โปรเจกต์นี้อาศัยความสามารถของไลบรารี #include <IRremote.h> ซึ่งเป็นไลบรารีมาตรฐานที่เสถียรที่สุดสำหรับการจัดการสัญญาณ IR

  • คู่มือการติดตั้ง: ไปที่ Sketch -> Include Library -> Manage Libraries... จากนั้นค้นหา IRremote แล้วคลิก Install หรือคุณสามารถดาวน์โหลดได้โดยตรงจาก GitHub

การวิเคราะห์ตรรกะของโปรแกรม

ในด้านการเขียนโปรแกรม เราจะใช้คำสั่งหลักดังต่อไปนี้:

  • irrecv.enableIRIn(); : เริ่มต้นการทำงานของ IR receiver
  • irrecv.decode(&results); : ตรวจสอบว่าได้รับสัญญาณหรือไม่ และถอดรหัส โดยเก็บผลลัพธ์ไว้ในตัวแปร results.value
  • analogWrite(pin, value); : สั่งให้ขา PWM กำหนดระดับความสว่างสำหรับแต่ละสี (ค่า 0-255)

โปรเจกต์นี้ไม่เพียงแต่ให้ความสนุกสนานเท่านั้น แต่ยังสามารถนำไปประยุกต์ใช้ในการเปิด/ปิดไฟในบ้าน หรือควบคุมความเร็วพัดลมโดยใช้รีโมทเดิมของคุณ ขอให้สนุกกับการสร้างสรรค์สิ่งใหม่ๆ!


ผู้เขียน: Ramji Patel Jhansi (INDIA) ขยายความทางเทคนิคโดย: วิศวกรระบบสมองกลฝังตัว / นักเขียนด้านเทคนิค

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

title: "Arduino IR remote"
description: "Control LEDS with your TV remote"
author: "ramjipatel376"
category: ""
tags:
  - "home automation"
  - "security"
  - "remote control"
views: 5388
likes: 0
price: 1120
difficulty: "Intermediate"
components:
  - "1x Arduino UNO"
  - "1x IR receiver (generic)"
  - "1x JustBoom IR Remote"
  - "1x Jumper wires (generic)"
  - "1x RGB Diffused Common Cathode"
  - "1x Solderless Breadboard Full Size"
tools: []
apps:
  - "1x Arduino IDE"
downloadableFiles: []
documentationLinks: []
passwordHash: "c4df33e2ca3228bf3ac273ba49e61c17dda319775e45321d170bc950b72abaf8"
encryptedPayload: "U2FsdGVkX1/dwHxXZhMepMIxaMDMgeeREOYnjEg13SHye+l2BxK/MdZZppIgvVc/OJMbeSICWk7bPf8MTOF7uZiCvzGg2s3GZ8tQO57wg1I="
seoDescription: "Learn how to control LEDS with your TV remote using Arduino. A simple IR sensor project for beginners."
videoLinks: []
heroImage: "https://cdn.jsdelivr.net/gh/bigboxthailand/arduino-assets@main/images/projects/arduino-ir-remote-f4b0c6_cover.jpg"
lang: "th"