Arexx SIMONIN : Différence entre versions
Ligne 159 : | Ligne 159 : | ||
Serial.println("Pour depanner la led gauche, veuillez:"); | Serial.println("Pour depanner la led gauche, veuillez:"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Ligne 177 : | Ligne 179 : | ||
Serial.println("Pour depanner la led milieu gauche, veuillez:"); | Serial.println("Pour depanner la led milieu gauche, veuillez:"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Ligne 195 : | Ligne 199 : | ||
Serial.println("Pour depanner la led milieu droite, veuillez:"); | Serial.println("Pour depanner la led milieu droite, veuillez:"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Ligne 213 : | Ligne 219 : | ||
Serial.println("Pour depanner la led droite, veuillez:"); | Serial.println("Pour depanner la led droite, veuillez:"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Ligne 268 : | Ligne 276 : | ||
Serial.println("Le recepteur du cote gauche ne fonctionne pas"); | Serial.println("Le recepteur du cote gauche ne fonctionne pas"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println("Verifier que la piste ne soit pas coupee."); | Serial.println("Verifier que la piste ne soit pas coupee."); | ||
Ligne 296 : | Ligne 306 : | ||
Serial.println("le recepteur du cote droit ne fonctionne pas"); | Serial.println("le recepteur du cote droit ne fonctionne pas"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println("Verifier que la piste ne soit pas coupee."); | Serial.println("Verifier que la piste ne soit pas coupee."); | ||
Ligne 324 : | Ligne 336 : | ||
Serial.println("Le recepteur milieu gauche ne fonctionne pas"); | Serial.println("Le recepteur milieu gauche ne fonctionne pas"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println("Verifier que la piste ne soit pas coupee."); | Serial.println("Verifier que la piste ne soit pas coupee."); | ||
Ligne 352 : | Ligne 366 : | ||
Serial.println("Le recepteur milieu droit ne fonctionne pas"); | Serial.println("Le recepteur milieu droit ne fonctionne pas"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println("Verifier que la piste ne soit pas coupe."); | Serial.println("Verifier que la piste ne soit pas coupe."); | ||
Ligne 699 : | Ligne 715 : | ||
Serial.println("Pour depanner la led gauche, veuillez:"); | Serial.println("Pour depanner la led gauche, veuillez:"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Ligne 717 : | Ligne 735 : | ||
Serial.println("Pour depanner la led milieu gauche, veuillez:"); | Serial.println("Pour depanner la led milieu gauche, veuillez:"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Ligne 735 : | Ligne 755 : | ||
Serial.println("Pour depanner la led milieu droite, veuillez:"); | Serial.println("Pour depanner la led milieu droite, veuillez:"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Ligne 753 : | Ligne 775 : | ||
Serial.println("Pour depanner la led droite, veuillez:"); | Serial.println("Pour depanner la led droite, veuillez:"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Ligne 891 : | Ligne 915 : | ||
Serial.println("Pour depanner l emetteur gauche, veuillez:"); | Serial.println("Pour depanner l emetteur gauche, veuillez:"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Ligne 907 : | Ligne 933 : | ||
Serial.println("Pour depanner l emetteur milieu gauche, veuillez:"); | Serial.println("Pour depanner l emetteur milieu gauche, veuillez:"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Ligne 923 : | Ligne 951 : | ||
Serial.println("Pour depanner l emetteur milieu droite, veuillez:"); | Serial.println("Pour depanner l emetteur milieu droite, veuillez:"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Ligne 939 : | Ligne 969 : | ||
Serial.println("Pour depanner l'emetteur droit, veuillez:"); | Serial.println("Pour depanner l'emetteur droit, veuillez:"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println( "Verifier que la piste ne soit pas coupee."); | Serial.println( "Verifier que la piste ne soit pas coupee."); | ||
Ligne 987 : | Ligne 1 019 : | ||
Serial.println("Le recepteur du cote gauche ne fonctionne pas"); | Serial.println("Le recepteur du cote gauche ne fonctionne pas"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println("Verifier que la piste ne soit pas coupee."); | Serial.println("Verifier que la piste ne soit pas coupee."); | ||
Ligne 1 015 : | Ligne 1 049 : | ||
Serial.println("le recepteur du cote droit ne fonctionne pas"); | Serial.println("le recepteur du cote droit ne fonctionne pas"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println("Verifier que la piste ne soit pas coupee."); | Serial.println("Verifier que la piste ne soit pas coupee."); | ||
Ligne 1 043 : | Ligne 1 079 : | ||
Serial.println("Le recepteur milieu gauche ne fonctionne pas"); | Serial.println("Le recepteur milieu gauche ne fonctionne pas"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println("Verifier que la piste ne soit pas coupee."); | Serial.println("Verifier que la piste ne soit pas coupee."); | ||
Ligne 1 071 : | Ligne 1 109 : | ||
Serial.println("Le recepteur milieu droit ne fonctionne pas"); | Serial.println("Le recepteur milieu droit ne fonctionne pas"); | ||
+ | |||
+ | Serial.println( "Verifier la coherence ou la qualite des resistances et transistors."); | ||
Serial.println("Verifier que la piste ne soit pas coupee."); | Serial.println("Verifier que la piste ne soit pas coupee."); |
Version du 19 juin 2015 à 10:46
Sommaire
Projet tutorés
Présentation
Nous avons composé un groupe de 4 personnes, formé de :
- BOURENNANE Adrien
- LLITJOS Maxime
- HGUIG Abderrahmane
- SIMONIN Mathieu
Le projet consiste à créer un robot suiveur de ligne, pour se faire. On doit suivre un cahier des charges précis.
Après analyse du besoin, des solutions techniques apparaissent pour répondre à ces besoins.
On aboutit alors à la création de deux cartes.
- La carte capteur pour l’analyse de la piste sur laquelle le robot évolue.
- Une carte « gestion » pour commander le moteur et la réaction du robot afin de rester sur la piste.
Pour créer une carte électronique la première étape est de réaliser un schéma électrique.
Une fois le schéma électrique fini il faut concevoir le routage.
Pour créer une carte, il faut élaborer un cahier des charges afin de respecter son bon fonctionnement :
- Faire des pistes les plus courtes et larges possibles, pas de court-circuit, les cartes vont être superposées donc les emplacements des connecteurs doivent être au même endroit.
- Pour la carte capteur, les capteurs doivent être sur la couche bottom, les leds pour signaler la détection de la piste doivent être cohérentes (en face du bon capteur) et visibles par l’utilisateur.
- Pour la carte gestion, les boutons poussoirs pour changer le mode de fonctionnement doivent être accessibles par l’utilisateur donc sur la couche top. Certains composants ont besoin de dissiper leur chaleur donc un système de pistes larges est nécessaire.
Nous avons choisi de tester la carte du duo BOURENNANE/FRERSON, binôme lors du premier semestre
Diagramme de Gantt
Nous nous sommes repartis équitablement le travail, à l'aide d'un diagramme de Gantt. Abderrahmane et Mathieu se sont chargés du dossier, quand Adrien et Maxime s'occupaient des tests. En revanche l'élaboration des programmes a été réalisé par le groupe tout entier.
Tests des leds
Lors de ce test, nous avons essayé de déterminer si une led s'allume ou non. Si non, nous essayons de déterminer la cause de ce problème.
///////////////////////////////////////////////////Sous programme permettant de tester les leds/////////////////////////////////////////////////////////////////
void testled () {
// on determine les variables locales nécessaire a la sous fonction
int gauche = '0'; int droit = '0'; int milieugauche = '0'; int milieudroit = '0'; int i = 0;
// On fait clignoter les leds (si elles fonctionnent)
for (i = 0; i < 5; i++)
digitalWrite(0, 1);
digitalWrite(1, 1);
digitalWrite(2, 1);
digitalWrite(3, 1);
delay(500);
digitalWrite(0, 0);
digitalWrite(1, 0);
digitalWrite(2, 0);
digitalWrite(3, 0);
delay(500);
}
//On demande si la led gauche clignote
Serial.println("La led gauche clignote t-elle ? ");
Serial.println("tapez 1 pour oui et 2 pour non ");
do {
if (Serial.available() > 0) {
gauche = Serial.read();
}
} while (gauche == '0');
//On demande si la led du milieu gauche clignote
Serial.println("La led du milieu gauche clignote t-elle ? ");
Serial.println("tapez 1 pour oui et 2 pour non ");
do {
if (Serial.available() > 0) {
milieugauche = Serial.read();
}
} while (milieugauche == '0');
//On demande si la led du milieu droit clignote
Serial.println("La led du milieu droit clignote t-elle ? ");
Serial.println("tapez 1 pour oui et 2 pour non ");
do {
if (Serial.available() > 0) {
milieudroit = Serial.read();
}
} while (milieudroit == '0');
//On demande si la led droite clignote
Serial.println("La led droite clignote t-elle ? ");
Serial.println("tapez 1 pour oui et 2 pour non ");
do {
if (Serial.available() > 0) {
droit = Serial.read();
}
} while (droit == '0');
//On fait un test pour savoir quelle led ne fonctionne pas et ainsi reporter la fiche de dépannage à l'utilisateur pu programme
if (gauche == '2') {
Serial.println("Pour depanner la led gauche, veuillez:");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println( "Verifier que la piste ne soit pas coupee.");
Serial.println( "Verifier qu'il n'y est pas de court circuit.");
Serial.println( "Verifier que le capteur fonctionne.");
} else {
Serial.println("La led Gauche fonctionne normalement");
}
//On fait un test pour savoir quelle led ne fonctionne pas et ainsi reporter la fiche de dépannage à l'utilisateur pu programme
if (milieugauche == '2') {
Serial.println("Pour depanner la led milieu gauche, veuillez:");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println( "Verifier que la piste ne soit pas coupee.");
Serial.println( "Verifier qu'il n'y est pas de court circuit.");
Serial.println( "Verifier que le capteur fonctionne.)");
} else {
Serial.println("La led milieu Gauche fonctionne normalement");
}
//On fait un test pour savoir quelle led ne fonctionne pas et ainsi reporter la fiche de dépannage à l'utilisateur pu programme
if (milieudroit == '2') {
Serial.println("Pour depanner la led milieu droite, veuillez:");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println( "Verifier que la piste ne soit pas coupee.");
Serial.println( "Verifier qu'il n'y est pas de court circuit.");
Serial.println( "Verifier que le capteur fonctionne.)");
} else {
Seial.println("La led milieu droit fonctionne normalement");
}
//On fait un test pour savoir quelle led ne fonctionne pas et ainsi reporter la fiche de dépannage à l'utilisateur pu programme
if (droit == '2') {
Serial.println("Pour depanner la led droite, veuillez:");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println( "Verifier que la piste ne soit pas coupee.");
Serial.println( "Verifier qu'il n'y est pas de court circuit.");
Serial.println( "Verifier que le capteur fonctionne.");
} else {
Serial.println("La led droite fonctionne normalement");
}
delay(10000); //On laisse 10 secondes a l utilisateur avant de retourner au menu
}
Tests des récepteurs des capteurs
Lors de ce test, nous avons essayé de déterminer si un capteur fonctionne ou pas. Si le capteur ne fonctionne pas, nous essayons de déterminer la cause de ce dysfonctionnement.
////////////////////////Sous programme permettant de tester la valeur que fournit le capteur/////////////////////////////////////////
void testrecepteur () {
// on definie les variables locales
int cotegauche1 , cotegauche2 , cotedroit1 , cotedroit2, cotemilieudroit1, cotemilieudroit2, cotemilieugauche1, cotemilieugauche2;
// On donne les consignes
Serial.println(" Vous allez tester que les recepteurs des capteurs fonctionnent");
delay(3000);
Serial.println("Pour cela, veuillez POSER la la carte avec les capteurs en direction du support le plus proche possible");
delay(3000);
// test du cote gauche
digitalWrite(4, HIGH);
cotegauche1 = analogRead(A3);
delay(100);
cotegauche2 = analogRead(A3);
if (cotegauche1 == cotegauche2) {
Serial.println("Le recepteur du cote gauche ne fonctionne pas");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println("Verifier que la piste ne soit pas coupee.");
Serial.println("Verifier qu'il n'y est pas de court circuit.");
Serial.println("Verifier que le capteur fonctionne.");
} else {
Serial.println("Le recepteur du cote gauche fonctionne");
}
delay(2000);
// test du cote droit
digitalWrite(6, HIGH);
cotedroit1 = analogRead(A1);
delay(100);
cotedroit2 = analogRead(A1);
if (cotedroit1 == cotedroit2) {
Serial.println("le recepteur du cote droit ne fonctionne pas");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println("Verifier que la piste ne soit pas coupee.");
Serial.println("Verifier qu'il n'y est pas de court circuit.");
Serial.println("Verifier que le capteur fonctionne.");
} else {
Serial.println("le recepteur du cote droit fonctionne");
}
delay(2000);
// test du milieu gauche
digitalWrite(5, HIGH);
cotemilieugauche1 = analogRead(A4);
delay(100);
cotemilieugauche2 = analogRead(A4);
if (cotemilieugauche1 == cotemilieugauche2) {
Serial.println("Le recepteur milieu gauche ne fonctionne pas");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println("Verifier que la piste ne soit pas coupee.");
Serial.println("Verifier qu'il n'y est pas de court circuit.");
Serial.println("Verifier que le capteur fonctionne.");
} else {
Serial.println("Le recepteur milieu gauche fonctionne");
}
delay(2000);
// test du milieu droit
digitalWrite(7, HIGH);
cotemilieudroit1 = analogRead(A2);
delay(100);
cotemilieudroit2 = analogRead(A2);
if (cotemilieudroit1 == cotemilieudroit2) {
Serial.println("Le recepteur milieu droit ne fonctionne pas");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println("Verifier que la piste ne soit pas coupe.");
Serial.println("Verifier qu'il n'y est pas de court circuit.");
Serial.println("Verifier que le capteur fonctionne.");
} else {
Serial.println("Le recepteur milieu droit fonctionne");
}
delay(10000); // On laisse 10 seconde a l'utilisateur avant de retourner au menu
}
Organisation du programme
// on définie les variables globales
int choixtest; // variable globale utilisée à l fois dans le void setup et dans le void menu
void setup() {
// on définie les sorties
pinMode(0, OUTPUT); // Led milieu droit
pinMode(1, OUTPUT); // Led milieu gauche
pinMode(2, OUTPUT); // Led cote gauche
pinMode(3, OUTPUT); // Led cote droit
pinMode(4, OUTPUT); // emetteur IR cote gauche
pinMode(5, OUTPUT); // emetteur IR milieu gauche
pinMode(6, OUTPUT); // emetteur IR cote droit
pinMode(7, OUTPUT); // emetteur IR milieu droit
Serial.begin(9600);
}
void loop() {
menu (); // On effectue dans tous les cas la fonction menu pour savoir ce que veut tester l'utilisateur
switch (choixtest) { // Ensuite la variable choixtest contient la réponse de l’utilisateur
case 1: testled (); // On va donc exécuter le programme de test correspondant.
break;
case 2: testemetteur ();
break;
case 3: testrecepteur ();
break;
} // Une fois le programme choisit effectuer, le programme reviendra automatiquement au menu
}
//////////////////////////////////////////////sous programme s'occupant du menu////////////////////////////////////////////////////////////
void menu () {
// on definit les variables locales
int choix = 0;
Serial.println("Bonjour,vous allez effectuer un programme permettant de tester une carte capteur.");
delay(3000);
Serial.println("Avant de lancer une procedure de test, veuillez vous assurer de:");
delay(3000);
Serial.println("-bien connecter la carte capteur a la carte d'adaptation");
delay(3000);
Serial.println("-puis connecter la carte d adaptation a la carte arduino");
delay(3000);
Serial.println("");
Serial.println("Veuillez choisir le test que vous voulez effectuer:");
delay(1000);
Serial.println("-Le test des Leds : appuyez sur 1");
Serial.println("-Le test des emetteurs des capteurs : appuyez sur 2");
Serial.println("-Le test des recepteurs des capteurs : appuyez sur 3");
delay(3000);
// on attend de lire une valeur
do {
if (Serial.available() > 0) {
choix = Serial.read();
}
} while (choix == '0');
choixtest = choix;
}
Programme final
// on définie les variables globales
int choixtest; // variable globale utilisé à l fois dans le void setup et dans le void menu
void setup() {
// on définie les sorties
pinMode(0, OUTPUT); // Led milieu droit
pinMode(1, OUTPUT); // Led milieu gauche
pinMode(2, OUTPUT); // Led cote gauche
pinMode(3, OUTPUT); // Led cote droit
pinMode(4, OUTPUT); // emetteur IR cote gauche
pinMode(5, OUTPUT); // emetteur IR milieu gauche
pinMode(6, OUTPUT); // emetteur IR cote droit
pinMode(7, OUTPUT); // emetteur IR milieu droit
Serial.begin(9600);
}
void loop() {
menu (); // On effectue dans tous les cas la fonction menu pour savoir ce que veut tester l'utilisateur
switch (choixtest) { // Ensuite la variable choixtest contient la réponse de l’utilisateur
case 1: testled (); // On va donc exécuter le programme de test correspondant.
break;
case 2: testemetteur ();
break;
case 3: testrecepteur ();
break;
} // Une fois le programme choisit effectuer, le programme reviendra automatiquement au menu
}
//////////////////////////////////////////////sous programme s'occupant du menu////////////////////////////////////////////////////////////
void menu () {
// on definit les variables locales
int choix = 0;
Serial.println("Bonjour,vous allez effectuer un programme permettant de tester une carte capteur.");
delay(3000);
Serial.println("Avant de lancer une procedure de test, veuillez vous assurer de:");
delay(3000);
Serial.println("-bien connecter la carte capteur a la carte d'adaptation");
delay(3000);
Serial.println("-puis connecter la carte d adaptation a la carte arduino");
delay(3000);
Serial.println("");
Serial.println("Veuillez choisir le test que vous voulez effectuer:");
delay(1000);
Serial.println("-Le test des Leds : appuyez sur 1");
Serial.println("-Le test des emetteurs des capteurs : appuyez sur 2");
Serial.println("-Le test des resecpteurs des capteurs : appuyez sur 3");
delay(3000);
// on attend de lire une valeur
do {
if (Serial.available() > 0) {
choix = Serial.read();
}
} while (choix == '0');
choixtest = choix;
}
///////////////////////////////////////////////////Sous programme permettant de tester les leds/////////////////////////////////////////////////////////////////
void testled () {
// on determine les variables locales nécessaires à la sous fonction
int gauche = '0'; int droit = '0'; int milieugauche = '0'; int milieudroit = '0'; int i = 0;
// On fait clignoter les leds (si elles fonctionnent)
for (i = 0; i < 5; i++)
digitalWrite(0, 1);
digitalWrite(1, 1);
digitalWrite(2, 1);
digitalWrite(3, 1);
delay(500);
digitalWrite(0, 0);
digitalWrite(1, 0);
digitalWrite(2, 0);
digitalWrite(3, 0);
delay(500);
}
//On demande si la led gauche clignote
Serial.println("La led gauche clignote t-elle ? ");
Serial.println("tapez 1 pour oui et 2 pour non ");
do {
if (Serial.available() > 0) {
gauche = Serial.read();
}
} while (gauche == '0');
//On demande si la led du milieu gauche clignote
Serial.println("La led du milieu gauche clignote t-elle ? ");
Serial.println("tapez 1 pour oui et 2 pour non ");
do {
if (Serial.available() > 0) {
milieugauche = Serial.read();
}
} while (milieugauche == '0');
//On demande si la led du milieu droit clignote
Serial.println("La led du milieu droit clignote t-elle ? ");
Serial.println("tapez 1 pour oui et 2 pour non ");
do {
if (Serial.available() > 0) {
milieudroit = Serial.read();
}
} while (milieudroit == '0');
//On demande si la led droite clignote
Serial.println("La led droite clignote t-elle ? ");
Serial.println("tapez 1 pour oui et 2 pour non ");
do {
if (Serial.available() > 0) {
droit = Serial.read();
}
} while (droit == '0');
//On fait un test pour savoir quelle led ne fonctionne pas et ainsi reporter la fiche de dépannage à l'utilisateur pu programme
if (gauche == '2') {
Serial.println("Pour depanner la led gauche, veuillez:");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println( "Verifier que la piste ne soit pas coupee.");
Serial.println( "Verifier qu'il n'y est pas de court circuit.");
Serial.println( "Verifier que le capteur fonctionne.");
} else {
Serial.println("La led Gauche fonctionne normalement");
}
//On fait un test pour savoir quelle led ne fonctionne pas et ainsi reporter la fiche de dépannage à l'utilisateur pu programme
if (milieugauche == '2') {
Serial.println("Pour depanner la led milieu gauche, veuillez:");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println( "Verifier que la piste ne soit pas coupee.");
Serial.println( "Verifier qu'il n'y est pas de court circuit.");
Serial.println( "Verifier que le capteur fonctionne.)");
} else {
Serial.println("La led milieu Gauche fonctionne normalement");
}
//On fait un test pour savoir quelle led ne fonctionne pas et ainsi reporter la fiche de dépannage à l'utilisateur pu programme
if (milieudroit == '2') {
Serial.println("Pour depanner la led milieu droite, veuillez:");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println( "Verifier que la piste ne soit pas coupee.");
Serial.println( "Verifier qu'il n'y est pas de court circuit.");
Serial.println( "Verifier que le capteur fonctionne.)");
} else {
Seial.println("La led milieu droit fonctionne normalement");
}
//On fait un test pour savoir quelle led ne fonctionne pas et ainsi reporter la fiche de dépannage à l'utilisateur pu programme
if (droit == '2') {
Serial.println("Pour depanner la led droite, veuillez:");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println( "Verifier que la piste ne soit pas coupee.");
Serial.println( "Verifier qu'il n'y est pas de court circuit.");
Serial.println( "Verifier que le capteur fonctionne.");
} else {
Serial.println("La led droite fonctionne normalement");
}
delay(10000); //On laisse 10 secondes a l utilisateur avant de retourner au menu
}
//////////////////////////////////////Sous programme permettant de tester les emmeteurs des capteurs:////////////////////////////////////////////////////////
void testemetteur () {
// on determine les variables locales nécessaire a la sous fonction
int emetgauche = '0'; int emetdroit = '0'; int emetmilieugauche = '0'; int emetmilieudroit = '0'; int i = 0;
// On donne les instructions
Serial.println("Vous allez tester le fonctionnement des emetteurs des capteurs: ");
delay(3000);
Serial.println("Pour cela, veuillez vous munir d'un telephone portable disposant d'un appareil photo ");
delay(3000);
Serial.println("car ils detectent les emissions Infra Rouge des emetteurs ");
delay(3000);
Serial.println("Diriger l'appareil vers les capteurs, le clignotement va commencer dans 10 secondes: ");
delay(10000);
// On fait clignoter les emetteurs IR (si elles fonctionnent)
for (i = 0; i < 5; i++) {
digitalWrite(4, 1);
digitalWrite(5, 1);
digitalWrite(6, 1);
digitalWrite(7, 1);
delay(500);
digitalWrite(4, 0);
digitalWrite(5, 0);
digitalWrite(6, 0);
digitalWrite(7, 0);
delay(500);
}
//On demande si l emetteur du capteur gauche clignote
Serial.println("L emetteur gauche clignote t-il ? ");
Serial.println("tapez 1 pour oui et 2 pour non ");
do {
if (Serial.available() > 0) {
emetgauche = Serial.read();
}
} while (emetgauche == '0');
//On demande si l emetteur du capteur milieu gauche clignote
Serial.println("L emetteur milieu gauche clignote t-il? ");
Serial.println("tapez 1 pour oui et 2 pour non ");
do {
if (Serial.available() > 0) {
emetmilieugauche = Serial.read();
}
} while (emetmilieugauche == '0');
//On demande si l emetteur du capteur milieu droit clignote
Serial.println("L emetteur milieu droit clignote t-il ? ");
Serial.println("tapez 1 pour oui et 2 pour non ");
do {
if (Serial.available() > 0) {
emetmilieudroit = Serial.read();
}
} while (emetmilieudroit == '0');
//On demande si l emetteur du capteur droit clignote
Serial.println("L emetteur droit clignote t-il ? ");
Serial.println("tapez 1 pour oui et 2 pour non ");
do {
if (Serial.available() > 0) {
emetdroit = Serial.read();
}
} while (emetdroit == '0');
//On fait un test pour savoir quelle emetteur ne fonctionne pas et ainsi reporter la fiche de dépannage à l'utilisateur pu programme
if (emetgauche == '2') {
Serial.println("Pour depanner l emetteur gauche, veuillez:");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println( "Verifier que la piste ne soit pas coupee.");
Serial.println( "Verifier qu'il n'y est pas de court circuit.");
Serial.println( "Verifier que l emetteur n'est pas endommage.");
} else {
Serial.println("L emetteur gauche fonctionne normalement");
}
if (emetmilieugauche == '2') {
Serial.println("Pour depanner l emetteur milieu gauche, veuillez:");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println( "Verifier que la piste ne soit pas coupee.");
Serial.println( "Verifier qu'il n'y est pas de court circuit.");
Serial.println( "Verifier que l emetteur n'est pas endommage");
} else {
Serial.println("L emetteur milieu Gauche fonctionne normalement");
}
if (emetmilieudroit == '2') {
Serial.println("Pour depanner l emetteur milieu droite, veuillez:");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println( "Verifier que la piste ne soit pas coupee.");
Serial.println( "Verifier qu'il n'y est pas de court circuit.");
Serial.println( "Verifier que l emetteur n'est pas endommage.");
} else {
Serial.println("L emetteur milieu droit fonctionne normalement");
}
if (emetdroit == '2') {
Serial.println("Pour depanner l'emetteur droit, veuillez:");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println( "Verifier que la piste ne soit pas coupee.");
Serial.println( "Verifier qu'il n'y est pas de court circuit.");
Serial.println( "Verifier que l emetteur n'est pas endommage.");
} else {
Serial.println("L emetteur droit fonctionne normalement");
}
delay(10000); //On laisse 10 secondes a l utilisateur avant de retourner au menu
}
////////////////////////Sous programme permettant de tester la valeur que fournit le capteur/////////////////////////////////////////
void testrecepteur () {
// on definie les variables locales
int cotegauche1 , cotegauche2 , cotedroit1 , cotedroit2, cotemilieudroit1, cotemilieudroit2, cotemilieugauche1, cotemilieugauche2;
// On donne les consignes
Serial.println(" Vous allez tester que les recepteurs des capteurs fonctionnent");
delay(3000);
Serial.println("Pour cela, veuillez POSER la la carte avec les capteurs en direction du support le plus proche possible");
delay(3000);
// test du cote gauche
digitalWrite(4, HIGH);
cotegauche1 = analogRead(A3);
delay(100);
cotegauche2 = analogRead(A3);
if (cotegauche1 == cotegauche2) {
Serial.println("Le recepteur du cote gauche ne fonctionne pas");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println("Verifier que la piste ne soit pas coupee.");
Serial.println("Verifier qu'il n'y est pas de court circuit.");
Serial.println("Verifier que le capteur fonctionne.");
} else {
Serial.println("Le recepteur du cote gauche fonctionne");
}
delay(2000);
// test du cote droit
digitalWrite(6, HIGH);
cotedroit1 = analogRead(A1);
delay(100);
cotedroit2 = analogRead(A1);
if (cotedroit1 == cotedroit2) {
Serial.println("le recepteur du cote droit ne fonctionne pas");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println("Verifier que la piste ne soit pas coupee.");
Serial.println("Verifier qu'il n'y est pas de court circuit.");
Serial.println("Verifier que le capteur fonctionne.");
} else {
Serial.println("le recepteur du cote droit fonctionne");
}
delay(2000);
// test du milieu gauche
digitalWrite(5, HIGH);
cotemilieugauche1 = analogRead(A4);
delay(100);
cotemilieugauche2 = analogRead(A4);
if (cotemilieugauche1 == cotemilieugauche2) {
Serial.println("Le recepteur milieu gauche ne fonctionne pas");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println("Verifier que la piste ne soit pas coupee.");
Serial.println("Verifier qu'il n'y est pas de court circuit.");
Serial.println("Verifier que le capteur fonctionne.");
} else {
Serial.println("Le recepteur milieu gauche fonctionne");
}
delay(2000);
// test du milieu droit
digitalWrite(7, HIGH);
cotemilieudroit1 = analogRead(A2);
delay(100);
cotemilieudroit2 = analogRead(A2);
if (cotemilieudroit1 == cotemilieudroit2) {
Serial.println("Le recepteur milieu droit ne fonctionne pas");
Serial.println( "Verifier la coherence ou la qualite des resistances et transistors.");
Serial.println("Verifier que la piste ne soit pas coupee.");
Serial.println("Verifier qu'il n'y est pas de court circuit.");
Serial.println("Verifier que le capteur fonctionne.");
} else {
Serial.println("Le recepteur milieu droit fonctionne");
}
delay(10000); // On laisse 10 seconde a l'utilisateur avant de retourner au menu
}
Avec une carte quelque peu défaillante, nous constatons que nos programmes marchent. Malheureusement seulement un des 4 capteurs et 2 des 4 leds fonctionnent.