Arduinoの「error: variable or field 'foo' declared void 」は#includeをまとめて書くと直るかも
Arduinoで別々に書いたスケッチを合わせる時、
単純に#includeとか変数をコピるとエラーになることがある。
確認したのはArduino 1.0.5と1.0.6
一番単純な再現コード(/**/が自動挿入される部分)
Arduino IDE inserts forward declaration.ino
最初の変数定義の直前に#include "Arduino.h"や関数の前方宣言を挿入するようですが、
includeの順番によっては関数の引数で使っている型(この場合はTwoWire)がその時点で未定義なので、エラーとなる。
#includeをまとめて書くことで、前方宣言に不明な型をなくすことができる。
C++のつもりで書いているとハマるので注意。
C++が読める人は「環境設定」から「より詳細な情報を表示する」にチェックを入れておくと、Arduinoが書き出すファイルパスなどが出力されるので、謎のエラーを解決しやすくなります。