单片机型号:STM32F103C8

功能要求:

要求通过STM32实现舵机180°旋转,超声波放置在舵机上,实现一边旋转一边测距,同时可以设置测距的最大距离。

设计的STM32的技术有:串口中断,外部中断,定时器中断,PWM,滴答定时器

超声波使用的型号如下:

舵机的型号如下(其它型号同样适用):

超声波测距是通过定时器加中断实现的,接线:

VCC——+5V

GND——GND

Trig——PC7

Echo——PC8 (同时映射为外部中断口8)

代码实现依据:

舵机的实现:因为舵机需要通过PWM才能驱动舵机正常转动,时序图如图

舵机的主要组成部分为伺服电机,所谓伺服就是服从信号的要求而动作。在信号来之前,转子停止不动;信号来到之后,转子立即运动。因此我们就可以给舵机输入不同的信号,来控制其旋转到不同的角度。
舵机接收的是 PWM 信号,当信号进入内部电路产生一个偏置电压,触发电机通过减速齿轮带动电位器移动,使电压差为零时,电机停转,从而达到伺服的效果。简单来说就是给舵机一个特定的 PWM 信号,舵机就可以旋转到指定的位置。舵机上有三根线,分别是 GND、VCC 和 SIG,也就是地线、电源线和信号线,其中的 PWM 波就是从信号线输入给舵机的。一般来说,舵机接收的 PWM 信号频率为 50HZ,即周期为 20ms。当高电平的脉宽在 0.5ms-2.5ms 之间时舵机就可以对应旋转到不同的角度。

代码中使用PA6口作为PWM输出引脚。

同时配置了串口,并设计了测量范围控制,控制器测量的最远距离。

由于代码设计文件比较多,无法一一粘贴。

模块名称

HC-SR04

STM32的IO口 工作模式
GND GND -
VCC +5V -
Trig PC7

GPIO_Mode_Out_PP

(推挽输出)

Echo PC8

GPIO_Mode_IN_FLOATING

(浮空输入)

- PB6 USART1_TX(需要映射)
- PB7 USART1_RX(需要映射)

模块名称

舵机

STM32的IO口 工作模式
DATA PC6

GPIO_Mode_AF_PP

(需要输出PWM)

GND GND  
VCC +5V  
     

代码片段:

