0

私はADK2012arduinodueのようなデバイスを持っています。私はGoogleのarduinoソフトウェアのコピーを使用しており、さまざまなスケッチを問題なくコンパイルして実行できます。

アナログ入力に接続したLM35があります。デフォルトでは、基準電圧は5ボルトです。これは正常に機能しているようですが、ここに記載されているように、別のanalogReference値を使用したいと思います。

http://arduino.cc/en/Reference/AnalogReference

残念ながら、問題が発生しています。私がこれを使うDEFAULTEXTERNAL好きなとき:

analogReference(DEFAULT);

コンパイルすると次のようになります。

AnalogReadSerial.cpp: In function 'void setup()':
AnalogReadSerial:12: error: invalid conversion from 'int' to 'eAnalogReference'
AnalogReadSerial:12: error: initializing argument 1 of 'void analogReference(eAnalogReference)'

INTERNAL、、、INTERNAL1V1またはに設定しようとするとINTERNAL2V56、次のようなエラーが発生します。

AnalogReadSerial.cpp: In function 'void setup()':
AnalogReadSerial:12: error: 'INTERNAL' was not declared in this scope

私はここで少し行き止まりになっています。私はArduinoやWiringに精通していないため、これが提供されたデバイス構成の問題なのか、物理ハードウェアの実際の制限なのか、内部のバグや非互換性なのかを知ることができません。

私が使用しているハードウェアが比較的まれであり、多くのドキュメントがないように見えるのは残念です。この問題を解決するためにどこから始めればよいかについての提案をいただければ幸いです。

4

4 に答える 4

0

analogRefence() は引数として enum のようなものを期待しているようです

そしてarduino.hの定義はintです

最新の arduino ide (rev 1.0.1) をお持ちですか?

arduino用のツールチェーンを作成し、それを別のIDE(netbeans)にリンクした
ので、arduinoコアのデバッグは非常に簡単です。

バグは見つかりませんでした (最新の arduino ide で動作します);

とにかく、arduino mega (ADK) の場合、新しい IDE でこれを行うことができます。これが
機能する場合は、間違ったボードを選択しています (ツール>>ボード>>arduino mega2560 または mega ADK)。

analogReference(0); //EXTERNAL
analogReference(1); //DEFAULT
analogReference(2); //INTERNAL1V1
analogReference(3); //INTERNAL2V56
于 2012-10-06T23:54:04.060 に答える
0

答えは次のとおりです(arduinoのドキュメントが追いついたので、5か月後)ことがわかりました。

これらのデバイスはネイティブで 3.3 ボルトで動作するため、このanalogReference機能は有効になりません。

Due のアナログ入力ピンは、グランドから 3.3V の最大値まで測定します。Due のピンに 3.3V を超える電圧を印加すると、SAM3X チップが損傷します。due では analogReference() 関数は無視されます。

http://arduino.cc/en/Main/ArduinoBoardDue

于 2013-02-03T04:22:37.397 に答える
0

µC は常に外部リファレンスを使用しますが、ハードウェアは 3.3V に接続されています。AREF を使用したい場合は、ボード上の 0 オーム抵抗を変更できます。

于 2014-01-11T21:54:34.377 に答える