STM32F103单片机控制SG90舵机

前言

在智能衣柜系统中,试用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说的比较通俗易哦。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值