Skip to content
Snippets Groups Projects
Commit 2a4f9ebc authored by hichbra's avatar hichbra
Browse files

Initial commit

parents
Branches
No related merge requests found
Pipeline #109 canceled with stages
#define PORT_HALL A0
#define PORT_FSR A2
int hallAnalogique ;
int gauss;
// -------------------------------------------------
int fsrAnalogique ; // La lecture analogique depuis le pont diviseur FSR+Resistance.
int fsrVoltage; // La lecture analogique convertie en tension
unsigned long fsrResistance; // La tension convertie en resistance
unsigned long fsrConductance;
long fsrForce; // La resistance convertie en force (Newton)
//--------------------------------------------------
void setup(){
Serial.begin(9600);
}
void loop(){
// ---------------------------------- Lecture et calcul du champ magnétique ----------------------------------------
// lecture de la valeur analogique (entre 0 et 1024) pour une tension entre 0 et 5V
int hallAnalogique = analogRead(PORT_HALL);
// transforme la valeur lue en Gauss
// les valeurs évoluant entre 102 et 922 sont transformées en valeur évoluant entre -640 et 640
// valeur à -640 pour 0.5V / 640 pour 4.5V
gauss = map(hallAnalogique, 102, 922, -640, 640);
// ------------------------------------- Lecture et calcul de la Force ----------------------------------------------
// lecture de la valeur analogique du capteur de force (entre 0 et 1024) pour une tension entre 0 et 5V
fsrAnalogique = analogRead(PORT_FSR);
// lecture de la valeur analogique (entre 0 et 1023) pour une tension entre 0 et 5V (= 5000mV)
fsrVoltage = map(fsrAnalogique, 0, 1023, 0, 5000);
//Serial.print("Lecture de la tension en mV = "); Serial.println(fsrVoltage);
if (fsrVoltage == 0) {
Serial.println("Aucune pression");
} else {
// La tension = Vcc * R / (R + FSR) où R = 10K et Vcc = 5V
// d'où FSR = ((Vcc - V) * R) / V
fsrResistance = 5000 - fsrVoltage; // fsrVoltage est en millivolts donc 5V = 5000mV
fsrResistance *= 10000; // 10K resistance
fsrResistance /= fsrVoltage;
//Serial.print("FSR resistance en ohms = "); Serial.println(fsrResistance);
fsrConductance = 1000000; // on mesure en micro-ohm
fsrConductance /= fsrResistance;
//Serial.print("Conductance en micro-ohm : "); Serial.println(fsrConductance);
// Approximation de la force en Newton
fsrForce = fsrConductance / 80;
//Serial.print("Force en Newtons: "); Serial.println(fsrForce);
}
// ------------------------------------- Affichage des résultats ----------------------------------------------
Serial.println("---------------------------------------------------");
// Affiche la valeur en Gauss
Serial.print("=> champ magnétique = "); Serial.print(gauss); Serial.println(" Gauss");
// Affiche la valeur du capteur de force (Tension/Newton)
Serial.print("=> Force Analogique = "); Serial.print(fsrAnalogique); Serial.print(" || Force en Newtons: "); Serial.println(fsrForce);
// attendre 1/10 de seconde
delay(1000);
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment