小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 6709|回复: 0

STM32之红外循迹-超声波避障(简单介绍STM32定时器)功能实现

[复制链接]
发表于 2015-10-28 14:56:45 | 显示全部楼层 |阅读模式
本帖最后由 风华正茂 于 2015-10-28 18:28 编辑

楼主还是从简单的讲起,红外传感器就是教入门玩家学会判断io高低电平。红外传感器即利用红外线在不同颜色的物体表面具有不同的反射强度的特点,来给io不同状态。小车在通过左右两侧红外返回的高低电平来调整方向。
1.png
GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_2)是用来读取io口电平状态
黑色胶带即代表障碍物,即根据左右两侧检测返回的高低电平做出相应方向调整。

超声波测距(避障)功能实现
基本工作原理: (1)采用IO口TRIG触发测距,给至少10us的高电平信号;
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO口
TRIG输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。测试距离=(高电平时间*声速(340M/S))/2;  
本模块使用方法简单,一个控制口发一个10US以上的高电平,就可以在接收口等待高电平输出.一有输出就可以开定时器计时,当此口变为低电
平时就可以读定时器的值,此时就为此次测距的时间,方可算出距离.如此不断的周期测,即可以达到你移动测量的值
3.png
超声波测距要先设置定时器,我简单介绍下STM32定时器
高级定时器(TIM1和TIM8)由一个16位的自动装载计数器组成,它由一个可编程的预分频器驱。
它适合多种用途,包含测量输入信号的脉冲宽度(输入捕获),或者产生输出波形(输出比较、PWM、嵌入死区时间的互补PWM等)。
使用定时器预分频器和RCC时钟控制预分频器,可以实现脉冲宽度和波形周期从几个微秒到几个毫秒的调节。
高级控制定时器和通用定时器是完全独立的,它们不共享任何资源。它们可以同步操作。

TIM1和TIM8主要特性TIM1和TIM8定时器的功能包括:

● 16位向上、向下、向上/下自动装载计数器
● 16位可编程(可以实时修改)预分频器,计数器时钟频率的分频系数为1~65535之间的任意数值
● 多达4个独立通道: ─ 输入捕获 ─ 输出比较 ─ PWM生成(边缘或中间对齐模式) ─ 单脉冲模式输出  
● 死区时间可编程的互补输出
● 使用外部信号控制定时器和定时器互联的同步电路  
● 允许在指定数目的计数器周期之后更新定时器寄存器的重复计数器  ● 刹车输入信号可以将定时器输出信号置于复位状态或者一个已知状态
● 如下事件发生时产生中断/DMA: ─ 更新:计数器向上溢出/向下溢出,计数器初始化(通过软件或者内部/外部触发) ─ 触发事件(计数器启动、停止、初始化或者由内部/外部触发计数) ─ 输入捕获 ─ 输出比较 ─ 刹车信号输入  
● 支持针对定位的增量(正交)编码器和霍尔传感器电路  ● 触发输入作为外部时钟或者按周期的电流管理

2.png
本次讲解用的是TIM4,定时修改直接修改数字如(用TIM3直接将4改为3即可)
编程步骤 1.       配置系统时钟;
2.   配置NVIC;
3.   配置GPIO;
4.   配置TIMER;  
其中TIMER有如下配置:
(1)利用TIM_DeInit()函数将Timer设置为默认缺省值;
(2)TIM_InternalClockConfig()选择TIMx来设置内部时钟源;
(3)TIM_Perscaler来设置预分频系数;
(4)TIM_ClockDivision来设置时钟分割;
(5)TIM_CounterMode来设置计数器模式;
(6)TIM_Period来设置自动装入的值  
(7)TIM_ARRPerloadConfig()来设置是否使用预装载缓冲器
(8)TIM_ITConfig()来开启TIMx的中断
5.png
其中PC1是发射(TRIG)PC0是接收(ECHO)module_interval定义超声波模块接收发射端间距(单位:mm)








回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-11-22 23:58 , Processed in 1.223955 second(s), 21 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

快速回复 返回顶部 返回列表