2017-12-15 15 views
0

私のArduino Elegoo R3ボードにどんなタイプのセンサーを取り付けても、私の値は間違って読み込まれます。何が起こっているなぜArduino AnalogOutputの値は常に間違っていますか?重要なことに

アナログ温度センサ - (DIG)または0,1(アナログ)ない間に火炎の距離に基づいて、いずれかの読み込み0 1023 - 400 +摂氏

炎検知センサを読み取り。

詳細: ボード - Elegoo宇野R3

ブレッドボード

センサーがElegoo 37-センサーキットからです - https://github.com/josejuansanchez/37-in-1-arduino-sensor-kit

Basicコード:私が試した

void setup() { 
    // put your setup code here, to run once: 
    Serial.begin(9600); 
    pinMode(A0, INPUT); 
} 

void loop() { 
    int reading = analogRead(A0); 

// converting that reading to voltage, for 3.3v arduino use 3.3 
float voltage = reading * 5.0; 
voltage /= 1024.0; 

// print out the voltage 
Serial.print(voltage); Serial.println(" volts"); 

// now print out the temperature 
float temperatureC = (voltage - 0.5) * 100 ; //converting from 10 mv per degree wit 500 mV offset 
               //to degrees ((voltage - 500mV) times 100) 
Serial.print(temperatureC); Serial.println(" degrees C"); 

// now convert to Fahrenheit 
float temperatureF = (temperatureC * 9.0/5.0) + 32.0; 
Serial.print(temperatureF); Serial.println(" degrees F"); 

delay(1000);  
} 

他のセンサーと同様の問題があります。

これは私が配線に何か間違っていると信じさせてくれます。さしかし、ピン接続を示す写真で利用可能で、写真のように私は

私はここで見つけるチュートリアルブレッドボードを使用して、正確に配線しています正確にどのように私のセットアップ炎検出のための私のボード:http://www.instructables.com/id/Arduino-Modules-Flame-Sensor/

何私はこのチュートリアルが欠けているとセンサーの読みが間違っていますか?

+0

ADCについては、ADCの変換信号を開始する必要はありませんか? 'analogRead(A0);のコードを与えることができますか?また、スターターキットの正確なコントローラーは何ですか? – Sudhee

答えて

1

Elegoo Uno R3はatmega328を使用していると仮定し、ADCのコード例を示します。 通常、センサーを読み取るには、コントローラーのアナログチャネルの1つにセンサーを接続します(コントローラーにADCが組み込まれている場合)。次に、コントローラにADCを設定する必要があります。設定が完了したら、チャンネルを読み込むために、変換を開始する信号を与えなければなりません(基本的にアナログ値は何で、デジタル値に変換されますか?)変換が完了するのを待ちます。次に、コントローラのADCレジスタからデジタル値を読み取ることができます。 もし副腎基板の任意のアナログチャンネルに接続する必要があなたが言及した火炎センサ、A0アナログ信号でリンク

Example code

次のatmega328たとえば。 D0は、温度が一定のスレッショルドに達したかどうかに応じて0または1だけを与えるデジタルチャネルです。

2

試してみるべきことは、「リアリティチェック」です。A0に正の正の電圧を接続し、反対側をグランドに接続します。正常な1.5Vバッテリは正常に動作するはずです...約1024 * 1.5/5 = 307という値が返されます。もしそうならUnoとコードはOKです。そうでない場合は、センサーと配線を再度確認してください。

もう1つの簡単なテストは、マルチメータ(彼らが頻繁に無料で寄付する港湾貨物作業の1つ)を使用して、炎の有無にかかわらずセンサ出力電圧を測定することです。

0

私はあなたの正確なコードをとり、それをArduinoにダウンロードしました。

A0からGND、3.3V、5Vのジャンパを接続すると、正しい電圧値が表示されるため、コードが正常に動作しているようです。

ところで、setup()ルーチンで 'pinMode(A0、INPUT)'行は必要ありません。

この設定が機能しない場合、チャネルA0が台無しになっている可能性があります。 Boggymanによって提案されたリアリティチェックが必要なものであり、Arduinoボードはこれらの値のうちの3つを簡単に提供できます。ところで、これらはアナログです入力、出力ではありません。あなたの投稿のタイトルは技術的に間違っています。

0.00 volts 
-50.00 degrees C 
-58.00 degrees F 
3.33 volts 
282.52 degrees C 
540.54 degrees F 
5.00 volts 
449.51 degrees C 
841.12 degrees F 
5.00 volts 
関連する問題