停车雷达传感器
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
关于这个项目
嗨,这个项目是关于一个 DIY 停车雷达传感器,它很容易制作,它基于 HC SR-04 超声波传感器,我使用了其中的 3 个:每侧一个,中间一个,然后是 2 个 mini电池显示,实际上是为了向您显示电池的状态,但在这里我使用它来显示传感器和障碍物之间的距离,具体取决于哪一侧,还取决于您可以设置的最大距离, 高于该距离,它总是被认为有足够的空间,低于该距离,显示将根据该距离及其方向而变化。
零件
这些是我使用的部件,如果需要,您可以添加一些跳线和面包板。 (电池显示基于TM1651芯片)
图> 图> 图>
工作
有 3 个超声模块:右、中和左,以及两个显示:右和左。中间传感器可以影响两个显示器,但其他两个只能影响它们各自的侧面。
例如有两个障碍 , 一个在右侧,一个在中间,代码将取最近的 将其显示在显示屏上。
如果中间是最近的 两个显示器都会根据距离而变化。
如果右侧是最近的 右侧显示会发生变化并低于左侧。
您可以从代码中设置一个最大距离,超过该距离被认为是安全的,显示屏将全亮,低于该距离,显示屏开始变化,并且与最大距离成正比。
示例
这里有几个案例,方便解释
图> 图> 图>如果您在中间和右侧(右侧更近)或左侧和右侧(右侧更近)或所有侧面(右侧更近)有障碍物,则可能发生最后一种情况。
改进:
- 您可以添加其他传感器以覆盖大面积
- 添加显示距离值的屏幕
- 把传感器换成防水的,比如 JSN SR-04
- 添加声音
代码
- Parking_sensor_v1.ino
Parking_sensor_v1.inoArduino
/* 此代码适用于 HC-SR04 超声波模块 x3 和 TM1651 电池显示器 x2 * 该项目是一个停车传感器,可显示障碍物的距离和距离 * 取决于其上方的 Maxdistance显示器将显示为安全距离 * 下面它开始改变 * 有关更多详细信息,请参阅 www.SurtrTech.com */#include#define CLK 3 //Right display Wiring #define DIO 2#define CLK2 5 //左显示接线#define DIO2 4#define trigPin 6 //超声波模块接线 R=Right L=Left 另一个是中间#define echoPin 7#define trigPinR 8#define echoPinR 9#define trigPinL 10#define echoPinL 11 #define Maxdistance 20 //最大距离20cmlong duration; int距离;TM1651 DisplayR(CLK,DIO); //显示实例TM1651 DisplayL(CLK2,DIO2);void setup() { pinMode(trigPin, OUTPUT); // HC-SR04 的引脚模式并启动显示 pinMode(echoPin, INPUT); pinMode(trigPinR,输出); pinMode(echoPinR,输入); pinMode(trigPinL,输出); pinMode(echoPinL, INPUT); DisplayR.init(); DisplayR.set(BRIGHTEST); DisplayL.init(); DisplayL.set(BRIGHTEST);}void loop() { int distanceM =CDistance(trigPin,echoPin); //通过调用下面的函数计算所有距离 int distanceR =CDistance(trigPinR,echoPinR); int distanceL =CDistance(trigPinL,echoPinL); int R=min(distanceM,distanceR); //我们有两个显示器R和L,首先我们取M/R和M/L之间的最小距离 int L=min(distanceM,distanceL); if(R>0 &&R Maxdistance) //我们很安全,显示器总是显示有足够的空间 DisplayR.displayLevel (7); if(L>0 &&L Maxdistance) DisplayL.displayLevel(7); delay(50);}int CDistance(int a, int b){ //计算距离函数,需要两个参数(Trigger和Echo),执行HC-SR04 digitalWrite(a, LOW)的一般流程;延迟微秒(2);数字写入(a,高);延迟微秒(10);数字写入(a,低);持续时间 =脉冲输入(b,高);距离=持续时间*(0.034/2);返回距离; //返回计算出的距离}
TM1651 电池显示库
图书馆让工作变得如此简单https://github.com/ne0x/fuel_display示意图
制造工艺