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

STM32项目分享:基于单片机的自行车测速系统设计

“我们不做一锤子买卖,只做技术成长的长期伙伴!”

目录

一、视频展示

二、项目简介

三、原理图设计

四、PCB硬件设计

五、程序设计

六、资料分享


一、视频展示

基于单片机的自行车测速系统设计 -视频分享

二、项目简介

题目:基于单片机的自行车测速系统设计
主控:STM32
显示:OLED显示屏
DHT11温湿度传感器
蓝牙模块
按键模块
光电开关
功能:
1、实时监测当前速度数据,温湿度数据。
2、按键查看数据信息。
3、光电开关监测当前速度数据。
4、蓝牙连接手机后,可手机控制单片机,并接收单片机数据。
5、屏幕实时显示当前温湿度,速度数据信息。

三、原理图设计

四、PCB硬件设计

五、程序设计

#include "stm32f10x.h"                  // 设备头文件
#include "delay.h"                      // 延迟函数库
#include "lcd.h"                        // LCD显示库
#include "dht11.h"                      // DHT11传感器库
#include "IOput.h"                      // 输入输出控制库
#include "usart.h"                      // 串口通信库
#include "adc.h"                        // ADC转换库
#include "MOTOR.h"                      // 电机控制库
#include "timer.h"                      // 定时器库u8 on_flag, speed, real_speed, cesu_flag, count, speed_flag; // 定义标志和速度相关变量
u8 show_flag, show1_flag;               // 定义显示标志
float yali, count1, count2, max_TY = 3, dec_TY = 0.2; // 定义胎压和计数变量u8 max_wd = 40,max_sd = 60;void wifi(){if(res=='a'){OLED_Clear();res=0;set_flag=1;}else if(res=='b'){res=0;add_flag=1;}else if(res=='c'){res=0;dec_flag=1;}}int main (void)
{delay_init();                       // 初始化延时函数NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); // 设置中断优先级组Adc_Init();                         // 初始化ADCOLED_Init();                        // 初始化OLED显示屏delay_ms(1);                        // 延时1msOLED_Clear();                       // 清屏output_init();                      // 初始化输出input_init();                       // 初始化输入Usart1_Init(9600);                  // 初始化串口1,波特率9600DHT11_Init();motor_init();                       // 初始化电机
//    TIM_PWM_Init(100, 8);               // 初始化PWM定时器TIM2_Int_Init(71, 9999);            // 初始化定时器2while(1){wifi();DHT11_Read_Data(&temp,&humi);count++;delay_ms(10);key_scan(1, 0, 0);              // 扫描按键if(set_flag == 1 && show_flag != 1){show1_flag = 0;OLED_Clear();set_flag = 0;show_flag++;if(show_flag >= 2){show_flag = 0;}}if(show_flag == 0){yali = 2.5 - Get_Adc_Average(1, 10) * 2.5 / 4096; // 读取并计算胎压值OLED_ShowCH(0, 0, "  自行车测速系统 ");OLED_ShowCH(0, 2, "温度:");OLED_Showdecimal(40, 2, temp, 2, 1, 16);OLED_ShowCH(0, 4, "湿度:");OLED_ShowNum(40, 4, humi, 2, 16);OLED_ShowCH(0, 6, "转速:");OLED_Showdecimal(40, 6, count2, 3, 1, 16);OLED_ShowCH(80, 6, "转/min");OLED_ShowCH(64, 4, "电机:");if(speed != 0){OLED_ShowCH(104, 4, "开");}else{OLED_ShowCH(104, 4, "关");}if(GD == 1)                  // 如果检测到速度传感器信号{TIM_Cmd(TIM2, ENABLE);   // 使能定时器2if(time_count >= 100){count1++;time_count = 0;}}else if(GD == 0){TIM_Cmd(TIM2, DISABLE);  // 关闭定时器2count2 = 60 / (count1 + (float)time_count / 100); // 计算转速time_count = 0;count1 = 0;}}if(show_flag == 1){OLED_ShowCH(0, 0, "最高温度:");OLED_ShowCH(0, 2, "最高湿度:");OLED_ShowNum(72, 0, max_wd, 2,16);OLED_ShowNum(72, 2, max_sd, 2,16);if(set_flag == 1){set_flag = 0;show1_flag++;if(show1_flag >= 2){show_flag = 0;    OLED_Clear();}}if(show1_flag == 0){OLED_ShowCH(112, 0, "←");if(add_flag == 1){add_flag = 0;max_wd++;}if(dec_flag == 1){dec_flag = 0;max_wd--;}if(max_wd >= 100 || max_wd <= 0){max_wd = 0;}}if(show1_flag == 1){OLED_ShowCH(112, 2, "←");if(add_flag == 1){add_flag = 0;max_sd++;}if(dec_flag == 1){dec_flag = 0;max_sd--;}if(max_sd >= 100 || max_sd <= 0){max_sd = 0;}}}if(count >= 50){count = 0;UsartPrintf(USART1, "转速:%f\r\n", count2);UsartPrintf(USART1, "温度:%d\r\n", temp);UsartPrintf(USART1, "湿度:%d\r\n", humi);UsartPrintf(USART1, "\r\n\r\n");}}
}

六、资料分享

点击即可查看当前资料分享。

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

相关文章:

  • Win11 压缩实测:Win11 的压缩软件的最佳配置和使用方式
  • 网站酷炫换皮肤?——PC 端 H5 换肤方案实战分享
  • WebGIS开发智慧校园(8)地图控件
  • A股大盘数据-20250829 分析
  • 03.《交换的底层逻辑:从基础到应用》
  • vue3中安装tailwindcss
  • ​​字节跳动重磅开源 Seed-OSS 大模型系列,12T tokens训练,原生支持512K长上下文​
  • python 2025/7/28
  • 【完整源码+数据集+部署教程】工地建筑进度监测系统源码和数据集:改进yolo11-SDI
  • 【笔记】扩散模型(一二)U-ViT|Diffusion with Transformer
  • 智慧园区系统:基于Java微服务架构与全栈信创国产化的数字化赋能平台
  • 人工智能一些基础概念与应用场景学习笔记
  • C++基础(③反转字符串(字符串 + 双指针))
  • solidity地址、智能合约、交易概念
  • Pointer--Learing MOOC-C语言第九周指针
  • 鸿蒙地址选择库(ArkTs UI)
  • Idea2025.2 MybatisX插件失效问题
  • Suno-API - OpenI
  • 【计算机网络】前端基础知识Cookie、localStorage、sessionStorage 以及 Token
  • 04.《VLAN基础与配置实践指南》
  • 掌握 Linux 文件权限:chown 命令深度解析与实践
  • css绘制三角形
  • 软件开发准则
  • 隧道搭建技术
  • 零成本解锁 Cursor Pro:虚拟卡白嫖1个月+14天试用全攻略
  • 鬼泣:索定系统
  • 基于能量方法的纳维-斯托克斯方程高阶范数有界性理论推导-陈墨仙
  • Java接口和抽象类的区别,并举例说明
  • Coze智能体小练习-根据主题生成小红书宣传图片
  • (十一)ps识别: epoch 训练日志解析