Bonjour,
Je suis actuellement sur la fin de mon projet en entreprise et je bloque sur la trame. On me demande que à la fin du test, Arduino créé une trame selon si les tests sont passé bon ou pas. ( exemple : 0,0,0,0,1,0,0, cette trame indique que notre test qui concerne le centre n'est pas bon.
Le but de se code est de tester les pistes d'une carte, puis les positions d'un capteur à effet hall ( Centre, Nord, Sud). Pour se qui est de tout ses tests il n'y a aucun problème.
La seul chose qui bloque est sur la fin qui concerne cette trame. Ayant cherché la-dessus je n'ai pas trouvé grand chose qui pourrais me guider.. Je vous demande donc de l'aide. Merci
Voici le code : (il n'y a pas tout vu que je dépassais les 9000 caractères ^^")
void testContinuite()
{
// Initialisation des sorties LEDS
digitalWrite(pinLedRougeStrapp, LOW);
digitalWrite(pinLedVerte, LOW);
// Test continuité signaux
digitalWrite(pinEnvoi, HIGH);
strapp = digitalRead(pinReception); // Contrôle continuité entre J3-1 et J3-6 (signaux PS-ST et LIGHT via un strapp entre J1-1 et J1-6)
if (strapp == HIGH)
{
Serial.println("Test continuité signaux : OK");
erreurStrappSignaux[0] = '0';
}
else
{
Serial.println("Test continuité signaux : NOK");
erreurStrappSignaux[0] = '1';
erreur1++;
}
digitalWrite(pinEnvoi, LOW); // Remise à 0 de la sortie pinEnvoi
delay(1000);
// Test continuité Alim 5V
strapp = digitalRead(pinAlim); // Contrôle continuité entre J3-5 et J1-4 (+5V)
if (strapp == HIGH)
{
Serial.println("Test continuité Alim 5V : OK");
erreurStrappAlim[0] = '0';
}
else
{
Serial.println("Test continuité Alim 5V : NOK");
erreurStrappAlim[0] = '1';
erreur1++;
}
delay(1000);
// Test continuité GND
strapp = digitalRead(pinGnd); // Contrôle continuité entre J3-3 et J1-3 (AGND)
if (strapp == LOW)
{
Serial.println("Test continuité GND : OK");
erreurStrappGnd[0] = '0';
}
else
{
Serial.println("Test continuité GND : NOK");
erreurStrappGnd[0] = '1';
erreur1++;
}
delay(1000);
}
void testCapteur()
{
// Initialisation des sorties qui commandent les relais
digitalWrite(pinRelaisNord, LOW);
digitalWrite(pinRelaisSud, LOW);
// Test CENTRE
neutre = analogRead(pinCapteur); // On n'envoie pas de courant dans la bobine. Lecture de la valeur transmise par le capteur (CENTRE).
delay(500);
Serial.print("Valeur Capteur CENTRE : ");
Serial.println(neutre); // Affichage de la valeur CENTRE sur le moniteur
if ((neutre >= 502) && (neutre <= 514)) // On considère le CENTRE OK si compris entre 502 et 514
{
Serial.println("Test capteur (pole CENTRE) : OK"); // Test CENTRE OK
erreurCapteurCentre[0] = '0';
}
else
{
Serial.println("Test capteur (pole CENTRE) : NOK"); // Test CENTRE NOK
erreurCapteurCentre[0] = '1';
erreur2++;
}
delay(1000);
resultatCentre = ((neutre * 5) / 1023);
Serial.print("Résultat Centre : ");
Serial.print(resultatCentre);
Serial.println("V");
delay(2000);
// Test NORD
digitalWrite(pinRelaisNord, HIGH); // On active le relais NORD pour faire passer le courant dans un sens dans la bobine
delay(500);
nord = analogRead(pinCapteur);
Serial.print("Valeur Capteur NORD : ");
Serial.println(nord); // affichage de la valeur NORD sur le moniteur
if ((nord <= 501)) // On considère le NORD OK si inferieur à 502
{
Serial.println("Test capteur (pole NORD) : OK"); // affichage de la valeur NORD sur le moniteur
erreurCapteurNord[0] = '0';
}
else
{
Serial.println("Test capteur (pole NORD) : NOK"); // Test NORD NOK
erreurCapteurNord[0] = '1';
erreur2++;
}
digitalWrite(pinRelaisNord, LOW);
resultatNord = ((nord * 5) / 1023);
Serial.print("Résultat Nord : ");
Serial.print(resultatNord);
Serial.println("V");
delay(2000);
// Test SUD
digitalWrite(pinRelaisSud, HIGH); // On active le relais NORD pour faire passer le courant dans un sens dans la bobine
delay(500);
sud = analogRead(pinCapteur);
Serial.print("Valeur Capteur SUD : ");
Serial.println(sud); // affichage de la valeur NORD sur le moniteur
if ((sud >= 515)) // On considère le SUD OK si superieur à 514
{
Serial.println("Test capteur (pole SUD) : OK");
erreurCapteurSud[0] = '0';
}
else
{
Serial.println("Test capteur (pole SUD) : NOK"); // Test SUD NOK
erreurCapteurSud[0] = '1';
erreur2++;
}
digitalWrite(pinRelaisSud, LOW);
resultatSud = ((sud * 5) / 1023);
Serial.print("Résultat Sud : ");
Serial.print(resultatSud);
Serial.println("V");
delay(2000);
}
void gestionTrame()
{
strcpy (trame, erreurBouton);
strcat (trame, comma);
strcat (trame, erreurStrappSignaux);
strcat (trame, comma);
strcat (trame, erreurStrappAlim);
strcat (trame, comma);
strcat (trame, erreurStrappGnd);
strcat (trame, comma);
strcat (trame, erreurCapteurCentre);
strcat (trame, comma);
strcat (trame, valeurCentre);
strcat (trame, comma);
strcat (trame, erreurCapteurNord);
strcat (trame, comma);
strcat (trame, valeurNord);
strcat (trame, comma);
strcat (trame, erreurCapteurSud);
strcat (trame, comma);
strcat (trame, valeurSud);
Serial.print("Erreur 1 : ");
Serial.println(erreur1);
Serial.print("Erreur 2 : ");
Serial.println(erreur2);
if (erreur1 == 0 && erreur2 == 0)
digitalWrite(pinLedVerte, HIGH);
if (erreur1 > 0)
digitalWrite(pinLedRougeStrapp, HIGH);
if (erreur2 > 0)
digitalWrite(pinLedRougeCpt, HIGH);
Serial.print("Trame : ");
Serial.println(trame);
delay(10000);
}

