cảm biến siêu âm srf05 có khả năng phát hiện vật cản trong tầm 1cm->4m quá

tốt để làm luận văn có liên quan đến vấn đề vật cản... http://www.robot-electronics.co.uk/images/srf05a.jpg Các chân giao tiếp như sau: http://www.robot-electronics.co.uk/images/srf05p2.jpg giản đồ điều khiển: http://www.robot-electronics.co.uk/images/srf05tma.gif

từ giản đồ ta nhận thấy: để cho sf05 hoạt động thì cần cấp 1 xung mức cao có độ rộng>=10uS trên chân Tri Sau khi nhận được xung từ chân Tri thì srf05 sẽ tạo ra 8 xung để phát siêu âm, sau khi hoàn thành việc phát 8 xung này thì srf05 sẽ kéo chân echo lên mức 1, độ rộng của mức 1 trên chân echo tương ứng với khoản cách của vật cản với srf05, nếu ko có vật cản thì nó sẽ được trả về mức 0 sau 30ms( ở đây nhiều bạn hiểu sai là khi có vật cản thì srf05 mới trả về 1 xung mức cao có độ rộng từ 100uS ->30mS tương ứng với khoảng cách)

Đặc biệt là srf05 chỉ có thể nhận xung trên chân Tri tối đa là 20Hz, cho nên việc kích xung trên chân Tri phải phù hợp thì srf05 mới hoạt động chính xác.

chương trình này mình viết cho 89 và đã test với srf05, kết quả chạy chính xác với độ chia là 1cm, các bạn có thể tham khảo thử nha: #include<at89x52.h> #include<lcd.c>//down load (http://www.megaupload.com/?d=BQAJS55Z) unsigned char array[5]; void inter() interrupt 0 { unsigned int time_return; char i; TR0=0; time_return=(TH0<<8)|TL0; time_return=(time_return-15535)/58; TR0=1;

P3_2=1. int_lcd().i>=0.for(i=0. } dat_str(":cm"). while(1) { } } . TR0=1. P1_0=0.i--) { dat(array[i]+48).i<5. time_return/=10. TL0=0xaf. EX0=1. IT0=1. } mov(1.i++) { array[i]=time_return%10. } void time() interrupt 1 { unsigned char i. for(i=4. } void main() { TMOD=1. TH0=0x3c.i++). TR0=0. ET0=1. while(!P3_2).i<3. for(i=0. TL0=0xaf.5). TH0=0x3c. P1_0=1. TR0=1. dat_str("Time xung tra ve"). EA=1.

2 chân Trigger và Echo là 2 chân dùng để giao tiếp với VĐK. 1. Và hình như theo mình đọc được thì sau khi kết thúc xung Trigger đưa vào thì khoảng 700uS sau xung Echo mới bắt đầu lên mức 1.c down ở trên. 2. Theo ý kiến của mình sau khi tìm hiểu là như vậy. là chân số 3. còn ở mode 2 thì xung Trigger và Echo lần lượt đưa vào và xuất ra đều ở cùng 1 chân. chân Tri nối vào P1_0. Chân Trigger là chân nhận xung từ VĐK. tuy nhiên khi ở mode 1 thì xung Trigger đưa vào 1 chân. Sau khi xung thứ 8 phát ra thì chân Echo bắt đầu lên mức 1. Sau khi có xung điều khiển này thì mạch của cảm biến sẽ phát ra 8 xung có tần số siêu âm ra con phát. nếu có gì sai thì mong mọi người bổ sung giúp! . Độ dài của xung điều khiển nhỏ nhất là 10uS. xung Echo xuất ra 1 chân riêng biệt. Thời gian ở mức 1 của chân Echo là từ 100uS tới 25mS tùy vào vị trí của vật cản. Nếu không có vật cản thì sau 30mS chân Echo sẽ từ mức 1 xuống mức 0. 2 chân Trigger và Echo ở 2 mode đều có nhiệm vụ như nhau. nếu vật cản càng gần thì độ dài của xung từ chân Echo càng ngắn. các chân lcd 16x2 thì sửa lại theo ý bạn trong file lcd.chân echo nối vào P3_2.

Sign up to vote on this title
UsefulNot useful