我正在尝试将 Arduino 模拟引脚(A0-A5)用作带有 pyfirmata 的数字引脚(D14-D19)。我正在用 D14(或 A0)做一个简单的眨眼测试来测试这个:
#!/usr/bin/python
# Blink test with analog as digital pins
# Import required libraries
from pyfirmata import Arduino, util
from pyfirmata import INPUT, OUTPUT, PWM
from time import sleep
# Associate port and board with pyFirmata
port = '/dev/cu.usbmodem1451'
board = Arduino(port)
# Pause to sync
sleep(1)
led = board.get_pin('d:14:o')
time = 1
while True:
led.write(1)
print ("On")
sleep(time)
led.write(0)
print ("Off")
sleep(time)
为了使模拟引脚充当数字引脚,我进入了 pyfirmata 的 board.py 文件(如https://github.com/tino/pyFirmata/blob/master/pyfirmata/boards.py的 github 存储库中所示)并将第 3 行从
digital': tuple(x for x in range(14)),
至
digital': tuple(x for x in range(20)),
当我运行我的 python 脚本时,我没有收到错误,但是 LED 不闪烁(别担心,我很肯定 LED 的方式是正确的)。
有谁知道我如何有效地将数字引脚 14 实例化为带有 pyfirmata 的输出引脚(如行中所示led = board.get_pin('d:14:o')
)
顺便说一句(不是我认为这会影响任何事情),但我正在运行带有 Yosemite 的 Mac OSX。谢谢!