Salut à tous !!
Je vous sollicite dans le cadre de mon projet car j'ai un petit problème concernant l'acquisition.
Je me sers de l'arduino comme carte d'acquisition type NI.
Jusque là je faisais de l'acquisition en continu (température, profil de force, etc ....) sans boucle. Aujourd'hui je voudrais acquérir la force max en fonction du déplacement et de la température.
Je vous explique : Je fais des essais sur un groupe hydraulique et lors de mes essais j'obtiens via une force en fonction d'un déplacement et j'ai aussi une mesure de température. Cet essai est cyclique est se déroule 500 000 fois.
Jusque là, les acquisition en continu ne me pose pas de problème.
Ce que je n’arrive pas à faire, c'est là détection de cycle !!! Comment dire qu'il ne doit prendre seulement que la valeur max d'effort, la position et la température sur chaque cycle et la stocké (accessoirement l'affiché aussi) ?
J'avais déjà fait ça comme code, ça marchait très bien mais pour de l'acquisition en temps réel ?
// rappel valeur max en entrée des pin digital et analogique 5V !!!
// alimentation possible 3.3 V et 5 V
// alimentation max de l'arduino 12V
int analogPin0 = 0; // déclaration pin 0
int analogPin1 = 1; // déclaration pin 0
int analogPin2 = 2; // déclaration pin 0
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Pousse Pousse Pousse Pousse !!!!!!!!!");
pinMode(13, 1);
}
// définition de la boucle d'acquisition
void loop() {
// Acquisition teméprature
// Différence de température de +0.5°C par rappor au thermomètre Quick A552/0
int tension_1 = analogRead(analogPin0); //lecture Pin0 // déclaration variable temperature = valeur lue de la pin0
float tension1 = (tension_1 * 5.0) / 1023; // La tension est un entier qui va de 0 à 1023 x tension (5V). Il faut la convertir en tension:
float temp = 100 * (tension1 - 0.6); // conversion en °C
// Acquisition déplacement selon force max
int tension_3 = analogRead(analogPin2); // déclaration variable temperature = valeur lue de la pin2
float tension3 = (tension_3 * 5.0) / 1023; // La tension est un entier qui va de 0 à 1023 x tension (5V). Il faut la convertir en tension:
float deplacement = 10 * tension3; // conversion en mm 10mm/V
// Acquisition force
int tension_2 = analogRead(analogPin1); // déclaration variable temperature = valeur lue de la pin1
float tension2 = (tension_2 * 5.0) / 1023; // La tension est un entier qui va de 0 à 1024 x tension (5V). Il faut la convertir en tension:
float force = 2000 * tension2; // conversion en N 2000N/V
Serial.println("Nouveau cycle");
Serial.print(temp); // affichage val température dans moniteur
Serial.print("°C \t");
Serial.print(forcemax); // affichage val température dans moniteur
Serial.print("N \t");
Serial.print(deplacement); // affichage val température dans moniteur
Serial.print("mm \t");
Serial.println("");
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);
delay(500);
}
Merci d'avance
J’espère que vous pourrez m'aider !!!