使用树莓派picow和drv8833驱动直流电机

raspberry pico w引脚图
使用树莓派picow和drv8833驱动直流电机_第1张图片

1. 准备工作

板子 编辑器
raspberry pico w micropython(thonny编辑器)

最新的raspberry pi pico w系统包下载地址。

点亮板载led灯

需要注意的是pico的板载led灯是GPIO25引脚,picow的板子led灯则直接用Pin包的"LED"来索引。

import machine
import time

# user led is "LED"
led = machine.Pin("LED", machine.Pin.OUT)

while True:
    led.on()
    time.sleep(0.5)
    led.off()
    time.sleep(0.5)

如果用led等直连到GP1和GND之间,则代码只需要简单修改led = machine.Pin("GP1", machine.Pin.OUT)即可。

2. 驱动直流电机

这里使用DRV8833模块

使用树莓派picow和drv8833驱动直流电机_第2张图片

我这里使用的接线:
使用树莓派picow和drv8833驱动直流电机_第3张图片

picow DRV8833 DRV8833 Motor
GP16 AIN1 AO1 motorA2
GP17 AIN2 AO2 motorA1
GP18 BIN1 BO1 motorB1
GP19 BIN2 BO2 motorB2
VM(接6V电池,3V驱动不了)
GND GND
GP20 STBY(置0则清空所有输出)

示例代码每2s间隔后电机旋转2s。

import time
from machine import Pin

STBY = Pin(20, Pin.OUT)
STBY.value(1)

motor_A1 = Pin(17, Pin.OUT)
motor_A2 = Pin(16, Pin.OUT)

motor_B1 = Pin(18, Pin.OUT)
motor_B2 = Pin(19, Pin.OUT)

while True:
    motor_A1.value(0)
    motor_A2.value(1)
    motor_B1.value(1)
    motor_B2.value(0)
    time.sleep(2)
    motor_A1.off()
    motor_A2.off()
    motor_B1.off()
    motor_B2.off()
    time.sleep(2)

实物图:

你可能感兴趣的:(MCU,mcu)