• 物联网AI MicroPython传感器学习 之 DRV8833电机驱动模块


    学物联网,来万物简单IoT物联网!!在这里插入图片描述

    一、产品简介

    DRV8833电机驱动模块是一种单H桥电机驱动芯片,可驱动2个直流电机和4线步进电机。内置过流保护,短路保护,欠压闭锁和过热保护,带低功耗睡眠模式。
    image.png
    引脚定义

    • VM:芯片和电机的驱动电源正供电脚
    • GND:驱动电源地
    • AIN1 AIN2 BIN1 BIN2:逻辑控制
    • AO1 AO2 BO1 BO2:输出端,接电机
    • STBY:接地或悬空芯片不工作,无输出,接5V工作
    • NC:悬空

    二、技术参数

    • 驱动部分端子供电范围:2.7V~ 10.8V
    • 驱动部分峰值电流:1.5A
    • 驱动板尺寸:18mm * 21mm

    三、软件接口

    DRV8833 - 创建电机驱动对象

    • 函数原型

    DRV8833Obj = DRV8833(xIN1, xIN2, freq=None)

    • 参数说明

    该方法初始化一个DRV8833对象,用于直流电机控制。其使用DRV8833,使用AIN1,AIN2以控制AO1,AO2;使用BIN1,BIN2以控制BO1,BO2。

    参数类型必选参数?说明
    xIN1GPIO/PWMAIN1或BIN1引脚的GPIO/PWM对象。调用此函数前需确保对象已被open
    xIN2GPIO/PWMAIN2或BIN2引脚的GPIO/PWM对象。调用此函数前需确保对象已被open
    freqintPWM驱动频率。xIN1、xIN2为GPIO类型控制是,不要设置
    • 返回值

    若DRV8833对象创建成功,返回DRV8833对象;否则抛出Exception

    • 示例代码
    import drv8833  #drv8833驱动库
    from machine import Pin
    
    ain1 = Pin(16,Pin.OUT)
    ain2 = Pin(17,Pin.OUT)
    
    drv8833Obj = drv8833.DRV8833(ain1,ain2)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    run(status,rate) - 驱动电机转动

    • 函数功能:

    驱动电机,控制器正传和反转,以及PWM模式下,rate指定速度转动。其中,rate指定的是电机最大功率的百分比。例如当rate=50时,电机以50%最大功率转动。(因此,对于普通的直流电机而言,并不能严格控制转速)

    • 函数原型:

    DRV8833.run(status,rate:int)

    • 参数说明:
    参数类型必选参数?说明
    statusintGPIO控制模式使用。当status=1时,电机正转;当status=2时,电机反转。
    rateintPWM控制模式使用。范围从-100度到+100。rate指定的是电机最大功率的百分比。例如当rate=50时,电机以50%最大功率转动。当rate>0时,电机正转;当rate<0时,电机反转。
    • 返回值:

    stop() - 电机停转

    • 函数功能:

    电机停转

    • 函数原型:

    DRV8833.stop()

    • 参数说明:

    • 返回值:

    四、接口案例

    • 案例代码
    import drv8833  #drv8833驱动库
    from machine import Pin
    
    ain1 = Pin(16,Pin.OUT)
    ain2 = Pin(17,Pin.OUT)
    
    drv8833Obj_A = drv8833.DRV8833(ain1,ain2)
    
    bin1 = Pin(18,Pin.OUT)
    bin2 = Pin(19,Pin.OUT)
    
    drv8833Obj_B = drv8833.DRV8833(bin1,bin2)
    
    
    # a电机正传
    drv8833Obj_A.run(1)
    utime.sleep(10)
    
    # a电机反传
    drv8833Obj_A.run(2)
    utime.sleep(10)
    
    # b电机正传
    drv8833Obj_B.run(1)
    utime.sleep(10)
    
    # b电机反传
    drv8833Obj_B.run(2)
    utime.sleep(10)
    
    # AB电机停止
    drv8833Obj_A.stop()
    drv8833Obj_B.stop()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    五、工作原理

    DRV8833的控制信号

    xIN1xIN2xO1xO2动作
    01LH电机反转
    10HL电机正转
    11LL电机制动
    00ZZ惯性运作

    参考文献及购买链接

    [1] DRV8833电机驱动模块商品链接

  • 相关阅读:
    二战字节跳动成功上岸,准备了小半年,拿27k也算不上很高吧~
    数据结构初阶——堆排序
    超声波清洗机频率如何选择?高频和低频有什么区别
    宠物领养|基于SprinBoot+vue的宠物领养管理系统(源码+数据库+文档)
    P18 class 类 P19 类 init 功能 P20 input 输入
    css3 都有哪些新属性
    C语言题目逻辑实战总结
    前端面试十大经典手写题
    Vue基础(干货+代码)
    【机器学习】特征工程:从理论到实践的关键技巧
  • 原文地址:https://blog.csdn.net/weixin_39363464/article/details/133965050