- ส่วนประกอบที่จำเป็น
- IR Communication ทำงานอย่างไร?
- แผนภูมิวงจรรวม
- การเขียนโปรแกรมสำหรับ Arduino IR Remote Decoder
- การบันทึกข้อมูลตัวถอดรหัสระยะไกล IR ลงในแผ่นงาน Excel
การสื่อสาร IR (อินฟราเรด) เป็นเทคโนโลยีการสื่อสารไร้สายที่ใช้งานง่ายต้นทุนต่ำและใช้กันอย่างแพร่หลาย แสง IR ค่อนข้างคล้ายกับแสงที่มองเห็นได้ยกเว้นความยาวคลื่นจะยาวกว่าเล็กน้อย คุณสมบัติของ IR นี้ทำให้ไม่สามารถตรวจจับได้ด้วยสายตามนุษย์และเหมาะสำหรับการสื่อสารแบบไร้สาย
มีแอปพลิเคชั่นมากมายที่คุณต้องถอดรหัสสัญญาณ IR เพื่อควบคุมอุปกรณ์บางอย่างด้วยรีโมท IR ดังนั้นในบทช่วยสอนนี้เราจะใช้ตัวรับสัญญาณ IR TSOP1838 เพื่อสร้างตัวถอดรหัสระยะไกล IR โดยใช้ Arduino รหัสฐานสิบหกสำหรับทุกปุ่มจะถูกบันทึกลงในแผ่นงาน Microsoft Excel ตัวถอดรหัสการควบคุมระยะไกล IR แบบง่ายนี้สามารถใช้ในโครงการต่างๆเช่นหุ่นยนต์ควบคุมระยะไกล IR ระบบอัตโนมัติในบ้านและโครงการควบคุม IR อื่น ๆ
ก่อนหน้านี้เราใช้รีโมท IR และตัวรับ TSOPเพื่อสร้างแอปพลิเคชั่นที่มีประโยชน์มากมายเช่น:
- IR Remote Controlled TRIAC Dimmer Circuit
- IR Remote Controlled Home Automation โดยใช้ Arduino
- IR Remote Controlled Home Automation โดยใช้ไมโครคอนโทรลเลอร์ PIC
- โทรศัพท์มือถือควบคุม AC โดยใช้ Arduino และ Bluetooth
ส่วนประกอบที่จำเป็น
- Arduino Uno / Arduino นาโน
- ตัวรับ IR (TSOP1838)
- สายจัมเปอร์
- เขียงหั่นขนม
IR Communication ทำงานอย่างไร?
เช่นเดียวกับระบบสื่อสารอื่น ๆ การสื่อสารอินฟราเรดยังมีตัวส่งและตัวรับ เครื่องส่งสัญญาณมีลักษณะเหมือน LED แต่จะสร้างแสงในสเปกตรัม IR แทนที่จะเป็นสเปกตรัมที่มองเห็นได้ ในขณะที่ตัวรับสัญญาณ IR เป็นโฟโตไดโอดที่ฝังอยู่กับเครื่องขยายสัญญาณก่อนที่จะเปลี่ยนแสง IR เป็นสัญญาณไฟฟ้า สำหรับการสื่อสาร IR ทั้งตัวส่งและตัวรับควรชี้เข้าหากัน หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวงจรตัวส่งและตัวรับสัญญาณ IR ให้ไปที่ลิงค์
เมื่อกดปุ่มรีโมท IR LED (เครื่องส่งสัญญาณ) จะเปล่งแสงอินฟราเรด ตัวรับแสงนี้ได้รับแสงซึ่งโดยทั่วไปคือโฟโตไดโอดหรือโฟโตทรานซิสเตอร์ แต่แสง IR ยังถูกปล่อยออกมาจากดวงอาทิตย์หลอดไฟและสิ่งอื่น ๆ ที่ก่อให้เกิดความร้อน สิ่งนี้สามารถรบกวนสัญญาณเครื่องส่งได้ดังนั้นเพื่อป้องกันสัญญาณเครื่องส่งจะถูกมอดูเลตโดยใช้ความถี่พาหะระหว่าง 36 kHz ถึง 46 kHz เมื่อได้รับสัญญาณตัวรับสัญญาณ IR จะทำการถอดรหัสสัญญาณและแปลงเป็นไบนารีก่อนที่จะส่งไปยังไมโครคอนโทรลเลอร์
ที่นี่เราใช้รีโมททีวีเพื่อส่งสัญญาณ IR และTSOP1838 กับ Arduinoเพื่อรับสัญญาณ
นอกจากนี้ตรวจสอบแอปพลิเคชันที่ใช้ IR ต่างๆได้ที่นี่รวมถึงวงจร Jammer รีโมทคอนโทรลของทีวีและวงจรทดสอบ IR
แผนภูมิวงจรรวม
แผนภาพวงจรสำหรับIR Remote Decoder โดยใช้ Arduinoมีดังต่อไปนี้:
การเชื่อมต่อนั้นง่ายมากเนื่องจากเซ็นเซอร์ตัวรับ IR มีเพียงสามพิน Vs, GND และ Data เชื่อมต่อ Vs และ GND pin ของ IR Receiver กับ 3.3V GND pin ของ Arduino และ Data pin กับ Digital pin 2 ของ Arduino
การเขียนโปรแกรมสำหรับ Arduino IR Remote Decoder
รหัสที่สมบูรณ์สำหรับArduino IR Decoderมีให้ที่ท้ายหน้า
สำหรับการถอดรหัส IR Remote ก่อนอื่นเราต้องดาวน์โหลดและเพิ่มไลบรารี IR ให้กับ Arduino IDE คุณสามารถดาวน์โหลดไลบรารี IR Remote ได้จากที่นี่ หลังจากดาวน์โหลดไฟล์เปิด Arduino IDE และไปของคุณเพื่อ Sketch> รวมห้องสมุด> คลัง เลือกไฟล์ไลบรารีและคลิกที่ 'เปิด'
เริ่มโค้ดของคุณโดยรวมไฟล์ไลบรารี IR Remote
# รวม
หลังจากนั้นกำหนดพิน Arduino ที่คุณเชื่อมต่อพินข้อมูลของตัวรับสัญญาณ IR ในกรณีของฉันมันเชื่อมต่อกับขา D2 ของ Arduino
int IRPIN = 2;
หลังจากนั้นสร้างอินสแตนซ์สำหรับขารับ IR
IRrecv irrecv (ไออาร์พิน);
ในบรรทัดถัดไปกำหนดอ็อบเจ็กต์สำหรับคลาส decode_results ซึ่งจะถูกใช้โดยตัวรับ IR เพื่อส่งข้อมูลที่ถอดรหัส
ผลลัพธ์ decode_results;
ภายใน ติดตั้ง () ฟังก์ชั่นเริ่มต้นการสื่อสารแบบอนุกรมและเริ่มรับ IR โดยการเรียก IRrecv ฟังก์ชั่น enableIRIn ()
การตั้งค่าเป็นโมฆะ () {Serial.begin (9600); Serial.println ("การเปิดใช้งาน IRin"); irrecv.enableIRIn (); Serial.println ("เปิดใช้งาน IRin"); Initialize_streamer (); }
ในฟังก์ชัน loop () irrecv.decode จะตรวจหาสัญญาณใหม่อย่างต่อเนื่องและหากได้รับสัญญาณใหม่รหัสสัญญาณที่ได้รับจะถูกเก็บไว้ในฟังก์ชัน result.value
โมฆะ loop () {if (irrecv.decode (& result)) {Serial.print ("Value:"); Serial.println (result.value, HEX); Write_streamer (); irrecv.resume (); } ล่าช้า (500); }
สำหรับการส่งข้อมูลไปยังแผ่นงาน Excel จาก Arduino เราใช้ PLX-DAQ การใช้ ฟังก์ชัน Write_streamer () เรากำลังส่งข้อมูลแบบอนุกรมในรูปแบบเฉพาะเช่นเดียวกับการแสดงค่าบนมอนิเตอร์แบบอนุกรม บรรทัดสำคัญอธิบายไว้ด้านล่าง:
เป็นโมฆะ Write_streamer () {Serial.print ("DATA"); // เขียน "DATA" เสมอเพื่อระบุสิ่งต่อไปนี้เป็น Data Serial.print (","); // ย้ายไปที่คอลัมน์ถัดไปโดยใช้ "," Serial.print (result.value, HEX); // จัดเก็บวันที่ใน Excel Serial.print (","); // ย้ายไปที่คอลัมน์ถัดไปโดยใช้ "," Serial.println (); // ท้ายแถวย้ายไปที่แถวถัดไป}
เมื่อฮาร์ดแวร์และโปรแกรมพร้อมแล้วก็ถึงเวลาอัปโหลดโปรแกรมไปยัง Arduino Nano Board ของคุณ หลังจากอัปโหลดรหัสแล้วให้ชี้รีโมทไปที่ตัวรับสัญญาณ IR แล้วกดปุ่มรีโมท รหัสฐานสิบหกสำหรับทุกปุ่มจะถูกพิมพ์บนจอภาพอนุกรม
การบันทึกข้อมูลตัวถอดรหัสระยะไกล IR ลงในแผ่นงาน Excel
ตอนนี้ในการส่งข้อมูลไปยังแผ่นงาน Excel เราจะใช้ PLX-DAQ เป็นซอฟต์แวร์ Excel Plug-in ที่ช่วยให้คุณเขียนค่าจาก Arduino ลงในแผ่นงาน Excel บนแล็ปท็อปหรือพีซีของคุณได้โดยตรง ใช้ลิงค์เพื่อดาวน์โหลดไฟล์ หลังจากดาวน์โหลดให้แตกไฟล์และคลิกที่ไฟล์. exe เพื่อติดตั้ง มันจะสร้างโฟลเดอร์ชื่อPLX-DAQบนเดสก์ท็อปของคุณ
ตอนนี้เปิดไฟล์ ' PLX-DAQ spreadsheet' จากโฟลเดอร์บนเดสก์ท็อป หากปิดใช้งานมาโครใน Excel ของคุณคุณจะเห็นบล็อกความปลอดภัยดังที่แสดงในภาพด้านล่าง:
คลิกที่ ตัวเลือก -> เปิดใช้งานเนื้อหา -> เสร็จสิ้น -> ตกลง เพื่อเปิดใช้งานมาโคร หลังจากนี้คุณจะได้รับหน้าจอต่อไปนี้:
ตอนนี้เลือกอัตราการส่งข้อมูลเป็น“ 9600” และพอร์ตที่ Arduino ของคุณเชื่อมต่อจากนั้นคลิกที่เชื่อมต่อเพื่อเริ่มการสตรีมข้อมูล ค่าของคุณควรเริ่มเข้าสู่ระบบดังที่แสดงในภาพด้านล่าง
นี่คือวิธีที่สามารถสร้างArduino IR Remote Decoderเพื่อแปลงสัญญาณรีโมท IR ให้เป็นรหัส HEX ที่เทียบเท่าได้อย่างง่ายดาย
กรอกรหัส Arduino พร้อมวิดีโอสาธิตด้านล่าง