用超声波传感器做的倒车雷达
本帖最后由 vickywong 于 2016-4-25 16:55 编辑我们家的车前面角上倒车时被蹭了一下,要是前面也有倒车雷达就好了。于是用超声波传感器做了个,准备装上。
程序是:
const int trigPin =12; //超声波trigle引脚
const int echoPin=13; //超声波echo引脚
byte dist; //超声波检测到的当前距离
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
Serial.begin(9600);
}
void loop() {
Serial.println(dist);
{
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
dist=pulseIn(echoPin,HIGH)/58;
}
if (dist<=50){//如果距离大于50cm就开始叫唤
digitalWrite(8,HIGH);
tone(7,659);
delay(30*dist); //根据距离的远近声音持续时间变化
noTone(7);
digitalWrite(8,LOW);
delay(30*dist);//根据距离的远近LED闪烁时间变化
}
if(dist>=50){
digitalWrite(8,LOW);// 如果距离大于50cm就不响了
noTone(7);
}
}
距离越近就滴滴叫的越快。
要是在1602显示屏上显示距离,就把1602屏接上。
带距离显示的倒车雷达程序:#include <Wire.h>
#include <LiquidCrystal_I2C.h>
const int trigPin =12; //超声波trigle引脚
const int echoPin=13; //超声波echo引脚
byte dist; //超声波检测到的当前距离
LiquidCrystal_I2C myLCD(0x27,16,2);
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
}
void loop() {
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
digitalWrite(trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
dist=pulseIn(echoPin,HIGH)/58;
if (dist<=50){
digitalWrite(8,HIGH);
tone(7,659);
delay(30*dist);
noTone(7);
digitalWrite(8,LOW);
delay(30*dist);
}
if(dist>=50){
digitalWrite(8,LOW);
noTone(7);
}
myLCD.init();
myLCD.backlight();
myLCD.setCursor(0,0);
myLCD.print(dist);
myLCD.setCursor(4,0);
myLCD.print("cm");
if(dist<=10){
myLCD.setCursor(0,1);
myLCD.print("! ! ! !");
}
else{
myLCD.setCursor(0,1);
myLCD.print("*******");
}
}需要说明的是:接上1602屏后,总是反应迟钝,这个UNO板的小脑袋快要算不过来了!
要是接个摄像头,能不能实现倒车影像呢?
以后可以试试。
超声波测距简单,但应用到实际中,就不是这么简单了,还得考虑防水防尘,期待看到实际的安装展示。 壁障什么的还行,测距真心不准:lol 期待看实际应用场景 别太信这个模块,有时误差很大。其实还不如搞视频呢,更实用点。 这模块稳定性不高,误差也大,玩玩还可以。。
页:
[1]