STM32小项目———感应垃圾桶

文章目录

  • 前言
  • 一、超声波测距
    • 1.超声波简介
    • 2.超声波测距原理
    • 2.超声波测距步骤
  • 二、舵机的控制
  • 三、硬件搭建及功能展示
  • 总结


前言

一个学习STM32的小白~ 有问题请评论区或私信指出


提示:以下是本篇文章正文内容,下面案例可供参考

一、超声波测距

1.超声波简介

超声波传感器模块上面通常有两个超声波元器件,
。一个用于发射,一个用于接收。
电路板上有四个引脚:VCC GND Trig(触发),Echo(回应)

主要参数:
工作电压与电流:5V,15mA
感应距离: 2~400cm
感测角度:不小于15°
被测物的面积不要小于50cm并且尽量平整
具备温度补偿电路

在这里插入图片描述

2.超声波测距原理

超声波模块的触发脚(Trig)输入10us以上的高电位,即可发射超声波,发射超声波后,与接收到传回的超声波之前,”响应”脚(Echo)位呈现高电平。因此,程序可以从”响应”脚位(Echo)的高电平脉冲持续时间,换算出被测物的距离。

距离公式:高电平持续时间 * 声速(340/秒)/2
在这里插入图片描述

2.超声波测距步骤

1.配置GPIO引脚结构体(Trig,Echo)。
2.配置定时器结构体
3.配置定时器中断结构体
4.开启时钟(定时器,GPIO)
5.Tria引脚输出高电平(10us以上),然后关闭
6.等待Echo引脚输入高电平开始,定时器打开–>开启计数器计数
7.等待Echo引脚输入高电平结束,定时器关闭—>停止计数器计数
8.通过计数器的值计算得出超声波测量距离

