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
ข้อมูลเชิงวิศวกรรม
- TSOP1738 IR Sensor: เซ็นเซอร์นี้ไม่ใช่แค่ Photo Transistor ธรรมดา แต่เป็นตัวรับที่รวมฟิลเตอร์ความถี่และวงจรขยายสัญญาณเข้าไว้ด้วยกัน มันตรวจจับสัญญาณอินฟราเรดที่ส่งออกมาที่ความถี่ 38 kHz (ซึ่งเป็นมาตรฐานสำหรับรีโมททีวีส่วนใหญ่) สัญญาณที่ได้รับจะถูก demodulate ออกจากคลื่นพาหะ เหลือเพียงข้อมูลดิจิทัล (Logic 0 และ 1) ที่จะส่งไปยังบอร์ด Arduino
- RGB LED & PWM Logic: ความสามารถในการสร้างสีสันที่หลากหลายมาจากการใช้ PWM (Pulse Width Modulation) โดย Arduino จะส่งสัญญาณดิจิทัลที่มีความถี่คงที่แต่มีการเปลี่ยนแปลงระยะเวลาการจ่ายพลังงาน (Duty Cycle) ไปยังขา Red, Green และ Blue ของ LED เพื่อผสมสีตามหลักการของแสง (Additive Color Mixing)
คู่มือทีละขั้นตอน
ขั้นตอนที่ 1: ถอดรหัสรีโมท
ก่อนอื่น เราต้องรู้ว่า "รหัสลับ" (Hexadecimal Codes) ที่รีโมทส่งออกมาเมื่อกดแต่ละปุ่มคืออะไร
- เชื่อมต่อวงจรเซ็นเซอร์ TSOP1738 เข้ากับ Arduino (ขา VCC, GND และ Signal)
- อัปโหลดโค้ดส่วนแรก (IR Receiver Sketch) เพื่อเตรียมพร้อมสำหรับการอ่านค่า
- เปิด Serial Monitor ใน Arduino IDE
- ชี้รีโมทไปที่เซ็นเซอร์แล้วลองกดปุ่มที่คุณต้องการ (เช่น ปุ่ม 1, 2, 3)
- คุณจะเห็น Hexadecimal Codes (Hex Codes) ปรากฏบนหน้าจอ เช่น
0xFF30CFโปรดจดบันทึกรหัสเหล่านี้อย่างระมัดระวัง เนื่องจากรหัสปุ่มจะแตกต่างกันไปในแต่ละยี่ห้อรีโมท
ขั้นตอนที่ 2: นำไปใช้งาน
เมื่อคุณได้รหัสปุ่มแล้ว ขั้นตอนต่อไปคือการกำหนดว่า "รหัสใดตรงกับสีใด"
- แทนที่โค้ดตัวอย่างในส่วนที่สองของโค้ดด้วย Hex Codes ที่คุณบันทึกไว้
- เขียนคำสั่ง
switch-caseหรือif-elseเพื่อตรวจสอบว่าปุ่มใดตรงกับค่าที่ได้รับจากirrecv.decode(&results) - อัปโหลดโค้ดไปยังบอร์ดและทดสอบการเปลี่ยนสีได้ทันที!
รูปภาพโปรเจกต์











การติดตั้ง Library ที่จำเป็น
โปรเจกต์นี้อาศัยความสามารถของไลบรารี #include <IRremote.h> ซึ่งเป็นไลบรารีมาตรฐานที่เสถียรที่สุดสำหรับการจัดการสัญญาณ IR
- คู่มือการติดตั้ง: ไปที่
Sketch->Include Library->Manage Libraries...จากนั้นค้นหา IRremote แล้วคลิก Install หรือคุณสามารถดาวน์โหลดได้โดยตรงจาก GitHub
การวิเคราะห์ตรรกะของโปรแกรม
ในด้านการเขียนโปรแกรม เราจะใช้คำสั่งหลักดังต่อไปนี้:
irrecv.enableIRIn();: เริ่มต้นการทำงานของ IR receiverirrecv.decode(&results);: ตรวจสอบว่าได้รับสัญญาณหรือไม่ และถอดรหัส โดยเก็บผลลัพธ์ไว้ในตัวแปรresults.valueanalogWrite(pin, value);: สั่งให้ขา PWM กำหนดระดับความสว่างสำหรับแต่ละสี (ค่า 0-255)
โปรเจกต์นี้ไม่เพียงแต่ให้ความสนุกสนานเท่านั้น แต่ยังสามารถนำไปประยุกต์ใช้ในการเปิด/ปิดไฟในบ้าน หรือควบคุมความเร็วพัดลมโดยใช้รีโมทเดิมของคุณ ขอให้สนุกกับการสร้างสรรค์สิ่งใหม่ๆ!
ผู้เขียน: Ramji Patel Jhansi (INDIA) ขยายความทางเทคนิคโดย: วิศวกรระบบสมองกลฝังตัว / นักเขียนด้านเทคนิค