#i2c #nodemcu #micropython
#i2c #nodemcu #micropython
Вопрос:
У меня есть микроконтроллер Lolin, подобный этому Lolin v3
У меня есть плата PCA9685, подобная этому дешевому контроллеру
И я кодирую в MicroPython в устройстве NodeMCU. Мне удалось подключить один из этих маленьких сервоприводов 9g к плате NodeMCU и управлять им. Нет проблем. Я хочу использовать контроллер, так как мне нужно больше сервоприводов, поэтому я подключаю PCA следующим образом:
PCA V <--> 3v3 in the mcu (5v produce no changes)
PCA GND <--> GND in the mcu
PCA SDA <--> SDA (Pin 4) in the mcu
PCA SCL <--> SCL (Pin 5) in the mcu
PCA OE <--> GND, V or open. Makes no difference
Теперь я скачал это PCA9685.py и Servo.py из этого веб-контроллера MicroPython PCA
Я создаю I2C следующим образом
>>> i2c = machine.I2C(scl=machine.Pin(5), sda=machine.Pin(4))
>>> i2c.scan()
[64, 112]
Итак, устройство есть. Кабели в порядке, i2c работает. Но сервоприводы не будут двигаться, несмотря ни на что. Даже не гудит.
Я пытаюсь переместить сервопривод с помощью
servos.position(1, us=1500)
ничего не произошло.. Я подключил несколько сервоприводов к нескольким портам, чтобы убедиться, что это порт 1, а не порт 0 и эти глупые ошибки.. ничего.
Это код, который я запускаю на устройстве прямо сейчас:
from machine import I2C, Pin
import servo
servos = servo.Servos(I2C(scl=Pin(5), sda=Pin(4))
for i in range(16):
servos.position(i, us=1500)
Есть какие-либо подсказки???
Комментарии:
1. Покажите код, в котором вы создаете
servos
. Вы проводили какие-либо электрические испытания, чтобы убедиться, что плата PCA9685 действительно работает?2. вы можете найти код по ссылке, он не мой bitbucket.org/thesheep/micropython-pca9685/src Что касается аппаратного обеспечения, оно работает при подключении к моему Pi
3. Ни один из файлов кода по этой ссылке не создает объект с именем
servos
. Покажите нам, что именно вы делаете, если вам нужна помощь.4. добавил код к вопросу, надеюсь, он прольет некоторый свет 🙂
5. Я не вижу там ничего явно неправильного. Какой код вы используете на Pi? Я все еще думаю, что мы не исключили проблему с электричеством — источник питания сервопривода определенно в порядке? Вы пробовали просто использовать
PCA9685
класс без подключенного сервопривода и проверять выходные данные с помощью осциллографа? В противном случае я бы посоветовал спросить на форуме MicroPython, где, по-видимому, есть некоторые знания в этой области, например forum.micropython.org /…