Étape 4: Ouf... que 94 lignes cette fois
Le Code de l’Arduino :
///////////////////////////////
#include < math.h >
chargePin octets = 9 ;
triggerPin octets = 8 ;
noninvertingPin octets = A0 ;
invertingPin octets = A1 ;
float constRes = 100 ;
unsigned long timeStart ;
unsigned long timeEnd ;
différence de temps long non signé ;
unsigned longue capacité ;
inductance de long non signé ;
unsigned longue résistance ;
unsigned longue fréquence ;
String str ;
char c ;
void setup() {}
Serial.Begin(9600) ;
pinMode (chargePin, sortie) ;
pinMode (triggerPin, entrée) ;
pinMode (noninvertingPin, entrée) ;
pinMode (invertingPin, entrée) ;
Str = "" ;
c = « \n » ;
}
void loop() {}
while((Serial.available() > 0)) {}
c = Serial.read() ;
Si (! () c=='\n')) {
Str += c ;
}
else {}
Si (str == « requestFarads ») {}
testCapacitance() ;
Serial.println(capacitance) ;
}
ElseIf (str == « requestHenrys ») {}
testInductance() ;
Serial.println(inductance) ;
}
ElseIf (str == « requestOhms ») {}
testResistance() ;
Serial.println(Resistance) ;
}
ElseIf (str == « requestHertz ») {}
testFrequency() ;
Serial.println(Frequency) ;
}
Str = "" ;
while(Serial.available() > 0) Serial.read() ;
}
}
digitalWrite (chargePin, basse) ;
}
void testCapacitance () {}
digitalWrite (chargePin, basse) ;
while(analogRead(noninvertingPin) > 1) {}
timeStart = micros() ;
digitalWrite (chargePin, HIGH) ;
while(!digitalRead(triggerPin)) {if((micros()-timeStart)>5000000) break;}
timeEnd = micros() ;
différence de temps = timeEnd-timeStart ;
capacité en nanoFarads
capacité = (-1*((timeDelta*1000)/((log((1000000-(1000000*analogRead(invertingPin)/1024)))-log(1000000))*constRes))) ;
}
void testInductance () {}
digitalWrite (chargePin, basse) ;
while(analogRead(noninvertingPin) > 1) {}
timeStart = micros() ;
digitalWrite (chargePin, HIGH) ;
while(digitalRead(triggerPin)) {if((micros()-timeStart)>5000000) break;}
timeEnd = micros() ;
différence de temps = timeEnd-timeStart ;
inductance à nanoHenrys
inductance = (-1*((1000*timeDelta*constRes)/(log(1000000*analogRead(invertingPin)/1024)-log(1000000))) ;
}
void testResistance () {}
digitalWrite (chargePin, HIGH) ;
Delay(100) ;
résistance = (float(analogRead(noninvertingPin))*100)/(1024-float(analogRead(noninvertingPin))) ;
}
void testFrequency () {}
fréquence = pulseIn (triggerPin, HIGH) ;
fréquence += pulseIn (triggerPin, basse) ;
fréquence = 1/fréquence ;
}