|
|
本帖最后由 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板的小脑袋快要算不过来了!
要是接个摄像头,能不能实现倒车影像呢?
以后可以试试。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|