这个教程我们将分享MicroPython使用 16通道舵机模块-PCA9685。
下载micropython的模块文件
https://github.com/SingTown/singtown-micropython-lib/tree/master/pca9685
下载pca9685.py与servo.py
烧写模块到板子
将pca9685.py与servo.py烧写到板子。并重启。
测试连接程序
这一步是为了测试硬件是否连接成功,如果不正常,说明可能焊针的接触不好,或者是硬件有问题。
moxing ESP32连接代码
from machine import Pin, I2C
i2c = I2C(sda=Pin(21), scl=Pin(22))#moxing esp32
#i2c = I2C(sda=Pin('P26'), scl=Pin('P25'))#moxing stm32
print(i2c.scan())
moxing stm32连接代码
from machine import Pin, I2C
#i2c = I2C(sda=Pin(21), scl=Pin(22))#moxing esp32
i2c = I2C(sda=Pin('P26'), scl=Pin('P25'))#moxing stm32
print(i2c.scan())
如果看到有64这个设备id,就说明连接正常。
[64, 112]
连接硬件与电源
插入舵机
将舵机插入pca9685舵机驱动板,注意,黄色排针对应信号线,红色排针对应地线,黑色排针对应电源线。
运行程序
import time
from machine import Pin, I2C
from servo import Servos
i2c = I2C(sda=Pin(21), scl=Pin(22))#moxing esp32
#i2c = I2C(sda=Pin('P26'), scl=Pin('P25'))#moxing stm32
servo = Servos(i2c, address=0x40, freq=50, min_us=500, max_us=2500, degrees=180)
while True:
for i in range(0, 16):
servo.position(i, 0)
time.sleep_ms(500)
for i in range(0, 16):
servo.position(i, 180)
time.sleep_ms(500)