Firmata与Arduino Mega 1280,无法读取所有输入引脚

nbu*_*chi 5 processing file-io arduino firmata

我有一个Arduino Mega 1280并希望通过Firmata与它通信.这听起来很容易......

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

arduino.digitalWrite(24, Arduino.HIGH);
Run Code Online (Sandbox Code Playgroud)

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

if (arduino.digitalRead(25) == Arduino.HIGH){
  println("is high");
  }
Run Code Online (Sandbox Code Playgroud)

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

if (arduino.digitalRead(25) == Arduino.HIGH){
  println("is high");
  }
Run Code Online (Sandbox Code Playgroud)

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

那么发生了什么?

(是的,我用FirmataTest软件对它进行了测试,一切顺利!)

use*_*326 0

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

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