STM32F103单片机控制SG90舵机

news/2024/12/29 15:27:18/

前言

在智能衣柜系统中,试用SG90旋转0°-180°,模拟衣柜的开关门,舵机正转开门,180°-0°反转模拟一个关门的现象。

一,SG90舵机

1.1SG90链接:

【淘宝】https://m.tb.cn/h.UjfPasG?tk=10CNdeeB4Il CZ0001 「SG90 9g舵机MG996R mg90s MG995模块马达遥控飞机航模9克360度180」
点击链接直接打开 或者 淘宝搜索直接打开

1.2SG90舵机

图:1.1.1SG90舵机图片

 舵机是一种角度伺服的驱动器,使用于不断变换角度的控制系统,舵机可以接收单片机PWM信号,PWM周期为20ms,通过调整电平pwm不同的占空比,实现舵机不同角度的驱动,如下图所示

二,舵机----STM32CUBEMAX部分

2.1 时钟树配置

第一步:时钟树配置频率为72Mhz,挂载在APB1和APB2上的定时器频率也设置为72Mhz。

 第二步:RCC时钟配置如下。

 第三步:开启定时器3,时钟来源为内部时钟,使用PWM通道1驱动舵机        

 第四步:定时器基础配置如下所示,预分频计数值为720-1,重装载计数值为2000,pwm配置1000-1

 数值参考以下公式:

计算过程,可以根据自己不同的定时器频率计算。 

 第六步:定时器配置好之后,可以靠芯片引脚为PA6。

 

三 ,软件部分---Keilv5代码部分

第一步:在main函数中调用HAL库函数,实现pwm初始化

 代码如下:

 HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);

第二步:在main函数中测试舵机不同占空比的选择角度

 代码段:

  printf("45\r\n");__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,50);HAL_Delay(1000);printf("90\r\n");__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,100);HAL_Delay(1000);printf("135\r\n");__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,150);HAL_Delay(1000);printf("180\r\n");__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,200);HAL_Delay(1000);printf("0\r\n");__HAL_TIM_SET_COMPARE(&htim3,TIM_CHANNEL_1,250);HAL_Delay(1000);

四:测试

SG舵机接线说明:橙色线接信号线(PA6),红色线:接芯片3.3V/5V电源,棕色接GND注意电源线不要接反了。三根线是合并在一起的,测试时候不太方便,建议买一点公母杜邦线,把舵机的接口引出来好接线测试

sscom串口输出测试:

实际控制测试

9d6204de08c013f3dd4a569b19bd03bf

五:总结

sg90舵机工作驱动频率为50mhz,定时器产生的20时钟周期,通过pwm调制高低电平实现不同的占空比,使其旋转不同角度。文章可能还是有点问题,希望大家多多交流指正。

说一下可能后面的步进电机部分不会很快发出来了,先把蓝牙模块和显示屏模块给更出来。公司项目有点忙,有点分身乏术。

对STM32单片机感兴趣的同学可以在b站搜索 up洋桃电子 ,观看stm32物联网入门30步,这个up说的比较通俗易哦。


http://www.ppmy.cn/news/419301.html

相关文章

【Python】pyinstaller完整使用教程

python代码想要像C语言一样编译得到exe文件可能要稍微麻烦一点&#xff0c;不过也还好&#xff0c;python中有一个第三方包pyinstaller可以较为方便地将py文件转换成exe文件。使用时直接在控制台输入pyinstaller <filename.py>即可&#xff0c;当然&#xff0c;一般会加上…

最小系统板STM32F103C8T6烧录程序指南

STM32F103C8T6烧录程序 【购买链接】&#xff1a;STM32F103C8T6最小系统板 方法一&#xff1a;使用SWD模式烧录 此时BOOT0 0&#xff0c;BOOT1 X&#xff08;任意&#xff09;&#xff0c;跳线帽接法如下图所示 接好后&#xff0c;若手边有STLINK的话&#xff0c;可以使用…

python 面向对象 对象

类 构造函数 # 创建类 class Student:name None # 成员属性age None # 成员属性def say(self): # 成员方法print(self.name)# 构造函数def __init__(self,name,age):self.name nameself.age age#创建类对象 my_student Student() # 对象的属性 赋值 my_student.name …

html2canvas给指定区域添加满屏水印

效果图如下&#xff1a; 直接贴上代码 下载插件&#xff1a; npm i html2canvas <template><div ref"imageDom"><el-button click"downloadPicture">下载</el-button><div><el-tableclass"tableX":height&q…

Cocos精品丨《西游神魔决》传承经典

网易在尝试卡牌、跑酷、格斗、甚至是MOBA类手游之后&#xff0c;再一次回到自己擅长的领域回合制RPG。近日网易推出的西游题材的2D回合制RPG手游《西游神魔决》再次引爆了玩家热情。该游戏由cocos引擎打造&#xff0c;有着浓郁中国风情&#xff0c;掌控回合&#xff0c;传承经典…

运行ensp出现服务器超时,求解:eNSP服务启动失败

不错不错 无敌药尊 sanshaoxinshu.info/xs/0/587/ 正文 第一百六十七章 精英武者 sanshaoxinshu.info/xs/0/587/886680.html 武尊道 sanshaoxinshu.info/xs/0/571/ 武尊道 正文 第三百二十一章 再回北都秘境 sanshaoxinshu.info/xs/0/571/893271.html 女总裁的神级保镖 sanshao…

从0开始教你三天完成毕业设计-后端api-java篇

应粉丝要求,我这个特意推出了额外的java篇目 第一步,咱们还是先创建项目 使用idea,点击新建,如下图即可 接着导入必须的依赖 依赖的位置是pom.xml文件夹,这里直接复制我的即可 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"h…

少 林 内 功

作者&#xff1a;积木&#xff08;jm21335899&#xff09;个人主页&#xff1a;积木&#xff08;jm21335899&#xff09; 出处&#xff1a;积木主页-敏思博客个人主页&#xff1a;积木主页-敏思博客发表于&#xff1a;2004年8月8日 19:58 频道&#xff1a;参考文献 栏目&…