(→Liste du matériel) |
(→Code) |
||
Ligne 23 : | Ligne 23 : | ||
===Code=== | ===Code=== | ||
<pre> | <pre> | ||
- | + | int led2 = 2, led3 = 3, led4 = 4, led5 = 5, led6 = 6, led7 = 7, led8 = 8, reset = 10, unit = 0, mes = 0, capt = 9, etat = 0; // Définition des variables que l'on va utiliser | |
- | + | // ************ Initialisation des réglages ************ // | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
void setup() { | void setup() { | ||
- | Serial.begin(9600); | + | Serial.begin(9600); // Ouverture du port série à 9600bps |
- | + | digitalWrite(reset, HIGH); // Active les résistances de pull-up internes afin de pouvoir détecter une pression sur le bouton reset | |
- | pinMode( | + | pinMode(capt, INPUT); // Défini la voie capt (la voie 9 de l'arduino) comme une entrée |
- | pinMode(led2, OUTPUT); | + | pinMode(led2, OUTPUT); // Défini la voie led2 (la voie 2 de l'arduino) comme une sortie |
- | pinMode(led3, OUTPUT); | + | pinMode(led3, OUTPUT); // Défini la voie led2 (la voie 3 de l'arduino) comme une sortie |
- | pinMode(led4, OUTPUT); | + | pinMode(led4, OUTPUT); // Défini la voie led2 (la voie 4 de l'arduino) comme une sortie |
- | pinMode(led5, OUTPUT); | + | pinMode(led5, OUTPUT); // Défini la voie led2 (la voie 5 de l'arduino) comme une sortie |
- | pinMode(led6, OUTPUT); | + | pinMode(led6, OUTPUT); // Défini la voie led2 (la voie 6 de l'arduino) comme une sortie |
- | pinMode(led7, OUTPUT); | + | pinMode(led7, OUTPUT); // Défini la voie led2 (la voie 7 de l'arduino) comme une sortie |
- | pinMode(led8, OUTPUT); | + | pinMode(led8, OUTPUT); // Défini la voie led2 (la voie 8 de l'arduino) comme une sortie |
} | } | ||
- | // ************ | + | // ************ Fonction de remise à zéro ************ // |
- | + | ||
- | + | int raz() | |
- | + | {if(digitalRead(reset) == LOW) // Si le bouton reset est appuyé alors on remet à zéro | |
+ | {unit = 0; | ||
+ | return 1;} | ||
} | } | ||
- | // ************ | + | // ************ Gestion de l'afficheur ************ // |
void aff() { | void aff() { | ||
Ligne 63 : | Ligne 54 : | ||
case 0 : | case 0 : | ||
{ | { | ||
- | digitalWrite(led2, LOW); // | + | digitalWrite(led2, LOW); // Fixe la led2 comme allumée |
- | digitalWrite(led3, LOW); // | + | digitalWrite(led3, LOW); // Fixe la led3 comme allumée |
- | digitalWrite(led4, LOW); // | + | digitalWrite(led4, LOW); // Fixe la led4 comme allumée |
- | digitalWrite(led5, LOW); // | + | digitalWrite(led5, LOW); // Fixe la led5 comme allumée |
- | digitalWrite(led6, LOW); // | + | digitalWrite(led6, LOW); // Fixe la led6 comme allumée |
- | digitalWrite(led7, LOW); // | + | digitalWrite(led7, LOW); // Fixe la led7 comme allumée |
- | digitalWrite(led8, HIGH); | + | digitalWrite(led8, HIGH); // Fixe la led8 comme éteinte |
} | } | ||
break; | break; | ||
case 1 : | case 1 : | ||
{ | { | ||
- | digitalWrite(led2, HIGH); | + | digitalWrite(led2, HIGH); // Fixe la led2 comme éteinte |
- | digitalWrite(led3, LOW); // | + | digitalWrite(led3, LOW); // Fixe la led3 comme allumée |
- | digitalWrite(led4, LOW); // | + | digitalWrite(led4, LOW); // Fixe la led4 comme allumée |
- | digitalWrite(led5, HIGH); | + | digitalWrite(led5, HIGH); // Fixe la led5 comme éteinte |
- | digitalWrite(led6, HIGH); | + | digitalWrite(led6, HIGH); // Fixe la led6 comme éteinte |
- | digitalWrite(led7, HIGH); | + | digitalWrite(led7, HIGH); // Fixe la led7 comme éteinte |
- | digitalWrite(led8, HIGH); | + | digitalWrite(led8, HIGH); // Fixe la led8 comme éteinte |
} | } | ||
break; | break; | ||
case 2 : | case 2 : | ||
{ | { | ||
- | digitalWrite(led2, LOW); // | + | digitalWrite(led2, LOW); // Fixe la led2 comme allumée |
- | digitalWrite(led3, LOW); // | + | digitalWrite(led3, LOW); // Fixe la led3 comme allumée |
- | digitalWrite(led4, HIGH); | + | digitalWrite(led4, HIGH); // Fixe la led4 comme éteinte |
- | digitalWrite(led5, LOW); // | + | digitalWrite(led5, LOW); // Fixe la led5 comme allumée |
- | digitalWrite(led6, LOW); // | + | digitalWrite(led6, LOW); // Fixe la led6 comme allumée |
- | digitalWrite(led7, HIGH); | + | digitalWrite(led7, HIGH); // Fixe la led7 comme éteinte |
- | digitalWrite(led8, LOW); // | + | digitalWrite(led8, LOW); // Fixe la led8 comme allumée |
} | } | ||
break; | break; | ||
case 3 : | case 3 : | ||
{ | { | ||
- | digitalWrite(led2, LOW); // | + | digitalWrite(led2, LOW); // Fixe la led2 comme allumée |
- | digitalWrite(led3, LOW); // | + | digitalWrite(led3, LOW); // Fixe la led3 comme allumée |
- | digitalWrite(led4, LOW); // | + | digitalWrite(led4, LOW); // Fixe la led4 comme allumée |
- | digitalWrite(led5, LOW); // | + | digitalWrite(led5, LOW); // Fixe la led5 comme allumée |
- | digitalWrite(led6, HIGH); | + | digitalWrite(led6, HIGH); // Fixe la led6 comme éteinte |
- | digitalWrite(led7, HIGH); | + | digitalWrite(led7, HIGH); // Fixe la led7 comme éteinte |
- | digitalWrite(led8, LOW); // | + | digitalWrite(led8, LOW); // Fixe la led8 comme allumée |
} | } | ||
break; | break; | ||
case 4 : | case 4 : | ||
{ | { | ||
- | digitalWrite(led2, HIGH); | + | digitalWrite(led2, HIGH); // Fixe la led2 comme éteinte |
- | digitalWrite(led3, LOW); // | + | digitalWrite(led3, LOW); // Fixe la led3 comme allumée |
- | digitalWrite(led4, LOW); // | + | digitalWrite(led4, LOW); // Fixe la led4 comme allumée |
- | digitalWrite(led5, HIGH); | + | digitalWrite(led5, HIGH); // Fixe la led5 comme éteinte |
- | digitalWrite(led6, HIGH); | + | digitalWrite(led6, HIGH); // Fixe la led6 comme éteinte |
- | digitalWrite(led7, LOW); // | + | digitalWrite(led7, LOW); // Fixe la led7 comme allumée |
- | digitalWrite(led8, LOW); // | + | digitalWrite(led8, LOW); // Fixe la led8 comme allumée |
} | } | ||
break; | break; | ||
case 5 : | case 5 : | ||
{ | { | ||
- | digitalWrite(led2, LOW); // | + | digitalWrite(led2, LOW); // Fixe la led2 comme allumée |
- | digitalWrite(led3, HIGH); | + | digitalWrite(led3, HIGH); // Fixe la led3 comme éteinte |
- | digitalWrite(led4, LOW); // | + | digitalWrite(led4, LOW); // Fixe la led4 comme allumée |
- | digitalWrite(led5, LOW); // | + | digitalWrite(led5, LOW); // Fixe la led5 comme allumée |
- | digitalWrite(led6, HIGH); | + | digitalWrite(led6, HIGH); // Fixe la led6 comme éteinte |
- | digitalWrite(led7, LOW); // | + | digitalWrite(led7, LOW); // Fixe la led7 comme allumée |
- | digitalWrite(led8, LOW); // | + | digitalWrite(led8, LOW); // Fixe la led8 comme allumée |
} | } | ||
break; | break; | ||
case 6 : | case 6 : | ||
{ | { | ||
- | digitalWrite(led2, LOW); // | + | digitalWrite(led2, LOW); // Fixe la led2 comme allumée |
- | digitalWrite(led3, HIGH); | + | digitalWrite(led3, HIGH); // Fixe la led3 comme éteinte |
- | digitalWrite(led4, LOW); // | + | digitalWrite(led4, LOW); // Fixe la led4 comme allumée |
- | digitalWrite(led5, LOW); // | + | digitalWrite(led5, LOW); // Fixe la led5 comme allumée |
- | digitalWrite(led6, LOW); // | + | digitalWrite(led6, LOW); // Fixe la led6 comme allumée |
- | digitalWrite(led7, LOW); // | + | digitalWrite(led7, LOW); // Fixe la led7 comme allumée |
- | digitalWrite(led8, LOW); // | + | digitalWrite(led8, LOW); // Fixe la led8 comme allumée |
} | } | ||
break; | break; | ||
case 7 : | case 7 : | ||
{ | { | ||
- | digitalWrite(led2, LOW); // | + | digitalWrite(led2, LOW); // Fixe la led2 comme allumée |
- | digitalWrite(led3, LOW); // | + | digitalWrite(led3, LOW); // Fixe la led3 comme allumée |
- | digitalWrite(led4, LOW); // | + | digitalWrite(led4, LOW); // Fixe la led4 comme allumée |
- | digitalWrite(led5, HIGH); | + | digitalWrite(led5, HIGH); // Fixe la led5 comme etéinte |
- | digitalWrite(led6, HIGH); | + | digitalWrite(led6, HIGH); // Fixe la led6 comme eteinte |
- | digitalWrite(led7, HIGH); | + | digitalWrite(led7, HIGH); // Fixe la led7 comme éteinte |
- | digitalWrite(led8, HIGH); | + | digitalWrite(led8, HIGH); // Fixe la led8 comme éteinte |
} | } | ||
break; | break; | ||
case 8 : | case 8 : | ||
{ | { | ||
- | digitalWrite(led2, LOW); // | + | digitalWrite(led2, LOW); // Fixe la led2 comme allumée |
- | digitalWrite(led3, LOW); // | + | digitalWrite(led3, LOW); // Fixe la led3 comme allumée |
- | digitalWrite(led4, LOW); // | + | digitalWrite(led4, LOW); // Fixe la led4 comme allumée |
- | digitalWrite(led5, LOW); // | + | digitalWrite(led5, LOW); // Fixe la led5 comme allumée |
- | digitalWrite(led6, LOW); // | + | digitalWrite(led6, LOW); // Fixe la led6 comme allumée |
- | digitalWrite(led7, LOW); // | + | digitalWrite(led7, LOW); // Fixe la led7 comme allumée |
- | digitalWrite(led8, LOW); // | + | digitalWrite(led8, LOW); // Fixe la led8 comme allumée |
} | } | ||
break; | break; | ||
case 9 : | case 9 : | ||
{ | { | ||
- | digitalWrite(led2, LOW); // | + | digitalWrite(led2, LOW); // Fixe la led2 comme allumée |
- | digitalWrite(led3, LOW); // | + | digitalWrite(led3, LOW); // Fixe la led3 comme allumée |
- | digitalWrite(led4, LOW); // | + | digitalWrite(led4, LOW); // Fixe la led4 comme allumée |
- | digitalWrite(led5, LOW); // | + | digitalWrite(led5, LOW); // Fixe la led5 comme allumée |
- | digitalWrite(led6, HIGH); | + | digitalWrite(led6, HIGH); // Fixe la led6 comme éteinte |
- | digitalWrite(led7, LOW); // | + | digitalWrite(led7, LOW); // Fixe la led7 comme allumée |
- | digitalWrite(led8, LOW); // | + | digitalWrite(led8, LOW); // Fixe la led8 comme allumée |
} | } | ||
break; | break; | ||
default: | default: | ||
- | raz(); // | + | raz(); // En cas de problème on force tout à 0 |
} | } | ||
} | } | ||
- | // ************ | + | // ************ Fonction permettant de compter le nombre de passages ************ // |
int compt(){ | int compt(){ | ||
- | boolean | + | if(unit < 10) |
- | delay(5); | + | { |
- | boolean etat = | + | boolean mes = digitalRead(capt); // mesure du capteur |
- | if (etat == LOW) | + | delay(5); // Temps d'attente de 5ms |
- | {unit ++; | + | boolean etat = mes; // Retranscription de la mesure pas HIGH (état haut (1) ) ou LOW (état bas(0) ) |
- | delay( | + | if (etat == LOW) // Si l'état est bas (bouton reset appuyé) |
- | } | + | {unit ++; // On rajoute +1 au nombre de passage unit++ == unit=unit+1 |
+ | delay(400);} // temps d'attente de 400ms pour ne pas créer de fausse mesures | ||
+ | } | ||
+ | else | ||
+ | {unit = 0;} // Si il n'y a pas d'état bas alros on ne fait rien | ||
} | } | ||
+ | |||
+ | // ************ Fonction principale ************ // | ||
- | void loop() { | + | void loop() { |
- | + | do{ | |
aff(); | aff(); | ||
- | + | compt(); | |
+ | } | ||
+ | while (raz()!=1); // Temps que la remise à zéro n'est pas activée alors le programme de comptage et d'affichage sont lancés | ||
} | } | ||
</pre> | </pre> |
Sommaire |
c'est dans cette partie que vous décrivez votre projet
Matériel nécessaire pour les capteurs infra-rouge : Kit infra-rouge
int led2 = 2, led3 = 3, led4 = 4, led5 = 5, led6 = 6, led7 = 7, led8 = 8, reset = 10, unit = 0, mes = 0, capt = 9, etat = 0; // Définition des variables que l'on va utiliser // ************ Initialisation des réglages ************ // void setup() { Serial.begin(9600); // Ouverture du port série à 9600bps digitalWrite(reset, HIGH); // Active les résistances de pull-up internes afin de pouvoir détecter une pression sur le bouton reset pinMode(capt, INPUT); // Défini la voie capt (la voie 9 de l'arduino) comme une entrée pinMode(led2, OUTPUT); // Défini la voie led2 (la voie 2 de l'arduino) comme une sortie pinMode(led3, OUTPUT); // Défini la voie led2 (la voie 3 de l'arduino) comme une sortie pinMode(led4, OUTPUT); // Défini la voie led2 (la voie 4 de l'arduino) comme une sortie pinMode(led5, OUTPUT); // Défini la voie led2 (la voie 5 de l'arduino) comme une sortie pinMode(led6, OUTPUT); // Défini la voie led2 (la voie 6 de l'arduino) comme une sortie pinMode(led7, OUTPUT); // Défini la voie led2 (la voie 7 de l'arduino) comme une sortie pinMode(led8, OUTPUT); // Défini la voie led2 (la voie 8 de l'arduino) comme une sortie } // ************ Fonction de remise à zéro ************ // int raz() {if(digitalRead(reset) == LOW) // Si le bouton reset est appuyé alors on remet à zéro {unit = 0; return 1;} } // ************ Gestion de l'afficheur ************ // void aff() { switch (unit) { case 0 : { digitalWrite(led2, LOW); // Fixe la led2 comme allumée digitalWrite(led3, LOW); // Fixe la led3 comme allumée digitalWrite(led4, LOW); // Fixe la led4 comme allumée digitalWrite(led5, LOW); // Fixe la led5 comme allumée digitalWrite(led6, LOW); // Fixe la led6 comme allumée digitalWrite(led7, LOW); // Fixe la led7 comme allumée digitalWrite(led8, HIGH); // Fixe la led8 comme éteinte } break; case 1 : { digitalWrite(led2, HIGH); // Fixe la led2 comme éteinte digitalWrite(led3, LOW); // Fixe la led3 comme allumée digitalWrite(led4, LOW); // Fixe la led4 comme allumée digitalWrite(led5, HIGH); // Fixe la led5 comme éteinte digitalWrite(led6, HIGH); // Fixe la led6 comme éteinte digitalWrite(led7, HIGH); // Fixe la led7 comme éteinte digitalWrite(led8, HIGH); // Fixe la led8 comme éteinte } break; case 2 : { digitalWrite(led2, LOW); // Fixe la led2 comme allumée digitalWrite(led3, LOW); // Fixe la led3 comme allumée digitalWrite(led4, HIGH); // Fixe la led4 comme éteinte digitalWrite(led5, LOW); // Fixe la led5 comme allumée digitalWrite(led6, LOW); // Fixe la led6 comme allumée digitalWrite(led7, HIGH); // Fixe la led7 comme éteinte digitalWrite(led8, LOW); // Fixe la led8 comme allumée } break; case 3 : { digitalWrite(led2, LOW); // Fixe la led2 comme allumée digitalWrite(led3, LOW); // Fixe la led3 comme allumée digitalWrite(led4, LOW); // Fixe la led4 comme allumée digitalWrite(led5, LOW); // Fixe la led5 comme allumée digitalWrite(led6, HIGH); // Fixe la led6 comme éteinte digitalWrite(led7, HIGH); // Fixe la led7 comme éteinte digitalWrite(led8, LOW); // Fixe la led8 comme allumée } break; case 4 : { digitalWrite(led2, HIGH); // Fixe la led2 comme éteinte digitalWrite(led3, LOW); // Fixe la led3 comme allumée digitalWrite(led4, LOW); // Fixe la led4 comme allumée digitalWrite(led5, HIGH); // Fixe la led5 comme éteinte digitalWrite(led6, HIGH); // Fixe la led6 comme éteinte digitalWrite(led7, LOW); // Fixe la led7 comme allumée digitalWrite(led8, LOW); // Fixe la led8 comme allumée } break; case 5 : { digitalWrite(led2, LOW); // Fixe la led2 comme allumée digitalWrite(led3, HIGH); // Fixe la led3 comme éteinte digitalWrite(led4, LOW); // Fixe la led4 comme allumée digitalWrite(led5, LOW); // Fixe la led5 comme allumée digitalWrite(led6, HIGH); // Fixe la led6 comme éteinte digitalWrite(led7, LOW); // Fixe la led7 comme allumée digitalWrite(led8, LOW); // Fixe la led8 comme allumée } break; case 6 : { digitalWrite(led2, LOW); // Fixe la led2 comme allumée digitalWrite(led3, HIGH); // Fixe la led3 comme éteinte digitalWrite(led4, LOW); // Fixe la led4 comme allumée digitalWrite(led5, LOW); // Fixe la led5 comme allumée digitalWrite(led6, LOW); // Fixe la led6 comme allumée digitalWrite(led7, LOW); // Fixe la led7 comme allumée digitalWrite(led8, LOW); // Fixe la led8 comme allumée } break; case 7 : { digitalWrite(led2, LOW); // Fixe la led2 comme allumée digitalWrite(led3, LOW); // Fixe la led3 comme allumée digitalWrite(led4, LOW); // Fixe la led4 comme allumée digitalWrite(led5, HIGH); // Fixe la led5 comme etéinte digitalWrite(led6, HIGH); // Fixe la led6 comme eteinte digitalWrite(led7, HIGH); // Fixe la led7 comme éteinte digitalWrite(led8, HIGH); // Fixe la led8 comme éteinte } break; case 8 : { digitalWrite(led2, LOW); // Fixe la led2 comme allumée digitalWrite(led3, LOW); // Fixe la led3 comme allumée digitalWrite(led4, LOW); // Fixe la led4 comme allumée digitalWrite(led5, LOW); // Fixe la led5 comme allumée digitalWrite(led6, LOW); // Fixe la led6 comme allumée digitalWrite(led7, LOW); // Fixe la led7 comme allumée digitalWrite(led8, LOW); // Fixe la led8 comme allumée } break; case 9 : { digitalWrite(led2, LOW); // Fixe la led2 comme allumée digitalWrite(led3, LOW); // Fixe la led3 comme allumée digitalWrite(led4, LOW); // Fixe la led4 comme allumée digitalWrite(led5, LOW); // Fixe la led5 comme allumée digitalWrite(led6, HIGH); // Fixe la led6 comme éteinte digitalWrite(led7, LOW); // Fixe la led7 comme allumée digitalWrite(led8, LOW); // Fixe la led8 comme allumée } break; default: raz(); // En cas de problème on force tout à 0 } } // ************ Fonction permettant de compter le nombre de passages ************ // int compt(){ if(unit < 10) { boolean mes = digitalRead(capt); // mesure du capteur delay(5); // Temps d'attente de 5ms boolean etat = mes; // Retranscription de la mesure pas HIGH (état haut (1) ) ou LOW (état bas(0) ) if (etat == LOW) // Si l'état est bas (bouton reset appuyé) {unit ++; // On rajoute +1 au nombre de passage unit++ == unit=unit+1 delay(400);} // temps d'attente de 400ms pour ne pas créer de fausse mesures } else {unit = 0;} // Si il n'y a pas d'état bas alros on ne fait rien } // ************ Fonction principale ************ // void loop() { do{ aff(); compt(); } while (raz()!=1); // Temps que la remise à zéro n'est pas activée alors le programme de comptage et d'affichage sont lancés }
chercher ici : http://wikidebrouillard.org/index.php/Catégorie:Arduino
quelles peuvent être les applications technologique de ce montage, ou est-ce qu'on retrouve des programme qui y ressemble ?
© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique