Arduino分圧回路による抵抗測定(回路・プログラム)
ロガー代わりにArduinoで分圧回路を使うことが良くありますのでここにメモっておきます。n回積算の平均化も行っています。
原理
コード
デジタルピンを分圧回路への電源供給に使っちゃってます。多分あんまりよくない方法です。
#define voltPin1 2 #define readPin1 A2 float Rref1 = 10.03; float voltAplied = 4.97;//V byte num1 = 5; void setup() { Serial.begin(9600); pinMode(voltPin1, OUTPUT); } void loop() { digitalWrite(voltPin1,HIGH); float resistance1 = resMeasure(readPin1, num1, Rref1); digitalWrite(voltPin1,LOW); Serial.println(resistance1); delay(500); } float resMeasure(byte pin, byte num, float resRef){ float test[num]; for (byte i=0; i<num; i++){ int analogData = analogRead(pin); float voltSmp = analogData* voltAplied; voltSmp /= 1024; float voltRef = voltAplied - voltSmp ; float resSmp = voltSmp/voltRef; resSmp *= resRef; test[i] = resSmp;} float resAve = makeAve(test, num); return resAve; } float makeAve(float readArray[], byte number){ byte i; float sum = 0; for (i=0; i<number; i++){ sum += readArray[i]; } float averate = sum / number; return averate; }