Micropython学习交流群 学习QQ群:786510434 提供多种固件下载和学习交流。

Micropython-扇贝物联 QQ群:31324057 扇贝物联是一个让你与智能设备沟通更方便的物联网云平台

Micropython学习交流群 学习QQ群:468985481 学习交流ESP8266、ESP32、ESP8285、wifi模块开发交流、物联网。

Micropython老哥俩的IT农场分享QQ群:929132891 为喜欢科创制作的小白们分享一些自制的计算机软硬件免费公益课程,由两位多年从事IT研发的中年大叔发起。

Micropython ESP频道

Micropython ESP32 C3连接L9110电机驱动风扇模块和PS2双轴按键摇杆


一、目的


        这一节我们来学习如何使用合宙ESP32 C3,连接PS2双轴按键摇杆控制L9110电机驱动风扇模块的实验。


二、环境


        ESP32 C3开发板(MicroPython v1.19.1 on 2022-06-18)+ PS2双轴按键摇杆+ L9110电机驱动风扇模块 + 几根杜邦线 + Win10商业版


        ESP32 C3和各个模块接线方法:

————————————————

8c1f2bf397.png

main.py

from machine import Pin,PWM,ADC
import time
 
# 定义摇杆的vrx引脚
vrx = ADC(Pin(4))
# 定义摇杆的vry引脚
vry = ADC(Pin(5))
 
# 定义摇杆的vrx、vry的属性
vrx.atten(ADC.ATTN_11DB)  # 衰减比为3.3V
vrx.width(ADC.WIDTH_12BIT)  # 宽度为12位,对应的范围0-4095
 
vry.atten(ADC.ATTN_11DB)  #衰减比为3.3V
vry.width(ADC.WIDTH_12BIT)  # 宽度为12位,对应的范围0-4095
 
# 打印出摇杆x,y轴的数值
print("x: %d, y: %d"%(vrx.read(),vry.read()))
 
#L9110直流电机的PWM范围0-1023
moa = PWM(Pin(2),duty=(0),freq=(1000))  # 对应模块的INA引脚
mob = PWM(Pin(8),duty=(0),freq=(1000))  # 对应模块的INB引脚
 
# 定义摇杆的按键
key = Pin(3,Pin.IN,Pin.PULL_UP)
# 定义一个LED灯,当摇杆按键按下时反转led状态
led = Pin(12,Pin.OUT)
 
# 定义L9110电机驱动风扇模块函数
def motor():
    if key.value() == 0:
        time.sleep(0.020)
        if key.value() == 0:  # 如果摇杆按键值为0
            led.value(not led.value())  # 反转led灯状态
            # 正转
            moa.duty(0)
            mob.duty(1023)
            while not key.value():
                pass
    
    try:
        # 获取摇杆vrx和vry的值
        x = vrx.read()
        y = vry.read()
        # L9110模块的PWM占空比
        moa.duty(int((x/4095)*1023))
        mob.duty(int((y/4095)*1023))
    except:
        moa.deinit()
        mob.deinit()
         
def main():
    # 正转
    moa.duty(0)
    mob.duty(1023)
    
    time.sleep(3)
    
    # 反转
    moa.duty(1023)
    mob.duty(0)
    
    time.sleep(3)
    
    # 刹车
    moa.duty(0)
    mob.duty(0)
    
    # 高阻态
    moa.duty(1023)
    mob.duty(1023)
    
    while True:
       motor()
 
 
if __name__ == "__main__":
    main()

四、实验效果

        运行上述代码后,L9110马达会正转3秒,倒转3秒。然后使用摇杆向上下左右推动摇杆,可以控制马达正反转。按下摇杆的按键,LED灯亮,马达最大转速,松开按键马达停止转动。



版权声明:本文为CSDN博主「魔都飘雪」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/zhusongziye/article/details/130836108



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 ESP56.com All Rights Reserved

执行时间: 0.0081110000610352 seconds