5

我有一个 Arduino Mega 1280,想通过 Firmata 与它通信。这听起来很容易...

所以我的问题:如果我使用 Arduino 1.0 中包含的 StandardFirmata 固件,我可以设置输出引脚,并向它们发送信号((突出显示引脚 24 上的 LED):

arduino.digitalWrite(24, Arduino.HIGH);

但我无法从我的 Mega 读取任何数字输入。我发现,有些人在读取高于 13 的端口时遇到问题。我无法验证,我的输入信号从端口 23 开始。例如:

if (arduino.digitalRead(25) == Arduino.HIGH){
  println("is high");
  }

现在我在我的 Mega 上安装了 AllInputsFirmata,它也预装在 Arduino 1.0 中。现在从数字输入读取没有问题:示例:

if (arduino.digitalRead(25) == Arduino.HIGH){
  println("is high");
  }

但这一次,我无法发出任何信号。

那么发生了什么?

(是的,我用 FirmataTest 软件对其进行了测试,一切正常!)

4

1 回答 1

0

不确定,但在 Arduino c++ 中,首先需要设置引脚的模式,然后才能发送数据。首先设置模式时,数字读取效果也更好。在这里可能同样适用吗?

如果是这样,这可能对您有所帮助http://arduino.cc/en/Reference/Firmata

于 2012-12-03T17:50:04.473 回答