กลับไปหน้ารวมไฟล์
arduino-text-lcd-display-ir-remote-receiver-decryption.md

Arduino Text LCD Display และรับรหัสรีโมทอินฟราเรด

ระบบวัดและส่งข้อมูลถอดรหัสอินฟราเรด: จากรีโมททีวีสู่ LCD

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

ac_light_relay_ir_remote_arduino_1772681534011.png

ถอดรหัส 38KHz Matrix (IRremote.h)

การต่อสาย LED ทั่วไปเพื่อตรวจจับแสงจะล้มเหลวโดยสิ้นเชิง เนื่องจากรีโมททีวีใช้ "Carrier Frequency" ที่ 38,000 ครั้งต่อวินาที เพื่อทะลุผ่านสัญญาณรบกวนจากแสงแดด!

  1. คุณต้องใช้ VS1838B Infrared Receiver Modulator แบบพิเศษ ซึ่งมี IC ขนาดเล็กอยู่ภายใน ทำหน้าที่กรองแสงแดดออกได้อย่างสมบูรณ์ และส่งผ่านเฉพาะคลื่นสี่เหลี่ยมดิจิทัลไบนารีบริสุทธิ์ตรงไปยัง Arduino Digital Pin 11 เท่านั้น!
  2. ไลบรารี <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 ที่สะอาดที่สุดสำหรับระบบการดักจับที่เชื่อถือได้)

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

title: "Arduino Text LCD Display & Receive Infrared Remote Code"
description: "Optical data interception matrices! Establish an aggressive NEC protocol demodulation algorithm directly into an Arduino pipeline utilizing a 38KHz IR receiver, accurately interpreting remote hex payloads and visualizing them instantly onto an I2C 16x2 Text Display."
category: "Remote Control & Drones"
difficulty: "Intermediate"