- วัสดุที่จำเป็น
- แผนภูมิวงจรรวม
- ไมโครคอนโทรลเลอร์ PIC:
- รหัสและคำอธิบาย
- การทำงานของเซ็นเซอร์ PIR กับไมโครคอนโทรลเลอร์ PIC:
PIR (Passive Infrared) หรือ Motion Sensor ใช้เพื่อตรวจจับการเคลื่อนไหวของร่างกายมนุษย์หรือวัตถุที่เคลื่อนไหว เมื่อใดก็ตามที่มีคนเข้ามาในช่วงของเซ็นเซอร์ PIR จะให้ High ที่ขาเอาต์พุต ก่อนหน้านี้เราได้เชื่อมต่อ PIR กับไมโครคอนโทรลเลอร์อื่น ๆ:
- Arduino Motion Detector โดยใช้ PIR Sensor
- ระบบรักษาความปลอดภัยภายในบ้าน Raspberry Pi ที่ใช้ IOT พร้อม Email Alert
- ไฟบันไดอัตโนมัติพร้อมไมโครคอนโทรลเลอร์ AVR
วันนี้เราจะง่ายต่อการเชื่อมต่อ PIR กับ PIC Microcontroller PIC16F877A ในวงจรนี้หากมีวัตถุเคลื่อนไหวบางส่วนอยู่ในช่วงของเซ็นเซอร์ PIR เสียงกริ่งจะเริ่มส่งเสียงบี๊บ
วัสดุที่จำเป็น
- PicKit 3
- เซ็นเซอร์ PIR
- PIC16F877A ไอซี
- 40 - ขายึด IC
- คณะกรรมการ Perf
- 20 MHz คริสตัล OSC
- หมุด Bergstick หญิงและชาย
- 33pf Capacitor - 2Nos, 100uf และ 10uf cap
- ตัวต้านทาน 680 โอห์ม 10K และ 560ohm
- LED สีใดก็ได้
- 1 ชุดบัดกรี
- IC 7805
- อะแดปเตอร์ 12V
- Buzzer
- การเชื่อมต่อสายไฟ
- เขียงหั่นขนม
เซ็นเซอร์ PIR:
เซ็นเซอร์ PIR มีราคาไม่แพงใช้พลังงานต่ำและใช้งานง่าย Motion Detections Sesnor เซ็นเซอร์ PIR รับเฉพาะรังสีอินฟราเรดไม่ปล่อยออกมานั่นเป็นสาเหตุที่เรียกว่า passive PIR รับรู้ถึงการเปลี่ยนแปลงของความร้อนและหากมีการเปลี่ยนแปลงจะให้สูงที่เอาต์พุต PIR Sensor เรียกอีกอย่างว่า Pyroelectric หรือ IR motion sensor
วัตถุทุกชิ้นจะปล่อยอินฟราเรดออกมาจำนวนหนึ่งเมื่อได้รับความร้อนคล้ายกับว่าร่างกายมนุษย์จะปล่อย IR ออกมาเนื่องจากความร้อนในร่างกาย อินฟราเรดสร้างขึ้นโดยทุกวัตถุเนื่องจากแรงเสียดทานระหว่างอากาศและวัตถุ ส่วนประกอบหลักของเซ็นเซอร์ PIR คือเซ็นเซอร์ Pyroelectric นอกจากนี้ BISS0001 ("Micro Power PIR Motion Detector IC") ตัวต้านทานตัวเก็บประจุและส่วนประกอบอื่น ๆ ที่ใช้ในการสร้างเซ็นเซอร์ PIR BISS0001 IC รับอินพุตจากเซ็นเซอร์และทำการประมวลผลเพื่อให้ขาเอาต์พุตสูงหรือต่ำตามนั้น
เรียนรู้เพิ่มเติมเกี่ยวกับเซ็นเซอร์ PIR ที่นี่ คุณยังสามารถปรับความไวของระยะทางและระยะเวลาที่ขาเอาต์พุตจะสูงเมื่อตรวจพบการเคลื่อนไหว มีลูกบิดโพเทนชิออมิเตอร์สองปุ่มเพื่อปรับพารามิเตอร์ทั้งสองนี้
แผนภูมิวงจรรวม
ไมโครคอนโทรลเลอร์ PIC:
ในการตั้งโปรแกรมไมโครคอนโทรลเลอร์ PIC สำหรับการเชื่อมต่อ PIRเราจำเป็นต้อง มี IDE (Integrated Development Environment)ซึ่งการเขียนโปรแกรมจะเกิดขึ้น คอมไพเลอร์ ที่โปรแกรมของเราได้รับที่แปลงเป็น MCU อ่านรูปแบบที่เรียกว่าไฟล์ HEX IPE (แบบบูรณาการโปรแกรมสิ่งแวดล้อม)ซึ่งจะใช้ในการถ่ายโอนข้อมูลไฟล์ฐานสิบหกของเราเป็น PIC MCUs ของเรา
IDE: MPLABX v3.35
IPE: MPLAB IPE v3.35
ผู้เรียบเรียง: XC8
ไมโครชิปได้มอบซอฟต์แวร์ทั้งสามนี้ให้ฟรี สามารถดาวน์โหลดได้โดยตรงจากหน้าอย่างเป็นทางการ ฉันได้ให้ลิงค์ไว้เพื่อความสะดวกของคุณ เมื่อดาวน์โหลดแล้วให้ติดตั้งบนคอมพิวเตอร์ของคุณ หากคุณมีปัญหาใด ๆ คุณสามารถ ดูวิดีโอที่ ให้ไว้ในตอนท้าย
การถ่ายโอนข้อมูลหรืออัปโหลดรหัสของเราเป็น PIC เราจะต้อง PICkit 3. PICkit 3 โปรแกรมเมอร์ / ดีบักเป็นง่ายต้นทุนต่ำดีบักในวงจรที่ถูกควบคุมโดยเครื่องคอมพิวเตอร์ที่ใช้ MPLAB IDE (v8.20 หรือสูงกว่า) ซอฟต์แวร์บน แพลตฟอร์ม Windows PICkit 3 โปรแกรมเมอร์ / ดีบักเป็นส่วนหนึ่งของชุดเครื่องมือพัฒนาวิศวกรของ นอกจากนี้เรายังต้องการฮาร์ดแวร์อื่น ๆ เช่น Perf board, Soldering station, PIC ICs, Crystal oscillators, capacitors เป็นต้น แต่เราจะเพิ่มเข้าไปในรายการของเราเมื่อเราดำเนินการผ่านบทช่วยสอนของเรา
เราจะเขียนโปรแกรม PIC16F877A ของเราโดยใช้ตัวเลือก ICSP ที่มีอยู่ใน MCU ของเรา
ในการเบิร์นโค้ดให้ทำตามขั้นตอนด้านล่าง:
- เปิด MPLAB IPE
- เชื่อมต่อปลายด้านหนึ่งของ PicKit 3 เข้ากับพีซีของคุณและปลายอีกด้านหนึ่งกับพิน ICSP ของคุณบนบอร์ด perf
- เชื่อมต่อกับอุปกรณ์ PIC ของคุณโดยคลิกที่ปุ่มเชื่อมต่อ
- เรียกดูไฟล์ Blink HEX และคลิกที่ Program
หากคุณยังใหม่กับไมโครคอนโทรลเลอร์ PIC ก่อนอื่นให้อ่านบทช่วยสอนด้านล่างเพื่อเรียนรู้วิธีการใช้งานและโปรแกรม PIC:
- เริ่มต้นใช้งานไมโครคอนโทรลเลอร์ PIC: ข้อมูลเบื้องต้นเกี่ยวกับ PIC และ MPLABX
- การเขียนโปรแกรมแรกของคุณด้วยไมโครคอนโทรลเลอร์ PIC และการตั้งค่า Configuration Bits
- ไฟ LED กะพริบพร้อมไมโครคอนโทรลเลอร์ PIC
รหัสและคำอธิบาย
ขั้นแรกเราต้องตั้งค่าบิตการกำหนดค่าในไมโครคอนโทรลเลอร์ pic จากนั้นเริ่มต้นด้วยฟังก์ชัน หลักที่เป็นโมฆะ
ในโค้ดด้านล่าง 'XC.h' คือไฟล์ส่วนหัวที่มีชื่อเรียกง่าย ๆ สำหรับพินและอุปกรณ์ต่อพ่วง นอกจากนี้เราได้กำหนดความถี่คริสตัลออสซิลเลเตอร์การเชื่อมต่อพิน PIR และ Buzzer ในโค้ดด้านล่าง
# รวม
ในการเป็นโมฆะหลัก () ' TRISB = 0x00' จะใช้ในการสั่ง MCU ที่ PORTB หมุดจะถูกใช้เป็นเอาท์พุท 'TRISC = 0xFF' จะใช้ในการสั่ง MCU ว่าขา PORTB จะถูกนำมาใช้เป็น INPUT และ 'PORTB = 0X00' ใช้เพื่อสั่งให้ MCU สร้าง OUTPUT ทั้งหมดเป็น RB3 Low
ทริสบี = 0X00; TRISC = 0Xff; พอร์ทบี = 0X00; // สร้างผลลัพธ์ทั้งหมดของ RB3 LOW
ตามรหัสด้านล่างเมื่อใดก็ตามที่ PIR ได้รับสูงเสียงกริ่งจะได้รับสูงหรือมิฉะนั้นจะยังคงปิดอยู่
while (1) // เข้าสู่วง Infinie While {if (PIR == 1) {Buzzer = 1; __delay_ms (1,000); // รอ} else {Buzzer = 0; }}}
รหัสที่สมบูรณ์พร้อมวิดีโอสาธิตจะได้รับในตอนท้ายของโครงการนี้
การทำงานของเซ็นเซอร์ PIR กับไมโครคอนโทรลเลอร์ PIC:
โครงการนี้ไม่มีการตั้งค่าฮาร์ดแวร์ที่ซับซ้อนเราใช้บอร์ดไมโครคอนโทรลเลอร์ PIC ตัวเดิมอีกครั้ง (ดังที่แสดงด้านล่าง) ซึ่งเราได้สร้างขึ้นในบทแนะนำการกระพริบ LED เพียงเชื่อมต่อโมดูลเซ็นเซอร์ PIR กับบอร์ดไมโครคอนโทรลเลอร์ PIC ของคุณ ตามแผนภาพการเชื่อมต่อ เมื่อคุณเชื่อมต่อเสร็จแล้วเพียงแค่ถ่ายโอนรหัสโดยใช้โปรแกรมเมอร์ PicKit 3 ของคุณตามที่อธิบายไว้ในบทช่วยสอนก่อนหน้าและเพลิดเพลินไปกับผลลัพธ์ของคุณ
หลังจากอัปโหลดโปรแกรมเซ็นเซอร์ PIR ก็พร้อมที่จะให้ OUTPUT เมื่อใดก็ตามที่มนุษย์หรือวัตถุที่ปล่อย IR เข้ามาในช่วงของ PIR มันจะให้เอาต์พุตสูง และขึ้นอยู่กับเอาต์พุตนั้นเสียงสัญญาณจะทำงาน หากเอาต์พุต PIR เป็นอินพุตเสียงกริ่งสูงจะสูงและในทางกลับกัน
คุณสามารถควบคุมระยะของการตรวจจับและการหน่วงเวลาได้โดยใช้โพเทนชิโอมิเตอร์สองตัวที่ติดตั้งบนโมดูล PIR หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับเซ็นเซอร์ PIR ตามลิงค์