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

96 篇文章 0 订阅
32 篇文章 0 订阅


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

一、本章实现功能介绍

  • 通过PWM信号控制直流电机的转动和停止,电机的调速,以及电机的正反转,当开发板上的BTN1按键下时电机以开发者设定的速度正转或停机,当开发板上的BTN2按键下时电机以开发者设定的速度反转或停机。
  • 虽然这里演示用的是L9110S小功率电机驱动模块,但无论大小电机其PWM驱动原理都是一样的,如果开发者用的更大功率的电机,可以用其他电机驱动来替换L9110S驱动方案

二、L9110S电机驱动芯片介绍

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

a07be25aab0ef93c56900582f0f87daa.jpeg

309bc71d973e0bf0ddd32ea7954c9a7c.jpeg

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

1ad5fae272d4a5d162f34f7b0a1fc889.jpeg

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

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

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

螺旋桨直径:75mm

工作电压:5V

2944c1660a18818fc0ecb759f311cb8a.jpeg

四、接线图

5bac4627880e49327450e6beebee5036.jpeg

e99d3f05e02b575fdbf6f61f9bb068c2.jpeg

五、材料清单

  • 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查询。

  • 32
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值