Stap 4: Oef... alleen 94 lijnen dit keer
De Arduino-Code:
///////////////////////////////
#include < math.h >
byte chargePin = 9;
byte triggerPin = 8;
byte noninvertingPin = A0;
byte invertingPin = a1 worden verkregen;
zweven constRes = 100;
niet-ondertekende lange Tijdstart;
unsigned long timeEnd;
unsigned long timeDelta;
niet-ondertekende long capaciteit;
niet-ondertekende lange inductie;
niet-ondertekende lange weerstand;
niet-ondertekende lange frequentie;
Koord str;
char c;
VOID Setup {}
Serial.begin(9600);
pinMode (chargePin, OUTPUT);
pinMode (triggerPin, INPUT);
pinMode (noninvertingPin, INPUT);
pinMode (invertingPin, INPUT);
Str = "";
c = '\n';
}
void loop {}
while((Serial.available() > 0)) {}
c = Serial.read();
Als (! () c=='\n')) {
Str += c;
}
else {}
Als (str == "requestFarads") {}
testCapacitance();
Serial.println(Capacitance);
}
anders als (str == "requestHenrys") {}
testInductance();
Serial.println(Inductance);
}
anders als (str == "requestOhms") {}
testResistance();
Serial.println(Resistance);
}
anders als (str == "requestHertz") {}
testFrequency();
Serial.println(Frequency);
}
Str = "";
while(Serial.available() > 0) Serial.read();
}
}
digitalWrite (chargePin, laag);
}
VOID testCapacitance () {}
digitalWrite (chargePin, laag);
while(analogRead(noninvertingPin) > 1) {}
Tijdstart = micros();
digitalWrite (chargePin, hoge);
while(!digitalRead(triggerPin)) {if((micros()-timeStart)>5000000) breken;}
timeEnd = micros();
timeDelta = timeEnd-Tijdstart;
capaciteit in nanoFarads
capaciteit = (-1*((timeDelta*1000)/((log((1000000-(1000000*analogRead(invertingPin)/1024)))-log(1000000))*constRes)));
}
VOID testInductance () {}
digitalWrite (chargePin, laag);
while(analogRead(noninvertingPin) > 1) {}
Tijdstart = micros();
digitalWrite (chargePin, hoge);
while(digitalRead(triggerPin)) {if((micros()-timeStart)>5000000) breken;}
timeEnd = micros();
timeDelta = timeEnd-Tijdstart;
Inductantie aan in nanoHenrys
inductie = (-1*((1000*timeDelta*constRes)/(log(1000000*analogRead(invertingPin)/1024)-log(1000000)));
}
VOID testResistance () {}
digitalWrite (chargePin, hoge);
delay(100);
weerstand = (float(analogRead(noninvertingPin))*100)/(1024-float(analogRead(noninvertingPin)));
}
VOID testFrequency () {}
frequentie = pulseIn (triggerPin, hoge);
frequentie += pulseIn (triggerPin, laag);
frequentie = 1/frequentie;
}