基于Arduino的倒车雷达系统(超声波模块、蜂鸣器、RGB模块、1602显示屏)

1、概述

倒车雷达是汽车驻车或者倒车时的安全辅助装置,能以声音或者更为直观的显示告知驾驶员周围障碍物的情况,解除了驾驶员驻车、倒车和起动车辆时前后左右探视所引起的困扰,并帮助驾驶员扫除了视野死角和视线模糊的缺陷。工作原理:倒车雷达在倒车时,利用超声波原理,由装置在车尾保险杠上的探头发送超声波撞击障碍物后反射此声波,计算出车体与障碍物间的实际距离,然后提示给司机,使停车或倒车更容易、更安全。

倒车雷达主要由超声波传感器、控制器和显示器或蜂鸣器等组成

1、超声波传感器:主要功能是发出和接收超声波信号,然后将信号输入到主机里面,通过显示设备显示出来。

2、控制器:对信号进行处理,计算出车体与障碍物之间的距离及方位。

3、显示器或蜂鸣器:当传感器探知汽车距离障碍物的距离达到危险距离时,系统会通过显示器和蜂鸣器发出警报,提醒驾驶员。

对于模块不了解的,可以先看一下我们的模块教程[传送门],了解掌握模块使用方法后,再尝试本小实验。因为综合实验一般涉及多个模块,我们仅对全部使用我司产品的客户做技术支持,若只是部分使用我司产品的,我们只对我司产品部分是否有故障进行排查。

2、所需材料

1、UNO主控板:官方板 或者 国产板
2、辅助配件:面包板杜邦线
3、传感器和模块:1602显示屏(IIC版)超声波模块蜂鸣器模块RGB LED模块

3、接线

超声波模块 Arduino
TRIG D3
ECHO D4
VCC 5V
GND GND
蜂鸣器模块 Arduino
VCC 5V
GND GND
I/O D8
RGB LED模块 Arduino
GND GND
R D5
G D6
B D7
1602显示屏 Arduino
VCC 5V
GND GND
SDA A4
SCL A5

4、实验程序

/*
* 本实验仅供交流使用,代码为开源,切勿用在商业用途。
* 最终解释权归 ultirobot.com所有。
*/
#include "SR04.h"//超声波模块头文件
#include //I2C头文件
#include //I2C1602显示屏头文件
//###################################################
LiquidCrystal_I2C lcd(0x27,16,2); //调用I2C地址
//###################################################
#define TRIG_PIN 3//定义超声波模块TRIG引脚
#define ECHO_PIN 4//定义超声波模块ECHO引脚
SR04 sr04 = SR04(ECHO_PIN,TRIG_PIN);//调用函数
float a; //浮点数a
//###################################################
int ledpin1 = 5; // 定义R灯的引脚
int ledpin2 = 6; // 定义G灯的引脚
int ledpin3 = 7; // 定义B灯的引脚
int beeppin = 8; // 定义蜂鸣器的引脚
int i = 0;//变量i
//###################################################

void setup ()
{
lcd.init();//初始化显示屏 .
lcd.backlight();//点亮屏幕
lcd.print("hello,zhongbest!");//招呼语,不用可删除。
delay(500);//招呼语显示时间。
lcd.clear();//清屏
lcd.print("distance:");//显示字符:distance
lcd.setCursor(0,0);//字符显示坐标
pinMode(ledpin1,OUTPUT);//定义R灯为输出模式
pinMode(ledpin2,OUTPUT);//定义G灯为输出模式
pinMode(ledpin3,OUTPUT);//定义B灯为输出模式
pinMode(beeppin,OUTPUT);//定义蜂鸣器为输出模式
}
//###################################################

void loop()
{
a=sr04.Distance();//用浮点数a表示超声波距离
lcd.setCursor(0,1);//超声波距离显示坐标
lcd.print(a);//显示超声波距离
lcd.setCursor(5,1);//单位显示坐标
lcd.print("cm");//显示超声波距离单位
delay(100);

if(a<20) //当距离<20cm,红色R灯亮,蜂鸣器急促声。
{
setColor(0, 0, 255);//R灯参数
buzzer1();//蜂鸣器急促声参数
}
else if (a<=40) //当距离<40cm,蓝色B灯亮,蜂鸣器短促声。 { setColor(255, 0, 0);//B灯参数 buzzer2();//蜂鸣器短促声。 } else if (a>41)//当距离大于41厘米(安全距离),蜂鸣器间隔短声。
{
setColor(0, 255, 0);//G灯参数
buzzer3(); //蜂鸣器间隔短声。
}
}

//###################################################
void buzzer1()
{
tone(beeppin,900);
delay(300); //声音间隔,急促声
noTone(beeppin);
}

void buzzer2()
{
tone(beeppin,600);
delay(500); //声音间隔,短促声
noTone(beeppin);
}

void buzzer3()
{
if(i%10 == 1){
tone(beeppin,800);//间隔短声
}
else{
noTone(beeppin);
}
i++;
}

void setColor(int red, int green, int blue)
{
analogWrite(ledpin3, red);//red为共阴LED灯,255-red为共阳LED灯。
analogWrite(ledpin2, green);
analogWrite(ledpin1, blue);
//定义RGB-LED灯参数。
}

当距离大于41CM时,报警声平缓,绿灯亮。
当距离小于等于40厘米时,报警声短促,蓝灯亮。
当距离小于20厘米时,报警声急促,红灯亮(基本可以停车了)

5、相关下载

相关库文件可以去我们的wiki资料库找对应模块下载

0
分享到:

评论1

请先

  1. 按照上面步骤最终可以实现吗?
    lanlan_122019-12-02 22:57:19
原Arduino365.com域名更改为品牌域名ultirobot.com,承载内容要将更丰富,网站也进行了改版,改善阅读体验。
没有账号? 忘记密码?