学物联网,来万物简单IoT物联网!!
一、产品简介
此款风扇模块采用步进电机控制方式,可通过PWM信号进行调速。通常由于GPIO端口驱动电流太小无法带动电机运转,所以模块自带驱动放大电路,可以使电机正常运转,并且在运转时指示灯会亮。
二、技术参数
- 工作电压:3~6V
- 工作温度:-20~85℃
- 空载负载:15000 rpm
- 6V负载转速:500 rpm
- 6V电流:40mA
- 6V堵转电流:360mA
- 6V力矩:0.111kg/cm
- 接口方式: GPIO/PWM
三、软件接口(GPIO)
DCMotor(gpioObj) - 创建直流电机驱动对象
- 函数原型
dcMotorObj = DCMotor(gpioObj) - 参数说明
参数 | 类型 | 必选参数? | 说明 |
---|---|---|---|
gpioObj | GPIO | 是 | 传入GPIO对象 |
-
返回值
DCMotor对象成功,返回DCMotor对象;DCMotor对象创建失败,抛出Exception -
示例代码
from machine import Pin
import dcmotor
gpioObj = Pin(2,Pin.OUT)
dcmotorDev = dcmotor.DCMotor(gpioObj)
print("Testing dcmotor ...")
- 输出
Testing dcmotor ...
ctrl(onOff) - 设置电机状态
- 函数功能:
设置直流电机的运动状态
- 函数原型:
DCMotor.ctrl(onOff)
- 参数说明:
参数 | 类型 | 必选参数? | 说明 |
---|---|---|---|
onoff | bool | 是 | onOff-0(停止转动) onOff-1(开始转动) |
- 返回值:
无 - 示例:
from machine import Pin
import dcmotor
gpioObj = Pin(2,Pin.OUT)
dcmotorDev = dcmotor.DCMotor(gpioObj)
print("Testing dcmotor ...")
dcmotorDev.ctrl(1)
print("The dcmotor is started")
time.sleep(1)
dcmotorDev.ctrl(0)
print("The dcmotor is stopped")
- 输出
Testing dcmotor ...
The dcmotor is started
The dcmotor is stopped
四、接口案例
- 案例代码
from machine import Pin
import dcmotor
import utime
gpioObj = Pin(2,Pin.OUT)
dcmotorDev = dcmotor.DCMotor(gpioObj)
print("Testing dcmotor ...")
while True:
dcmotorDev.ctrl(1)
print("The dcmotor is started")
utime.sleep(1)
dcmotorDev.ctrl(0)
print("The dcmotor is stopped")
utime.sleep(1)
- 输出
Testing dcmotor ...
The dcmotor is started
The dcmotor is stopped
五、工作原理
通常电机的转子为永磁体,当电流流过定子绕组时,定子绕组产生一矢量磁场。该磁场会带动转子旋转一角度,使得转子的一对磁场方向与定子的磁场方向一致。当定子的矢量磁场旋转一个角度。转子也随着该磁场转一个角度。每输入一个电脉冲,电动机转动一个角度前进一步。它输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比。改变绕组通电的顺序,电机就会反转。所以可用控制脉冲数量、频率及电动机各相绕组的通电顺序来控制步进电机的转动。
就此原理图具体分析如下: Q8050是NPN型晶体三极管,在电路中,负责步进电机电源的开关,当J1的Pin1脚输出高电平,Q8050打开,电机供电形成回路,开始转动,且LED D1点亮;当J1的Pin1脚输出低电平,则Q8050关闭,电机停止转动,LED D1熄灭。由此当J1的Pin脚输出一定频率的PWM方波,则电机会一定速度的转动,PWM的占空比越大,转速就越快。
参考文献
[1] 风扇模块购买链接