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

stm32控制舵机sg90

一、sg90简介

首先介绍说一下什么是舵机。舵机是一种位置(角度)伺服的驱动器。适用于一些需要角度不断变化的,可以保持的控制系统。sg90就是舵机的一种。

sg90

舵机的工作原理比较简单。舵机内部有一个基准电压,单片机产生的PWM信号通过信号线进入舵机,与舵机内部的基准电压作比较,获得电压差输出。电压差的正负输出到电机驱动芯片上,从而决定正反转。开始旋转的时候,舵机内部通过级联减速齿轮带动电位器旋转,使得电压差为零,电机停止转动。

二、引脚连接

sg90有三个引脚,分别是红线(VCC),棕线(GND)和橙线(信号线)。通常使用5V供电,信号线接单片机引脚,用老来接收单片机发送的PWM。

三、控制方法

控制sg90舵机旋转也比较简单,只需要给它输出PWM波,修改占空比就可以调整角度。sg90的控制一般需要一个20ms 左右的时基脉冲,脉冲的高电平部分一般在0.5ms~2.5ms。高电平持续时间与旋转角度的对应关系如下

高电平持续时间/ms舵机角度/°
0.50
1.045
1.590
2.0135
2.5180

四、程序设计

这里以180°的sg90,来展示一下程序设计

4.2 编写控制程序

根据高电平持续时间与角度关系对应表格来编写sg90的控制程序

  while(1){TIM_SetCompare1(TIM3,195);   // 旋转到0°delay_ms(500);TIM_SetCompare1(TIM3,190);   // 旋转到45°delay_ms(500);TIM_SetCompare1(TIM3,185);   // 旋转到90°delay_ms(500);TIM_SetCompare1(TIM3,180);   // 旋转到135°delay_ms(500);TIM_SetCompare1(TIM3,175);   // 旋转到180°delay_ms(500);}

文部分内容转载自:STM32外设系列—sg90(舵机) (jnnr.cn)感谢分享

看上面这个代码就是采用调用函数的方式来控制旋转角度,所以这个函数就是一个产生PWM的函数

http://www.lryc.cn/news/227197.html

相关文章:

  • state 和 props 有什么区别?
  • Unity 获取桌面路径的方法
  • 基于SSM的考研图书电子商务平台的设计与实现
  • 信息系统“好用”的标准探讨
  • vue elementui 实现从excel从复制多行多列后粘贴到前端界面el-table
  • C++学习 --类和对象之友元
  • Flutter笔记:使用Flutter构建响应式PC客户端/Web页面-案例
  • 聊聊LogbackMDCAdapter
  • spring命名空间注入和XML自动装配、引入外部配置文件
  • 【2024年11月份--2024精灵云校招C++笔试题】
  • Visual Studio 2019下编译OpenCV 4.7 与OpenCV 4.7 contrib
  • 【Linux网络】系统调优之聚合链路bonding,可以实现高可用和负载均衡
  • k8s持久化存储PV、PVC
  • CocosCreator3.8原生引擎源码研究
  • 高二英语上
  • JavaWeb Day10 案例 准备工作
  • Nginx:不同域名访问同一台机器的不同项目
  • C++(20):new数组时元素个数自动推到
  • 使用visualStudio发布可执行文件
  • yolo系列报错(持续补充ing)
  • Technology Strategy Patterns 学习笔记9 - bringing it all together
  • Redis(12)| 过期删除策略和内存淘汰策略
  • Go-服务注册和发现,负载均衡,配置中心
  • k8s-实验部署 1
  • Git的原理与使用(一)
  • 1204. 错误票据
  • uniapp中在组件中使用被遮挡或层级显示问题
  • windows下安装es及logstash、kibna
  • 华为ensp:rip宣告
  • Django中简单的增删改查