เพื่อนของฉันและฉันต้องการออกแบบรีโมทควบคุมการเรียนรู้สากลเช่นนี้เพื่อการเรียนรู้ สิ่งที่เราต้องการทำโดยทั่วไปคือการจัดเก็บและเล่นซ้ำพัลส์อินฟราเรด
เราต้องการตรวจจับสัญญาณ 36kHz, 38kHz และ 40kHz สัญญาณ 40kHz จะมีระยะเวลา 25 s
เราต้องการใช้ไมโครคอนโทรลเลอร์ PIC 8 บิตตอนนี้เราได้เลือก PIC16F616 ซึ่งจะทำงานที่ออสซิลเลเตอร์คริสตัลความเร็วสูง 20MHz เรามีสองตัวเลือกให้เลือก:
- ใช้
Interrupt On Change
โมดูล - ใช้โหมดถ่ายภาพของโมดูล CCP
ตัวเลือกแรกจะเป็นดังนี้:
unsigned char _10_us = 0;
สมมติลงทะเบียนถูกตั้งค่าเป็น: การลงทะเบียนนี้จะถือเวลา โมดูล TMR2 พร้อมการลงทะเบียนช่วงเวลาถูกตั้งค่าเพื่อสร้างการขัดจังหวะทุกๆ 10วินาที เมื่อมีการขัดจังหวะจะเพิ่มการลงทะเบียนและออก สิ่งนี้จะให้เวลาสูงสุด 2.55msec หากต้องการการวัดเวลามากขึ้นการลงทะเบียนเพิ่มเติมเช่นสามารถกำหนดและเพิ่มขึ้นได้ตามต้องการ_10_us
_1_ms
ตอนนี้ทุกครั้งที่มีการขัดจังหวะจากการเปลี่ยนแปลงใด ๆ (สูงไปต่ำหรือต่ำไปสูง) โปรแกรมจะบันทึกเวลาปัจจุบันซึ่งเป็นค่าของการ_10_us
ลงทะเบียน หลังจากผ่านไปครู่หนึ่งเมื่อมีการสร้างอินเทอร์รัปต์ครั้งต่อไปโปรแกรมจะลบค่าที่บันทึกไว้จาก_10_us
รีจิสเตอร์และตอนนี้จะเป็นเวลาที่ใช้ในระหว่างนี้ด้วยหน่วย 10วินาที
ตัวเลือกนี้ทำให้ฉันเกาหัวของฉัน; TMR2 อินเตอร์รัปต์จะเกิดขึ้นประมาณ 50 คำสั่ง การจัดการขัดจังหวะจะใช้เวลาประมาณ 20 คำสั่ง ฉันเหลือ 30 คำแนะนำในการคำนวณและบันทึกระยะเวลาในอาร์เรย์ วิธีนี้จะใช้ได้ไหม
ตัวเลือกที่สองจะเป็นดังนี้:
ตั้งค่าโหมดถ่ายภาพของโมดูล CCP เพื่อให้เกิดการอินเตอร์รัปต์เมื่อเกิดเหตุการณ์ (สูงไปต่ำ) บน CCP1 ในชุดคำสั่งขัดจังหวะมันจะตั้งค่าสถานะเพื่อให้งานในโปรแกรมสามารถคำนวณ (ถ้าจำเป็น) และบันทึกค่าของ CCPR1H (อาจจะไม่จำเป็นต้องใช้) และ CCPR1L จากนั้นเราจะเปลี่ยนการกำหนดค่าของโหมดถ่ายภาพเพื่อให้เกิดการขัดจังหวะเมื่อเกิดขอบต่ำถึงสูง แล้วมันจะรอเหตุการณ์ถัดไป ฉันไม่สามารถประเมินประสิทธิภาพของวิธีนี้ได้เนื่องจากไม่เคยใช้
ตัวเลือกอื่น
เราสามารถใช้ IC demodulator อินฟราเรดเช่นซีรีย์TSOP17xx นั่นจะช่วยแก้ปัญหาของเราได้อย่างสมบูรณ์ อย่างไรก็ตามคำถามบางอย่างอยู่ในใจ
ความต้องการระยะทางในการอ่านของเรานั้นไม่มาก 1 เมตร (~ 3 ฟุต) ถ้าเราเลือก TSOP1738 ที่มีความหมายที่จะได้ทำงาน 38kHz, วิธีเดียวจะทำงานนี้กับ 36kHz 40kHz และสัญญาณ?
หน้า 4 ของแผ่นข้อมูลของชุด TSOP17xx แสดงกราฟ "การพึ่งพาความถี่ของการตอบสนอง" เท่าที่เราเข้าใจ
- 40kHz ซึ่งเป็น ~ 1.053 จาก 38kHz จะให้การตอบสนองสัมพัทธ์ ~ 0.6
- 36kHz ซึ่งเป็น ~ 0.95 จาก 38kHz จะให้การตอบสนองสัมพัทธ์ของ ~ 0.65
ค่าเหล่านี้หมายความว่าอย่างไร เราสามารถใช้ TSOP1738 และใช้ได้หรือไม่