1. [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

三、制作主要过程


1、制作流程

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

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

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

这是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);
          }
}

..LINK:http://www.tpyboard.com/ueditor/php/upload/file/20170502/1493725726707079.zip