首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

FlexLua低代码单片机Pwm控制直流电机

本文基于 FlexLua 低代码单片机技术,无需复杂单片机C语言开发。即使新手也可很容易用FlexLua零门槛开发各种功能丰富稳定可靠的 IoT 硬件,更多学习教程可参考 FlexLua 官网。

一、本章实现功能介绍

通过PWM信号控制直流电机的转动和停止,电机的调速,以及电机的正反转,当开发板上的BTN1按键下时电机以开发者设定的速度正转或停机,当开发板上的BTN2按键下时电机以开发者设定的速度反转或停机。

虽然这里演示用的是L9110S小功率电机驱动模块,但无论大小电机其PWM驱动原理都是一样的,如果开发者用的更大功率的电机,可以用其他电机驱动来替换L9110S驱动方案

二、L9110S电机驱动芯片介绍

L9110S是为控制和驱动小型马达设计的双通道推挽式功率放大专用集成电路器件,将分立电路集成在单片IC之中,使外围器件成本降低,整机可靠性提高。该芯片输入端兼容TTL/CMOS电平,具有良好的抗干扰性;该电路具备较大的电流驱动能力,每通道能通过0.8~1.0A的持续电流,峰值电流能力可达2.5A;该电路具有过温保护功能,内置的钳位二极管能释放感性负载的反向冲击电流。

参考电路原理图(两路电机):

三、本章演示所用电机和驱动模块介绍

产品板载一个直流电机+螺旋桨,以及L9110电机驱动芯片

产品尺寸:50X26X15mm(不含螺旋桨)

螺旋桨直径:75mm

工作电压:5V

四、接线图

五、材料清单

L9110电机驱动模块

ShineBlink C1/C2 Mini 开发板

六、完整实例代码

当开发板上的BTN1按键下时电机以开发者设定的速度正转或停机,当开发板上的BTN2按键下时电机以开发者设定的速度反转或停机

--设置开发板上的按键"BTN1"(占用D10口)以低电平有效的方式检测按键动作

LIB_ButtonConfig("BTN1","D10","L")

--设置开发板上的按键"BTN2"(占用D11口)以低电平有效的方式检测按键动作

LIB_ButtonConfig("BTN2","D11","L")

--配置D0 D1 D2口为PWM功能,周期20ms,高电平为有效极性

LIB_PwmConfig3(20000,1)

--当INA高电平 INB低电平时电机正转,反之亦然

--更新D0口的PWM输出占空比为0%, D0口接L9110的INA

--更新D1口的PWM输出占空比为0%, D1口接L9110的INB

--更新D2口的PWM输出占空比为0%, D2口未使用

LIB_PwmUpdate3(0,0,0)

motor_is_running = 0

--开始大循环

while(GC(1) == true)

do

--轮询BTN1按键事件

key_value = LIB_ButtonQuery("BTN1")

--如果按键短按过

if key_value == 1 then

--正转

if motor_is_running == 0 then

motor_is_running = 1

--INA输出50%占空比的高电平(调整占空比可以改变电机转速)

--INB输出低电平

LIB_PwmUpdate3(10000,0,0)

--停机

else

motor_is_running = 0

LIB_PwmUpdate3(0,0,0)

end

end

--轮询BTN2按键事件

key_value = LIB_ButtonQuery("BTN2")

--如果按键短按过

if key_value == 1 then

--反转

if motor_is_running == 0 then

motor_is_running = 1

--INA输出低电平

--INB输出50%占空比的高电平(调整占空比可以改变电机转速)

LIB_PwmUpdate3(0,10000,0)

--停机

else

motor_is_running = 0

LIB_PwmUpdate3(0,0,0)

end

end

end

如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OTrujB7lkuK8bQ6HqhLH4EFQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券