Arexx SIMONIN
Révision datée du 17 juin 2015 à 10:29 par Troyesgeii (discussion | contributions)
Sommaire
Projets tutorés
Présentation
Diagramme de Gantt
Tests des leds
///////////////////////////////////////////////////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 que la resistance R1 et R5 ne soit pas endommage ou si elles sont bien dimensionner .");
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 transistor T2 ne soit pas endommagé.");
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 que la résistance R7 et R10 ne soit pas endommage ou si elles sont bien dimensionner .");
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 transistor T4 ne soit pas endommagé.");
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 que la resistance R14 et R16 ne soit pas endommage ou si elles sont bien dimensionner .");
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 transistor T6 ne soit pas endommage.");
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 que la resistance R13 et R15 ne soit pas endommage ou si elles sont bien dimensionner .");
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 transistor T5 ne soit pas endommage.");
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
////////////////////////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 que la resistance R3 soit bien dimensionner.");
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 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 que la resistance R11 soit bien dimensionner.");
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 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 que la resistance R8 soit bien dimensionner.");
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 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 que la resistance R12 soit bien dimensionner.");
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
}
//////////////////////////////////////////////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;
}
Organisation du programme
// 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
}
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é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 que la resistance R1 et R5 ne soit pas endommage ou si elles sont bien dimensionner .");
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 transistor T2 ne soit pas endommagé.");
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 que la résistance R7 et R10 ne soit pas endommage ou si elles sont bien dimensionner .");
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 transistor T4 ne soit pas endommagé.");
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 que la resistance R14 et R16 ne soit pas endommage ou si elles sont bien dimensionner .");
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 transistor T6 ne soit pas endommage.");
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 que la resistance R13 et R15 ne soit pas endommage ou si elles sont bien dimensionner .");
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 transistor T5 ne soit pas endommage.");
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 5sec: ");
delay(5000);
// 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 que la resistance R2 et R4 ne soit pas endommage ou si elles sont bien dimensionner .");
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 transistor T1 ne soit pas endommagé.");
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 que la résistance R7 et R10 ne soit pas endommage ou si elles sont bien dimensionner .");
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 transistor T4 ne soit pas endommagé.");
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 que la resistance R14 et R16 ne soit pas endommage ou si elles sont bien dimensionner .");
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 transistor T6 ne soit pas endommage.");
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 que la resistance R13 et R15 ne soit pas endommage ou si elles sont bien dimensionner .");
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 transistor T5 ne soit pas endommage.");
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 que la resistance R3 soit bien dimensionner.");
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 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 que la resistance R11 soit bien dimensionner.");
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 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 que la resistance R8 soit bien dimensionner.");
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 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 que la resistance R12 soit bien dimensionner.");
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
}