/****************************************函数名称:void SteeringEngineAndUltrasonic(uint8_t fun)函数参数:uint8_t fun:指定TFT显示屏的功能,0X01显示第一页,0X02显示第二页,10-1F选择第一页的第几行数据,20-2F选择第二页的第几行数据函数返回值:无 函数功能:舵机与超声波测距,舵机左右旋转180°,边旋转边测距创建作者:创建时间:2021.4.30联系方式:QQ:修改作者:修改时间:修改说明:
****************************************/
void SteeringEngineAndUltrasonic(uint8_t fun)
{s32 rang = 0;int i;for(i = 1950;i >= 1805;i--){TIM_SetCompare1(TIM3, i);//  设置占空比rang = Ultrasonic_Ranging();//USART1_printf(USART1,"\r\nrang=%d\n",rang);    //    发至串口助手显示sendDataToTFT(fun, rang);    //  可以输出到液晶屏显示delay_ms(20); }for(;i <= 1950;i++){TIM_SetCompare1(TIM3, i);//   设置占空比rang = Ultrasonic_Ranging(); //USART1_printf(USART1,"\r\nrang=%d\n",rang);   //    发至串口助手显示sendDataToTFT(fun, rang);  //  可以输出到液晶屏显示delay_ms(20);}
}

注意:我们这里使用了串口屏,如果需要发送至串口助手显示,需要放开USART1_printf(USART1,"\r\nrang=%d\n",rang); 然后将sendDataToTFT(fun, rang);注释掉就可以。

代码可链接下载:

(1条消息) 舵机加超声波测距源码.7z-电信文档类资源-CSDN下载

【STM32学习】(26)STM32实现舵机旋转并实现超声波检测相关推荐

  1. 【STM32学习 自制STM32游戏机】

    2020年科协招新需要出训练题,让新生了解一下单片机,所以我这边打算出一道游戏机的题,让新生用单片机实现一个游戏机,共3个游戏可选,分别为:贪吃蛇,打地鼠和推箱子,由于是针对于0基础新生,所以在指标上 ...

  2. 【stm32学习】stm32最小系统和程序下载方式

    文章目录 前言 一.程序下载 1.USB下载方式 2.J-LINK下载方式 前言 stm32学习过程,是从正点原子的开发板开始的,但是正点原子的开发板实在是太大了,而且不便宜,不适合一些实际项目制作, ...

  3. STM32学习笔记(三)丨中断系统丨EXTI外部中断(对射式红外传感器计次、旋转编码器计次)

    本篇文章包含的内容 一.中断系统 1.1 中断的定义 1.2 中断优先级 1.3 中断的嵌套 1.4 STM32中的中断系统 1.4.1 STM32的中断资源 1.4.2 嵌套中断向量控制器 NVIC ...

  4. 《STM32学习笔记》2——开发环境的建立

    接上文,文中的图片知识,大多数来自视频的截图(来自洋桃电子). 欢迎大家批评指正! STM32学习笔记-专栏 文章目录 一.接口定义 1 芯片引脚整体简介 2 各部分引脚介绍 二.开发板简介 三.IS ...

  5. stm32学习笔记-6TIM定时器

    6 TIM定时器 文章目录 6 TIM定时器 6.1 TIM定时中断原理 6.2 TIM定时中断相关实验 6.2.1 实验:定时器定时中断-内部时钟 6.2.2 实验:定时器定时中断-外部时钟 6.3 ...

  6. stm32的语音识别_免费开源基于STM32的智能垃圾桶之舵机控制(HAL库)

    大家好,我是『芯知识学堂』的SingleYork,前面给大家简单介绍了<基于STM32的智能垃圾桶之成员简介>.<基于STM32的智能垃圾桶之语音识别>和<基于STM32 ...

  7. STM32学习之TFTLCD

    前言 之前的STM32博客学习了从0新建工程,C语言知识复习,总线时钟等基础知识,现在根据手册开始正式的开发项目,本篇博客主要是理解文档中的TFTLCD部分的学习 学习资料来自:STM32F407最小 ...

  8. STM32学习笔记(四)丨TIM定时器及其应用(定时中断、内外时钟源选择)

    本篇文章包含的内容 一.TIM 定时器 1.1 TIM 定时器简介 1.2 TIM 定时器类型及其工作原理简介 1.2.1 基本定时器工作原理及其结构 1.2.2 通用定时器工作原理及其结构 1.2. ...

  9. STM32学习笔记(六)丨TIM定时器及其应用(输入捕获丨测量PWM波形的频率和占空比)

    本篇文章包含的内容 一.输入捕获 1.1 输入捕获简介 1.2 输入捕获通道的工作原理 1.3 输入捕获的主从触发模式 1.4 输入捕获和PWMI结构 二.频率的测量方法 2.1 测频法 2.2 测周 ...

最新文章

  1. JAVA单向/双向链表的实现
  2. JS编程建议——42:用好正则表达式静态值
  3. 在Google的GPU上永远免费训练您的机器学习模型
  4. 深度学习总结:Tensorboard可视化里面的events, graph, histogram
  5. 用MS SQL Reporting Services生成报表
  6. git 代理 git_五分钟解释Git的要点
  7. JAVA学习-JAVA实现一元二次方程求解
  8. doc2html asp,ASP常见问题及解答(3)-ASP教程,ASP技巧
  9. 安装插件报错:error: Microsoft Visual C++ 14.0 is required...
  10. B+/-Tree原理
  11. jquery源码_详细中文注释
  12. Ubuntu18.04创建WiFi热点
  13. vivox5l的Android是5.0,步步高Vivo X5 X5L刷机教程(官方固件rom升级教程)
  14. html怎么打五角星符号怎么打出来,电脑小技巧 五角星符号在哪里打出来 - 驱动管家...
  15. LINUXmint18.2添加国内源以及安装各种流行软件(网易云音乐,搜狗,谷歌浏览器,virtualbox虚拟机)
  16. linux:shell命令之软硬链接
  17. Btree/B+tree原理及区别(详解)
  18. 4210: 孙壕请一盘青岛大虾呗【递归/注意结束条件】
  19. 工控服务器什么作用,工控机和服务器有什么区别
  20. 家用 NAS 服务器(4)| MergerFS和SnapRaid数据定时备份

热门文章

  1. oracle停监听服务,ORACLE监听服务启动后又停止了的解决
  2. CSDN百度指数提升方法介绍
  3. 物联网小项目智能家居(QT、MQTT、嵌入式开发板、Ubuntu)
  4. 照片宽高比怎么设置_用好PPT插件,三分钟就能搞定一个心形照片墙
  5. 宝塔面板配置及部署javaweb教程(全网最全)
  6. MSN空间日志发布项灰色解决方法
  7. C++编写布尔表达式
  8. 【机器视觉基础知识整理】
  9. grafana-汉化方法
  10. 读hzk32_HZK16字库文件的资料