実現したいこと
1番初めに出てくる静電容量の値が明らかにおかしいのでどうにかしたい
前提
arduinoを使って下記のソースコードで静電容量の値を時系列データとして出力してるのですが、1番初めに出てくる値が2番目以降に吐き出される値に対して異常に大きい値になるので出力されないようにしたい。
発生している問題・エラーメッセージ
測定結果の例
2.770e-12
1.771e-12
1.634e-12
1.688e-12
1.826e-12
1.798e-12
該当のソースコード
const int OUT_PIN = A2; const int IN_PIN = A0; //Capacitance between IN_PIN and Ground //Stray capacitance is always present. Extra capacitance can be added to //allow higher capacitance to be measured. const float IN_STRAY_CAP_TO_GND = 24.48; //initially this was 30.00 const float IN_EXTRA_CAP_TO_GND = 0.0; const float IN_CAP_TO_GND = IN_STRAY_CAP_TO_GND + IN_EXTRA_CAP_TO_GND; const int MAX_ADC_VALUE = 1023; void setup() { pinMode(OUT_PIN, OUTPUT); //digitalWrite(OUT_PIN, LOW); //This is the default state for outputs pinMode(IN_PIN, OUTPUT); //digitalWrite(IN_PIN, LOW); Serial.begin(115200); } void loop() { //Capacitor under test between OUT_PIN and IN_PIN //Rising high edge on OUT_PIN pinMode(IN_PIN, INPUT); digitalWrite(OUT_PIN, HIGH); int val = analogRead(IN_PIN); //Clear everything for next measurement digitalWrite(OUT_PIN, LOW); pinMode(IN_PIN, OUTPUT); //Calculate and print result delay(500); float capacitance = (float)val * IN_CAP_TO_GND / (float)(MAX_ADC_VALUE - val); Serial.print(capacitance, 3); Serial.print(F("e-12")); Serial.println(F(" ")); while (millis() % 500 != 0) ; }
試したこと
googleで調べたがわからなかった

回答2件
あなたの回答
tips
プレビュー