STM32 Proteus仿真汽车紧急刹车自动双闪装置车速检测-0005
Proteus仿真小实验:
STM32 Proteus仿真汽车紧急刹车自动双闪装置车速检测-0005
功能:
硬件组成:STM32F103R6单片机 +LCD1602显示器+1个红灯(刹车灯)+1个黄灯(双闪灯)+1个按键(模拟刹车)
自动双闪的意义:急刹车时车速迅速从很高的速度下降至很低的速度。如果车后面有其他车辆没有来的急反应就有追尾的风险。所以自动刹车就是在车辆速度快速降低后,自动开启黄色双闪灯以此提醒后车避让。
1.仿真中使用信号发生器模拟车速,单片机测量的脉冲信号频率即为车辆速度。
2.使用一个按键模拟刹车踏板,点击按键后开始刹车。此后如果刹车一直按下并且车速降低至刹车前70%则认为紧急刹车然后黄色LED灯闪烁。
3.不满足紧急刹车情况则不双闪。
4.任何时候只要刹车则红色LED灯(刹车灯)亮。
有功能视频哦:
可以哔哩哔哩B站,搜索UP主“单片机仿真汇”。在其空间中搜索关键词“自动双闪”即可找到对应详细功能视频和介绍。
电路图:
![](https://i-blog.csdnimg.cn/blog_migrate/fc48166b6fbbdd15f76c0c3536aa87c3.bmp)
部分源代码:
//按键扫描和处理
K1 = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11);
//刹车
if(K1==0)//满足说明 此时正在刹车
{
if(diyici==1)//第一次为1说明之前没有进入刹车(意味着要保存刹车前的速度) 0 所以已经进入刹车
{
//保存一下刹车速度
shachesudu = dangqiansudu;
//
diyici=0;//0 已经进入刹车
}
else
{
//这里开始检测
//如果当前速度小于 刹车速度的0.7,则黄灯亮,否则黄灯关闭
if(dangqiansudu<(shachesudu*0.7))
{
jjj++;
if(jjj==1)
{
//打开黄灯
GPIO_ResetBits(GPIOB, GPIO_Pin_13);
}
else
{
jjj = 0;
//关闭黄灯
GPIO_SetBits(GPIOB, GPIO_Pin_13);
}
}
}
//打开红灯
GPIO_ResetBits(GPIOB, GPIO_Pin_12);
}
else
{
diyici=1;//第一次为1说明之前没有进入刹车(意味着要保存刹车前的速度) 0 所以已经进入刹车
shachesudu = 0;//退出刹车状态,刹车速度要 //报警判断
//如果当前速度 超过设定转速,则报警
if(dangqiansudu>shedingudu)
{
//打开
FMQ = 0;
}
else
{
//关闭
FMQ = 1; }
}
}