Цифровые входные контакты на arduino nano со стандартными firmata и pyfirmata всегда «Нет»
Я подключил контакт D2 на моем arduino nano к высокому уровню и попробовал его с помощью программы arduino c, и он работает. Однако, когда я загружаю стандартные фирменные данные на контроллер из IDE arduino и пробую следующую программу python:
import pyfirmata
board = pyfirmata.Arduino('/dev/ttyUSB0')
for x in range(2,14):
print("%s %s" % (x, board.get_pin("d:%s:i" % x).read()))
Я понял:
$ venv/bin/python test.py
2 None
3 None
4 None
5 None
6 None
7 None
8 None
9 None
10 None
11 None
12 None
13 None
Я могу писать цифровые пины с помощью fermata и pyfirmata, но не могу читать.
Я также пробовал это:
import pyfirmata
board.digital[2].mode = pyfirmata.INPUT
board.digital[3].mode = pyfirmata.INPUT
for x in range(2,14):
print("%s %s" % (x, board.digital[x].read()))
и другие комбинации, и всегда получайте None
(отключение провода на картинке тоже ничего не меняет)
Я также только что повторил эксперимент с Arduino Uno и получил тот же результат
поэтому я думаю, что мои вопросы:
- Может ли кто-нибудь заметить что-то очевидное, что я делаю неправильно?
- Может ли кто-нибудь подтвердить, что ввод pyfirmata вообще работает?
- Что вы сделали такого, чего не делаю я?
@Alex028502, 👍0
Обсуждение1 ответ
Лучший ответ:
"Нет" указывает, что функция read() не может найти данные, поскольку входящий последовательный поток никогда не обслуживался. Запустите итератор, чтобы запустить новый поток Python, обслуживающий последовательный порт в фоновом режиме.
it = pyfirmata.util.Iterator(board)
it.start()
- Почему номера выводов диаграмм и кода отличаются друг от друга?
- Arduino Nano использует контакты SPI в качестве контактов ввода-вывода? а еще можно сделать ISP?
- Почему некоторые контакты Arduino Nano (D3, D4, A3, A4, A6, A7) не могут быть установлены на высокий уровень?
- Выход 3,3 В при установке вывода на высокий уровень
- Невозможно использовать аналоговые контакты в качестве цифровых входов
- Проблема с использованием выводов A4 и A5 для ввода и вывода I2C
- Использую nRF2401, и в передатчике и приемнике Rx не мигает, а Tx мигает; почему Rx не мигает?
- Как заставить Arduino Nano управлять шаговым двигателем с помощью Firmata
что должен делать резистор?, @Juraj
Если я не сделал что-то совершенно неправильное, это подтягивающий резистор на случай, если я захочу отсоединить желтый провод, чтобы увидеть низкий уровень сигнала на «D2». Это было необходимо, когда я тестировал установку с arduino-c., @Alex028502