当前位置:首页>技术支持>典型实例>[Micropython][TPBasic F103]PWM电机控制

[Micropython][TPBasic F103]PWM电机控制

原创版权归山东萝卜科技有限公司所有,转载必须以链接形式注明作者和原始出处


  一、什么是TPBasicF103


  TPYBasicF103是由TurnipSmart公司制作的一款STM32开发板,它基于STM32F103单片机,通过USB接口进行数据传输。该开发板可在3V-10V之间的电压正常工作。


  TPYBasicF103让用户可以通过C语言轻松控制微控制器的各种外设,比如LED等,读取管脚电压等等.


  二、利用TPBasicF103完成PWM电机控制


  1、具体要求


  利用TPBasicF103完成PWM电机控制


  (1)学习stm32芯片I/O配置


  (2)学习stm32芯片定时器设置


  (3)学习三极管9014的用法


  (4)学习PWM智能控制直流电机驱动小风扇


  2、熟悉所需器件


  TPBasicF103开发板一块


  直流电机一个


  s9014三极管一个


  100R电阻一个


  杜邦线三条


  3、所需器件1介绍


  将板子boot0与GND用跳线帽短接,s9014集电极接3.3V电源,基极接100R后接接板子C7引脚(具体电路可根据程序自行选择引脚),发射极接直流电机一端,直流电机另一端接板子GND


  blob.png


  三、制作主要过程


blob.png


blob.png


  1、制作流程


  PWM控制电机原理:直流电机在MCU的控制之下转动,PWM占空比控制直流电机的转速,每个周期的保持同样大小可确保电机转动速度均匀。占空比=高电平所占时间/周期T,我们就是通过控制占空比来控制的转速情况,整定一个固定的周期,然后让高低电平延时的时间之和跟这个周期相等就好了。


  通过调制器给电机提供一个具有一定频率的脉冲宽度可调的脉冲电。脉冲宽度越大即占空比越大,提供给电机的平均电压越大,电机转速就高。反之脉冲宽度越小,则占空比越越小。提供给电机的平均电压越小,电机转速就低。


  PWM控制led实现呼吸灯实际是模拟正弦波的过程。


blob.png


  这是STM32数据手册上对TIM3通用定时器复用功能重映象的描述,假设让PA6作为PWM输出,从图中可以看出PA6对应TIM3的通道1,使能TIM3通道1的函数为:TIM_OC1Init();同样的,如果想要使能PA7,它对应的是TIM3的通道2,那么使能通道2的函数便是:TIM_OC2Init();以此类推,需要注意,使能不同定时器不同通道的函数是有一点小差别的,防止在程序中调用TIM_OC1Init()函数来使能TIM3通道2这种情况的发生。


  2、具体代码:

 

#include "public.h"
#include "pwm.h"
#include "systick.h"
int main()
{    
      u8 fx=1;
      u32 ti=0;        
      pwm_init();
      
           TIM_SetCompare2(TIM3, 20);
      }
}

  

电机.zip