欢迎光临
我们一直在努力

基于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、实验程序

/*
  * 本实验仅供交流使用,代码为开源,切勿用在商业用途。
  * 最终解释权归 arduino365.com所有。
  */
#include "SR04.h"//超声波模块头文件
#include <Wire.h> //I2C头文件
#include <LiquidCrystal_I2C.h>//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、相关下载

库文件

未经允许不得转载:Arduino-Maker » 基于Arduino的倒车雷达系统(超声波模块、蜂鸣器、RGB模块、1602显示屏)

支付宝扫码打赏 微信打赏

原创文章,若帮到您,欢迎打赏

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

线上商城

中贝斯特创客空间蘑菇云创客教育