#include "HCSR04.h"
#include "stm32f10x.h"                  // Device header
#include "SysTick.h"
uint32_t ms_Count = 0;#define Trig_Value_High  GPIO_SetBits(GPIOB,GPIO_Pin_11)
#define Trig_Value_LOW  GPIO_ResetBits(GPIOB,GPIO_Pin_11)#define Echo_Read  GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_10)void HCSR04_Config(void)
{GPIO_InitTypeDef  HCSR04_Structure;TIM_TimeBaseInitTypeDef  TIM4_Structure;NVIC_InitTypeDef nvic_Structure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);//TrigHCSR04_Structure.GPIO_Mode = GPIO_Mode_Out_PP;HCSR04_Structure.GPIO_Pin = GPIO_Pin_11;HCSR04_Structure.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB,&HCSR04_Structure);//EchoHCSR04_Structure.GPIO_Mode = GPIO_Mode_IN_FLOATING;HCSR04_Structure.GPIO_Pin = GPIO_Pin_10;GPIO_Init(GPIOB,&HCSR04_Structure);TIM4_Structure.TIM_ClockDivision = TIM_CKD_DIV1;TIM4_Structure.TIM_CounterMode = TIM_CounterMode_Up;TIM4_Structure.TIM_Period = 1000-1;TIM4_Structure.TIM_Prescaler =72-1;TIM4_Structure.TIM_RepetitionCounter = 0;TIM_TimeBaseInit(TIM4,&TIM4_Structure);TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE);TIM_Cmd(TIM4,DISABLE);NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);nvic_Structure.NVIC_IRQChannel = TIM4_IRQn;nvic_Structure.NVIC_IRQChannelPreemptionPriority = 0;nvic_Structure.NVIC_IRQChannelSubPriority = 0;nvic_Structure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&nvic_Structure);}void open_TIM4(void)
{TIM_SetCounter(TIM4,0);//初始化CNT = 0ms_Count = 0;//计时器 = 0TIM_Cmd(TIM4,ENABLE);
}void close_TIM4(void)
{TIM_Cmd(TIM4,DISABLE);
}int Get_timeCount(void)
{uint32_t t_Count;t_Count = ms_Count*1000;//毫秒化微妙t_Count += TIM_GetCounter(TIM4);//加上当前CNT值TIM4->CNT = 0;//CNT置0delay_ms(50);return t_Count;
}float GetLenth(void)
{uint32_t time = 0;uint16_t i = 0;float lenth = 0;float sum = 0;while(i != 5)//取五次测距结果{Trig_Value_High;//发射20us超声波delay_us(20);Trig_Value_LOW;while(Echo_Read == 0);//等待Echo接收反射波open_TIM4();//接收到反射波打开定时器i = i+1;//记录次数while(Echo_Read == 1);等待Echo接收的反射波停止close_TIM4();//关闭定时器time = Get_timeCount();//获取反射波持续时间lenth = ((float)time/58.3);//计算距离cm/ussum += lenth;}lenth = sum/5.0;return lenth;
}void TIM4_IRQHandler(void)
{if( TIM_GetITStatus(TIM4,TIM_IT_Update) != RESET){ms_Count++;//每次中断代表1ms过去了TIM_ClearITPendingBit(TIM4,TIM_IT_Update);}}

二、舵机的控制

本文讲述舵机控制电机方法点击直达

三、硬件搭建及功能展示

如图:

在这里插入图片描述

在这里插入图片描述


总结

局部变量初值一定不要忘记~~ 切记!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/31708.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Studying-代码随想录训练营day16| 513找到左下角的值、112.路径总和、106从中序与后序遍历序列构造二叉树

第十六天,二叉树part03💪💪💪,编程语言:C 目录 513找到左下角的值 112.路径总和 113.路径总和II 106从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树 总结 513找到左下角的值…

[240621] Anthropic 发布了 Claude 3.5 Sonnet AI 助手 | Socket.IO 拒绝服务漏洞

目录 Anthropic 发布 Claude 3.5 Sonnet AI 助手Scoket.IO 拒绝服务漏洞(CVE-2024-38355) Anthropic 发布 Claude 3.5 Sonnet AI 助手 Claude 3.5 Sonnet: 更智能、更快速、更安全的 AI 助手 一、 引言 Anthropic 发布了 Claude 3.5 Sonnet&#xff0…

慢阻肺患者为何容易营养不良?朗格力教你轻松改善

#肺科营养#朗格力#班古营养#复合营养素#肺部营养#肺部健康# 慢阻肺是我国常见的、高患病率的慢性呼吸系统疾病,会对肺结构和功能产生影响,从而引起各种不良反应,其中营养不良是常见并发症之一。慢阻肺为什么会发生营养不良?营养不良又是怎么伤害慢阻肺的呢?为什么像班古精准…

鸿蒙开发:【进程模型概述】

进程模型概述 系统的进程模型如下图所示: 应用中(同一包名)的所有PageAbility、ServiceAbility、DataAbility、FormAbility运行在同一个独立进程中,即图中绿色部分的“Main Process”。 WebView拥有独立的渲染进程,即…

什么是光子带隙光纤?

长期以来,光纤通信的发展受到纤芯材料特性的限制,特别是损耗特性。二氧化硅在可见光至近红外波长范围内损耗低,与激光器工作波长相匹配,因此成为长途电信应用中光纤纤芯的首选材料。 这类光纤的纤芯是实心的,传输原理是基于全内反射(Total Internal Reflection, TIR),其…

ServBay 下一代Web开发环境

ServBay是一个集成式、图形化的本地化Web开发环境。开发者通过ServBay几分钟就能部署一个本地化的开发环境。解决了Web开发者(比如PHP、Nodejs)、测试工程师、小型团队安装和维护开发测试环境的问题,同时可以快速的进行环境的升级以及维护。S…

Docker:认识Docker Host/Container/none网络

文章目录 Docker Host网络认识Docker Host网络实际操作网络模式区别使用场景 Docker Container网络认识Docker Container网络操作实例使用场景 Docker None网络使用场景 Docker Host网络 认识Docker Host网络 Docker容器运行默认会分配独立的Network Namespace隔离子系统&…

不破不立,B站终于跳出“舒适圈”?

哔哩哔哩已经很久没有这么振奋人心的时刻了。 6月19日,哔哩哔哩当日股价涨超18%,最高达到145.6元每股,时隔11个月,再次回归高位。从时间线上看,这次的股价大涨明显与哔哩哔哩刚(以下简称“B站”&#xff0…

基于单电阻采样的电流重构

1. 单电阻采样电流重构原理 图1(a)所示是电压型三相逆变器,定义三相开 关信号为 Sa 、Sb 、Sc 。当 Sa = 1 表示A相上桥臂导 通,下桥臂关断;Sa = 0 表示相反。三相逆变器采用 SVPWM调制方式控制,有8种开关工作状态,包括 6个非零电压矢量V1 ~ V6 和2个零电压矢量V0 、V7…

约束求解器方案设计

1.约束求解介绍 给定一个几何对象(点、直线段、圆、圆弧、平面等)的集合G和一个关于集合G中几何对象之间约束(点的位置、直线段的长度、圆弧对应的圆心角角度、垂直、相切等) 的集合C,则在二元组(G,C)中根…

入门Ansible常用模块

自动化运维Devops-Ansible Ansible是新出现的自动化运维工具,基于Python 开发,集合了众多运维工具(puppet 、cfengine、chef、func、fabric)的优点,实现了批量系统配置 、批量程序部署、批量运行命令 等功能。Ansible…

58-DOS与DDOS分析(正常TCP会话与SYN Flood攻击、ICMP Flood 攻击、SNMP放大攻击等)

目录 正常 TCP 会话与 SYN Flood 攻击 1、正常的三次握手过程: 2、 SYN Flood 攻击 一、攻击windows系统: 二、攻击web网站 : 拒绝服务攻击工具-Hping3-Syn Flood 攻击 拒绝服务攻击工具--Hping3--ICMP Flood 攻击 sockstress攻击 So…

不在枯燥用第三方库简化你的编程之路

简介: Python作为一种多用途的编程语言,得益于其丰富的第三方库和框架,极大地拓展了其功能和应用领域.这些工具不仅提升了开发效率,也使得Python在各个领域展现出色的表现. 今天我们就来聊一聊Python 第三方库是由第三方开发者编写并共享的库,可用于扩展 Python 的…

Unity【入门】光源、物理、音效系统

核心系统 文章目录 核心系统1、光源系统基础1、光源组件2、光面板相关 2、物理系统之碰撞检测1、刚体 RigidBody2、碰撞器 Collider3、物理材质4、碰撞检测函数5、刚体加力 3、音效系统1、音频文件导入2、音频源和音频监听器脚本3、代码控制音频源4、麦克风输入相关 1、光源系统…

智慧办公新篇章:可视化技术引领园区管理革命

随着科技的飞速发展,办公方式也在经历着前所未有的变革。在这个信息爆炸的时代,如何高效、智能地管理办公空间,成为了每个企业和园区管理者面临的重要课题。 智慧办公园区作为未来办公的新趋势,以其高效、便捷、智能的特点&#x…

Redis 7.x 系列【2】单机部署

有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. Windows2. Linux 1. Windows Redis作为一个高性能的内存数据库,和Linu…

数据结构6---树

一、定义 树(Tree)是n(n>0)个结点的有限集。当n0时成为空树,在任意一棵非空树中: 1、有且仅有一个特定的称为根(Root)的结点; 2、当n>1时,其余结点可分为m(m>日)个互不相交的有限集T1、T2、...、 Tm,其中每一个集合本身又是一棵树,并且称为根的…

Ant Design Vue Cascader 级联选择 错位问题

当Cascader 多个的时候 对应的下列会错位 如果滚动 他不会跟着元素 而是会跟着屏幕滚动&#xff0c;如下效果 解决方法 在Cascader 标题添加 getPopupContainer 属性监听对应的位置&#xff0c;返回对应的元素 <a-cascader class"smart-width-100 " v-model:…

NetSuite 不同类型Item的公司间交易科目的设置

我们知道&#xff0c;NetSuite中有Intercompany Preferences的设置&#xff0c;如下所示&#xff0c;分别涉及到公司间应收、公司间应付、公司间收入、公司间费用以及公司间成本共5个科目&#xff0c;非常明确清晰。 最近用户遇到的场景是&#xff0c;如果是Non-Inventory Item…

ERP系统品牌大比拼:哪款产品更适合您的企业?

ERP集成了企业的销售、采购、生产、财务等各个环节&#xff0c;实现了资源的优化配置和信息的实时共享。然而&#xff0c;面对市场上琳琅满目的ERP系统产品&#xff0c;许多企业却陷入了选择的困境。 “哪款ERP系统更适合我的企业呢&#xff1f;”这或许是每一位企业决策者心中…