MegaのanalogReadの8〜15番ピンの読取りでバグがあります。
ArduinoのForum内の
http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1250970792/7
書いてあります。
Megaのハードウェアの問題ではなく、Arduino17のソフトの問題らしいです。
次回のArduino18からはバグ修正されるそうです。
解決法はArduino16に戻ってアップロードするか、
どうしてもArduino17を使いたいならば、既存のコード(バグ)を書き換える必要があります。
MacならArduino17のアプリケーション(Arduino.app)を右クリック(もしくはcontrolキー+クリック)して「パッケージの内容を表示」を選択すると、appファイルの中身を見ることができます。
Arduino.app>Contents>Resources>Java>hardware>cores>arduino>wiring_analog.c
上記ディレクトリの「wiring_analog.c」をテキストエディタなどで開いて、
45行目あたりにある
ADMUX = (analog_reference << 6) | (pin & 0x0f);
を
ADMUX = (analog_reference << 6) | (pin & 0x07);
に書き換えて保存すればOKです。
動きました!ありがとうございます。
返信削除