STM32F103C8T6 红外测距模块测量距离(SHARP GP2Y0A21YK0F)使用CubeMx生成HAL库(ADC)
文章目录
- 一、HAL库ADC使用
- 1.基础认识
- 二、红外模块简介
- 三、CubeMX配置
- 1.RCC
- 2.SYS
- 3.ADC
- 4.串口
- 四、代码
一、HAL库ADC使用
1.基础认识
ADC在数字模拟电路中有过短暂的了解,模数转换,即将模拟量转换为数字量
- ADC的工作均为非阻塞模式
(后续补充)
二、红外模块简介
1.距离测量范围:10~80厘米
2.模拟量输出
3.电源电压:4.5~5.5 V
三、CubeMX配置
1.RCC
2.SYS
3.ADC
4.串口
四、代码
sharp.h
#ifndef __SHARP2Y0A21_H
#define __SHARP2Y0A21_H #include "main.h"#define Adc1IN11Distance_READ_TIMES 10 //定义红外传感器读取次数,以便取平均值void DistanceSensor_Init(void); //初始化红外传感器
float DistanceSensor_Get_Val(void); //读取红外传感器的值#endif
#include "sharp.h"
#include "adc.h"
#include "main.h"
#include "stdio.h"//初始化ADC,不用修改
//这里我们仅以规则通道为例 //初始化传感器,需要修改端口和引脚号,这里是c出口,c1引脚,ADC3的IN11
void DistanceSensor_Init(void)
{GPIO_InitTypeDef GPIO_InitStructure;__HAL_RCC_GPIOA_CLK_ENABLE();//使能GPIOA时钟//先初始化ADC1通道11 IO口GPIO_InitStructure.Pin = GPIO_PIN_1;//PA1GPIO_InitStructure.Mode = GPIO_MODE_ANALOG;//模拟输入GPIO_InitStructure.Pull = GPIO_NOPULL ;//不带上下拉HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化 MX_ADC1_Init();//初始化ADC1
}
//PA1=IN1
float DistanceSensor_Get_Val(void)
{uint32_t temp_val=0;float distemp=0.0;uint8_t t;for(t=0;t<Adc1IN1Distance_READ_TIMES;t++){temp_val+=HAL_ADC_GetValue(&hadc1); //读取ADC值,通道1HAL_Delay(5);}temp_val/=Adc1IN1Distance_READ_TIMES;//得到平均值,这个是平均的ADC,printf("average_val=%d\r\n",temp_val);distemp=temp_val*3.3/4095;printf("voltage= %f\r\n",distemp);//电压值//电压对应距离distemp=(-13.2*distemp*distemp*distemp)+72.84*distemp*distemp-140*distemp+107.12;return distemp;}
main.c
while (1){/* USER CODE END WHILE *//* USER CODE BEGIN 3 */HAL_ADC_Start(&hadc1);adcx=HAL_ADC_GetValue(&hadc1);distance=DistanceSensor_Get_Val();printf("adcX=%d\r\n",adcx);printf("shuiwei=%f\r\n",distance);HAL_Delay(200);}
完整工程详见本人资源
STM32F103C8T6 红外测距模块测量距离(SHARP GP2Y0A21YK0F)使用CubeMx生成HAL库(ADC)相关推荐
- STM32F103C8T6 0.96寸 OLED显示屏 IIC(CubeMx生成 HAL库)
STM32F103C8T6 0.96寸 OLED显示屏 IIC(CubeMx生成 HAL库 文章目录 STM32F103C8T6 0.96寸 OLED显示屏 IIC(CubeMx生成 HAL库 一.O ...
- 距离感应音乐玩具计算机系统设计,可编程机器人玩具程小奔红外测距传感器测量距离案例...
文:邱老师 上次课程我们学习了用速度乘以时间计算程小奔移动距离的方法.那么,它能否测量还没有走过的路程距离呢?答案是可以的. 程小奔编程机器人集合了多种传感器,今天我们要使用程小奔机器人的红外测距传感 ...
- (STM32CubeMx生成HAL库)STM32F103C8T6最小系统板,4个按键分别控制42混合步进电机启停、变向、加减速
用的定时器1通道1生成pwm脉冲,改变ARR值改变脉冲频率从而实现调速,采用按键中断控制 直接上图 引脚定义: PA5 EN 使能 PA7 DIR/CW 方向 PA8 PUL/CLK ...
- 红外测距模块 51单片机_[51单片机] HC-SR04超声波测距仪
1.HC-SR04超声波模块工作原理 (1)采用IO口触发测距,给至少10us高电平脉冲: (2)模块自动发送八个40khz方波,并自主检测是否有电波返回: (3)当有信号返回时,通过IO口输出一个高 ...
- STM32H750VBT6驱动程控增益放大模块PGA113——基于CubeMX的Hal库
前言 高情已逐晓云空,不与梨花同梦. 最近,因为准备电赛的需要,需要用到程控增益放大模块(PGA113),也就是这篇博文的主角:破哥啊(谐音称呼),需要调通这位大哥,今天终于完成了驱动的程序代码.说起 ...
- HC-SR04超声波模块测量距离出现跳变问题且跳变步长恰好为1.7cm
问题描述 如下图,当模块静止不动时仍会有数据跳动(最后一列数据为超声波测距的距离数据,单位cm) 现状 记录问题,尚且未找到原因与解决方法
- 红外测距模块工作原理_共享单车里的通讯模块,工作原理是啥呢?
现在我们所看到了共享单车除了小黄车(OFO)没有配备GPS智能锁外,其他品牌的共享单车都有安装,那么这么高科技的东西具体是怎么工作的呢?下面由我给大家讲解下其中的奥秘. 其实这个东西也谈不上太多高科技 ...
- 身高测量仪红外传感测距模块应用方案 WTU201F2 B004 低功耗
身高测量仪被广泛用于医疗.教育等领域,而红外测距模块在身高测量仪中的应用则成为了一种新的技术手段.红外测距模块是基于红外线技术的一种测距器件,在身高测量仪中,红外测距模块能够精准地测量出人体的高度. ...
- STM32学习笔记4——HC_SR04超声波测距模块的调试记录
项目场景: STM32F103单片机和HC_SR04超声波测距模块测量距离. 其中HC_SR04模块采用5V供电. 问题描述: 代码编写完成以后,HC_SR04超声波测距模块传递模块返回来的高电平一直 ...
- 第十七篇、基于Arduino uno,获取cp2d12红外测距传感器的原始值和距离值——结果导向
0.结果 说明:先来看看串口调试助手显示的结果,第一个值是原始的模拟电压值,第二个值是距离值,如果是你想要的,可以接着往下看. 1.外观 说明:虽然红外测距传感器形态各异,但是原理和代码都是适用的,只 ...
最新文章
- html css右下角三角形,html – 框内的CSS中的三角形
- Nginx 学习 —— 负载均衡
- oracle根据分区移动,Oracle 12c 在线移动分区和部分分区read only
- Almost Regular Bracket Sequence
- Java 01背包【动态规划·蓝桥杯练习题】(相信杨超越,相信锦鲤,默默努力,其它的看天意)
- 修改Netbeas的注释结构
- python中math模块函数_Python常用的一些内建函数和math模块函数
- Tomcat8史上最全优化实践
- sudo apt-get:command not found报错解决
- 博客制作系 -- 2.4. Git
- 手机app测试用例怎么写?手机app测试点有哪些?只有干货没有水分,错过绝对后悔!
- 10款精美的web前端源码的特效
- 安卓手机有坏点测试软件,手机屏幕坏点怎么检测
- mysql计算同比和环比的区别_MySQL统计同比环比SQL
- 云原生的年代service mesh不止Istio,还有另一个选择-Kuma
- kali 安装volatility_volatility的使用
- linux安装globalsign证书,Globalsign 标准型(EV型)代码签名证书提取指南
- Mac抓包工具—— Charles相关总结
- Linux -- Makefile
- vue 使用leaflet 加载地图服务 (可切换天地图 影像地图)(一)
热门文章
- HTML代码页面无法跳转为什么,html超链接不跳转 html为什么超链接不跳转页面
- ureport 显示html,UReport2 与业务结合
- 试试H3C Comware Platform Software Version 5.20
- VL817-Q7 USB3.0HUB
- python自动生成sql建表语句
- Java调用第三方平台发送手机短信
- 聊天室后台 java php_PHP实现简单聊天室(附源码)
- 用python实现千图成像工具,快给你的男/女神做一个吧~
- PS CS5制作1寸照片
- Oracle 定时任务详解(dbms_job)