极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 19051|回复: 5

用超声波传感器做的倒车雷达

[复制链接]
发表于 2016-4-25 16:51:09 | 显示全部楼层 |阅读模式
本帖最后由 vickywong 于 2016-4-25 16:55 编辑

我们家的车前面角上倒车时被蹭了一下,要是前面也有倒车雷达就好了。于是用超声波传感器做了个,准备装上。


程序是:

  1. const int trigPin =12;    //超声波trigle引脚
  2. const int echoPin=13;     //超声波echo引脚
  3. byte dist;              //超声波检测到的当前距离
  4. void setup() {
  5.   pinMode(trigPin, OUTPUT);
  6.   pinMode(echoPin, INPUT);
  7.   pinMode(7,OUTPUT);
  8.   pinMode(8,OUTPUT);
  9.   Serial.begin(9600);
  10. }
  11. void loop() {
  12.   Serial.println(dist);
  13.   {
  14.     digitalWrite(trigPin,LOW);
  15.     delayMicroseconds(2);
  16.     digitalWrite(trigPin,HIGH);
  17.     delayMicroseconds(10);
  18.     digitalWrite(trigPin,LOW);
  19.     dist=pulseIn(echoPin,HIGH)/58;  
  20.   }
  21.   if (dist<=50){  //如果距离大于50cm就开始叫唤
  22.         digitalWrite(8,HIGH);
  23.         tone(7,659);
  24.         delay(30*dist); //根据距离的远近声音持续时间变化
  25.         noTone(7);
  26.         digitalWrite(8,LOW);
  27.         delay(30*dist);  //根据距离的远近LED闪烁时间变化
  28.         }
  29.   if(dist>=50){
  30.       digitalWrite(8,LOW);  // 如果距离大于50cm就不响了
  31.       noTone(7);
  32. }
  33. }
复制代码
距离越近就滴滴叫的越快。
要是在1602显示屏上显示距离,就把1602屏接上。

带距离显示的倒车雷达程序:
  1. #include <Wire.h>
  2. #include <LiquidCrystal_I2C.h>
  3. const int trigPin =12;    //超声波trigle引脚
  4. const int echoPin=13;     //超声波echo引脚
  5. byte dist;              //超声波检测到的当前距离
  6. LiquidCrystal_I2C myLCD(0x27,16,2);
  7. void setup() {
  8.   pinMode(trigPin, OUTPUT);
  9.   pinMode(echoPin, INPUT);
  10.   pinMode(7,OUTPUT);
  11.   pinMode(8,OUTPUT);
  12. }
  13. void loop() {
  14.     digitalWrite(trigPin,LOW);
  15.     delayMicroseconds(2);
  16.     digitalWrite(trigPin,HIGH);
  17.     delayMicroseconds(10);
  18.     digitalWrite(trigPin,LOW);
  19.     dist=pulseIn(echoPin,HIGH)/58;  
  20.   if (dist<=50){
  21.         digitalWrite(8,HIGH);
  22.         tone(7,659);
  23.         delay(30*dist);
  24.         noTone(7);
  25.         digitalWrite(8,LOW);
  26.         delay(30*dist);
  27.        }
  28.   if(dist>=50){
  29.       digitalWrite(8,LOW);
  30.       noTone(7);
  31.     }
  32.     myLCD.init();
  33.     myLCD.backlight();
  34.     myLCD.setCursor(0,0);
  35.     myLCD.print(dist);
  36.     myLCD.setCursor(4,0);
  37.     myLCD.print("cm");
  38.   if(dist<=10){
  39.     myLCD.setCursor(0,1);
  40.     myLCD.print("! ! ! !");      
  41.     }
  42.   else{
  43.     myLCD.setCursor(0,1);
  44.     myLCD.print("*******");
  45.   }
  46. }
复制代码
需要说明的是:接上1602屏后,总是反应迟钝,这个UNO板的小脑袋快要算不过来了!

要是接个摄像头,能不能实现倒车影像呢?
以后可以试试。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2016-4-25 17:48:59 | 显示全部楼层
超声波测距简单,但应用到实际中,就不是这么简单了,还得考虑防水防尘,期待看到实际的安装展示。
回复 支持 反对

使用道具 举报

发表于 2016-4-25 20:56:14 | 显示全部楼层
壁障什么的还行,测距真心不准
回复 支持 反对

使用道具 举报

发表于 2016-4-26 07:28:35 | 显示全部楼层
期待看实际应用场景
回复 支持 反对

使用道具 举报

发表于 2016-4-26 11:26:14 | 显示全部楼层
别太信这个模块,有时误差很大。其实还不如搞视频呢,更实用点。
回复 支持 反对

使用道具 举报

发表于 2016-4-27 15:25:19 | 显示全部楼层
这模块稳定性不高,误差也大,玩玩还可以。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 01:56 , Processed in 0.055340 second(s), 23 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表