โจทย์
- เขียนโค้ด Arduino โดยไม่ใช้คำสั่ง PulseIn() ของ Arduino แต่ให้ใช้ Timer 1 เพื่อวัดความกว้างของช่วงเวลา(ใช้ Timer1 สร้างฐานเวลาในการนับ)
- ใช้ External Interrupt 0 หรือ 1 และใช้ ISR ที่เกี่ยวข้องอ่านค่าเวลา 2 ครั้ง (ขอลขาขึ้นและขอบขาลงของสัญญาณ ECHO) แล้วนำมาคำนวณช่วงกว้างของ HIGH แล้วนำค่าที่ได้ไปคำนวฯระยะห่างจากสิ่งกีดขวาง
- ใช้ออสซิลโลสโคปดูสัญญาณทั้ง TRIG และ ECHO
- ต่อวงจรใช้งานโมดูล 16 x 2 LCD เพื่อแสดงผล
อุปกรณ์ที่ใช้ในการทดลอง
บอร์ด Arduino 1 บอร์ด
เซนเซอร์ HC-SR04 1 ชิ้น
ข้อมูลเชิงเทคนิคของเซนเซอร์ HC-SR04
Working Voltage DC 5V
Working Current 15mA
Working Frequency 40Hz
Max Range 4m
Min Range 2cm
Measuring 15 degree
Trigger Input 10uS TTL Level signal and the range in propotion
Dimention 45*20*15mm
Working Current 15mA
Working Frequency 40Hz
Max Range 4m
Min Range 2cm
Measuring 15 degree
Trigger Input 10uS TTL Level signal and the range in propotion
Dimention 45*20*15mm
ref : |
การต่อวงจร
การทำงานของโปรแกรม
ผลการทดลอง