当前位置: 首页 > news >正文

基于stm32汽车雨刮器控制系统设计

  一.硬件方案


本设计主要由STM32F103C8T6单片机最小系统板+LCD1602液晶显示模块+水流量传感器+雨滴传感器模块+光强检测电路+压力传感器模块+舵机驱动电路+蓝牙模块+电源开关构成;

二.设计功能

  • 采用LCD1602液晶显示屏显示当雨水量、是否有雨、舵机转速、压力值;
  • 通过雨水传感器实时监测是否有雨,自动/手动启动雨刮器(舵机);
  • 水流量传感器检测雨水量大小,自动模式下:根据雨水量大小自动调节雨刮器(舵机)三档转速;采集雨刮器作用于汽车玻璃的压力值,触发阈值进行报警;
  • 按键可手动控制雨刮器三档转速;按键1:模式切换;按键2:设置键;按键3:数值加1/加档;按键4:数值减1/减档;
  • 无线通信连接手机APP,显示信息,手动控制雨刮器开关与三档转速。
  • APP控制指令:“A”:获取传感器数据;“M”:切换控制模式;“B”:切换雨刮器档位;

三.软件设计

        主程序源码

/****************主函数***************/
int main(void){ delay_init();	    	 //延时函数初始化	  uart_init(9600);	 	//串口初始化为9600TIM3_Int_Init(499,7199);//50ms NVIC_Configuration();	  LED_Init();		  		//初始化与LED连接的硬件接口KEY_Init();EXTIX_Init();		//外部中断初始化Adc_Init();motor_Init();Lcd_GPIO_init();  //初始化lcd引脚Lcd_Init();		  //初始化lcd屏幕Lcd_Puts(0,0, "    WELCOME    ");HX711_GPIO_Init();To_Zero(); buzzer = 0; //硬件动作下delay_ms(1000);buzzer = 1; //关闭while(1){		key_handle(key);APP_handle();if(disFlag==1)					//显示{disFlag = 0;	get_weight();  //获取压力数据rain=Get_Adc_Average(9,10); //获取雨滴量if(set==0)display();  //更新显示屏数据t_1s++;if(level>0){if(speed>0)    //计算舵机档位{speed--;}else {if(window_flag==0)motor_open();    //舵机正转else if(window_flag==1)motor_close(); //舵机反转if(level==1)  //档位计算{speed=15;}else if(level==2){speed=7;}else if(level==3){speed=0;}}}if(t_1s>10){t_1s=0;APP_Update();if(weight>setweight){if(buzzer_state==0)buzzer=1;elsebuzzer=0;}else{buzzer=1;}}if(mode==AUTO){calculate_level();  //计算舵机档位}dealLiuliang();//处理数据		}	}											    
}	

链接:https://pan.baidu.com/s/1cEhnSmCRhxPY0NZejNvxLQ 提取码: d9fm

http://www.dtcms.com/a/347959.html

相关文章:

  • Java基础第3天总结(面向对象)
  • Shell Case 条件语句详解
  • EP01:【DA】数据分析的概述
  • 01Shell脚本入门:基础命令与变量解析
  • JVM之【类加载系统】
  • 【Qt开发】常用控件(六)
  • Golang云端编程深度指南:架构本质与高阶实践
  • Flink Slot 不足导致任务Pending修复方案
  • 互联网大厂Java面试实录:从Spring到微服务的全面考察
  • 【软件安全】ARM64、x86、32 位与 64 位架构的区别、定义、应用背景
  • 个人搭建小网站教程(云服务器Ubuntu版本)
  • 【数据结构】二叉树的顺序存储、堆的实现及其应用:堆排序与Top-K问题
  • 以国产IoTDB为代表的主流时序数据库架构与性能深度选型评测
  • kanass V1.1.4版本发布,支持Mysql数据库、ubuntu安装与Mantis数据导入
  • Thonny+MicroPython搭建ESP32芯片开发环境
  • 代码性能测试——benchmark库
  • Elasticsearch Ruby 客户端故障排查实战指南
  • AI与SEO关键词协同优化
  • DBeaver连接SQL Server集成认证问题解决方案
  • xxl-job 启动后导致pod内存使用率持续增加
  • 从 Unity UGUI 到 Unreal UMG 的交互与高效实践:UI 事件、坐标系适配与性能优化
  • MATLAB 与 Simulink 联合仿真:控制系统建模与动态性能优化
  • C#_gRPC
  • RabbitMQ--消费端异常处理与 Spring Retry
  • 阿里云拉取dockers镜像
  • 在JavaScript中,比较两个数组是否有相同元素(交集)的常用方法
  • 今日科技热点 | AI加速创新,5G与量子计算引领未来
  • wpf之DockPanel
  • 3D打印机管理后台与RabbitMQ集成的业务场景
  • RabbitMQ面试精讲 Day 29:版本升级与平滑迁移