Arduino Text LCD Display และรับรหัสรีโมทอินฟราเรด
ระบบวัดและส่งข้อมูลถอดรหัสอินฟราเรด: จากรีโมททีวีสู่ LCD
รีโมทโทรทัศน์ทั่วไปไม่ได้ส่งแสงกะพริบธรรมดาๆ; แต่จะปล่อยลำดับพัลส์ที่ถูกโมดูเลตความหนาแน่นสูงถึง 38 Kilohertz ที่มองไม่เห็น ซึ่งประกอบด้วย payload แบบ hexadecimal ที่เข้ารหัสขนาด 32-bit จำนวนมหาศาล เพื่อระบุปุ่มที่ถูกกดอย่างแม่นยำ! ระบบ รับรหัสรีโมทอินฟราเรด จะเปลี่ยน Arduino ให้เป็นตัวถอดรหัสโปรโตคอลสากล! ด้วยการใช้อัลกอริทึม IRrecv object ที่ทรงพลัง ระบบจะดักจับแสงกะพริบที่ลอยอยู่ในอากาศ สร้างสตริงขนาดใหญ่ขึ้นมาใหม่ทีละบิตด้วยหลักคณิตศาสตร์ และแสดงผล raw Hex code โดยตรงบนหน้าจอ 16x2 LCD Panel ที่คมชัด!

ถอดรหัส 38KHz Matrix (IRremote.h)
การต่อสาย LED ทั่วไปเพื่อตรวจจับแสงจะล้มเหลวโดยสิ้นเชิง เนื่องจากรีโมททีวีใช้ "Carrier Frequency" ที่ 38,000 ครั้งต่อวินาที เพื่อทะลุผ่านสัญญาณรบกวนจากแสงแดด!
- คุณต้องใช้ VS1838B Infrared Receiver Modulator แบบพิเศษ ซึ่งมี IC ขนาดเล็กอยู่ภายใน ทำหน้าที่กรองแสงแดดออกได้อย่างสมบูรณ์ และส่งผ่านเฉพาะคลื่นสี่เหลี่ยมดิจิทัลไบนารีบริสุทธิ์ตรงไปยัง Arduino Digital Pin 11 เท่านั้น!
- ไลบรารี
<IRremote.h>ขนาดใหญ่ใช้ hardware timers อันทรงพลังเบื้องหลังเพื่อวิเคราะห์ความยาวไมโครวินาทีที่เฉพาะเจาะจงของช่องว่างพัลส์ HIGH/LOW เพื่อระบุว่าโปรโตคอลนั้นเป็นของแบรนด์ใด (เช่น Sony, NEC, Panasonic!)
#include <IRremote.h>
#include <LiquidCrystal_I2C.h>
int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);
decode_results results; // struct object ขนาดใหญ่ที่เก็บ payload ที่ถูกแยกวิเคราะห์แล้ว!
void loop() {
if (irrecv.decode(&results)) { // ตรวจจับสัญญาณได้แล้ว!
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("BUTTON CODE HEX:");
lcd.setCursor(0, 1);
lcd.print(results.value, HEX); // ถอดรหัส payload ไปยัง LCD โดยตรง!
// เปิดไฟถ้าปุ่ม "POWER" ถูกจับคู่ได้!
if(results.value == 0xFFA25D) {
digitalWrite(RELAY_PIN, !digitalRead(RELAY_PIN));
}
irrecv.resume(); // ล้างค่าที่จับได้เพื่อเตรียมพร้อมสำหรับลำดับโค้ดถัดไป!
}
}
การรวมระบบ Telemetry LCD Pipeline
หน้าจอ 16x2 Display ช่วยให้นักพัฒนาสามารถทำงานได้โดยไม่ต้องเชื่อมต่อกับ Laptop เลย!
- คุณสามารถเล็งรีโมท AC, TV, หรือ Radio ใดก็ได้ไปที่ Arduino และบันทึก Hex codes ได้ทันทีโดยไม่ต้องดู Serial Monitor!
- ด้วยการรวม I2C PCF8574 Backpack ที่บัดกรีเข้ากับหน้าจอ 16x2 LCD นั้น Arduino จะใช้เพียงสอง analog pins (
A4/A5) ในการแสดงตัวอักษร ซึ่งช่วยรักษา digital pins ไว้ได้อย่างเต็มที่สำหรับสร้าง Relay networks ขนาดใหญ่เพื่อตอบสนองต่อคำสั่ง InfraRed ที่ดักจับมาได้อย่างราบรื่น!
ฮาร์ดแวร์ที่จำเป็นสำหรับการถอดรหัส
- Arduino Uno/Nano (จัดการ 8-bit timer arrays ภายในที่แม่นยำสำหรับ IR library ได้อย่างสมบูรณ์แบบ)
- VS1838B / TSOP4838 38KHz IR Receiver (ส่วนประกอบ 3-pin นี้มีความจำเป็นอย่างยิ่ง; photodiode แบบ 2-pin ทั่วไปจะล้มเหลวในการถอดรหัสข้อมูลโดยสิ้นเชิง)
- 16x2 LCD Display with I2C Module (ช่วยให้สามารถใช้ two-wire ASCII string execution matrices ขนาดใหญ่ได้)
- Household Infrared Remote Control ทั่วไปทุกชนิด (รีโมทรูปแบบ NEC ให้โครงสร้าง hexadecimal ที่สะอาดที่สุดสำหรับระบบการดักจับที่เชื่อถือได้)