Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 193

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 197

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338
[ Wikidébrouillard ] Chasse LED avec arduino

Chasse LED avec arduino

De Wikidebrouillard.

(La manipulation)
(Matériel)
Ligne 8 : Ligne 8 :
== '''Matériel''' ==
== '''Matériel''' ==
-
* [[Image:Arduino Diecimila.jpg|50px]] Un Arduino
+
* [[Image:Arduino Diecimila.jpg|50px]] Un [[Arduino]]
-
* 4 boutons poussoirs
+
* 4 [[bouton poussoir]]s
-
* [[Image:DEL.png|50px]] 4 Dels (diode électroluminescente)
+
* [[Image:DEL.png|50px]] 4 [[LED]]s (diode électroluminescente)
-
* [[Image:Fils.jpg|50px]] fils conducteur
+
* [[Image:Fils.jpg|50px]] [[fil électrique]]
-
* [[Image:Ordinateir.jpg|50px]] Un ordinateur avec le programme Arduino
+
* [[Image:Ordinateur.jpg|50px]] [[ordinateur]] avec le programme [[Arduino]]
-
* [[Image:BreadBoard.jpg|50px]] Plaque Labtec
+
* [[Image:BreadBoard.jpg|50px]] [[Plaque Labtec]]
== '''L'expérience''' ==
== '''L'expérience''' ==

Version du 28 janvier 2013 à 16:26

Article incomplet en cours de rédaction
Modèle:Vidéo


Sommaire

Présentation de l'expérience

D'horribles LED, nous envahissent! L'heure est venue de les éliminer, mais il faut d'abord s’entraîner. Fabriquons donc un simulateur à base de LED pour préparer la guerre finale.


Matériel

L'expérience

La manipulation

1/ Câbler en suivant la vidéo /le schema

2/ Lancer le logiciel Arduino

3/ Copier/coller le code suivant dans le programme permettant d'utiliser Arduino :



int led[4]={8,9,10,11}; //Declaration des pates des leds int bp[4]={2,3,4,5}; //Declaration des pates des boutons poussoirs

//Declaration et initialisation des variables globales servant pour la suite du code

int initLed = 0; int i; int randnumber ; int tirage = 0; int compteur; int score;


void setup(){ //Fonction permettant d'initialiser le materiel (leds et boutons poussoir)

 Serial.begin(9600);                //Indique qque Arduino se situe sur le port usb 9600
 for(i=0;i<4;i++){                  //Boucle parcourant toutes les variables de 0 a 3
      pinMode(bp[i], INPUT);        //Indique que le bouton poussoir est une entree
      pinMode(led[i],OUTPUT);       // Indique que les leds sont des sortie
      digitalWrite(led[i],LOW);     //On met les leds au niveau bas (elles sont eteintes au depart)
      digitalWrite(bp[i],HIGH);     //On met les boutons poussoirs au niveau haut
 }
 compteur=0;                        //Initialisation du compteur a 0

}


void loop(){

   if (initLed == 0)  {                     //Premier passage dans la fonction loop
      randnumber=random(0,4);               //Declaration d'un premier nombre aleatoire de 0 a 3
      digitalWrite(led[randnumber],HIGH);   //Met la led correspondant au numero aleatoire au niveau haut
      Serial.println("valeur aleatoire:");  //Affiche "valeur aleatoire :" dans le terminal
      Serial.println(randnumber,DEC);       //Affiche dans le terminal le numero aleatoire
      compteur = compteur + 1;              //incrementation du compteur
      initLed =1;                           //Indique que le programme est deja lance pour ne plus aller dans ce test
      tirage = 1;                           //Permet d'aller au test suivant
      delay(500);                           //Attente d'une demi seconde (500 = 500ms)
  }
     
 if (tirage == 1 ){                             //Deuxieme test valide si on a passe le premier test
     if(digitalRead(bp[randnumber])==LOW){      //Regarde si le bouton poussoir associe a la led est active
         Serial.println("valeur du compteur:"); //Affiche "valeur du compteur :" dans le terminal
         Serial.println(compteur,DEC);          //Affiche la valeur du compteur dans le terminal
         digitalWrite(led[randnumber],LOW);     //Eteint la led quand on a appuye sur le bp (bp=bouton poussoir)
         randnumber=random(4);                  //Cherche un autre nombre aleatoire
         digitalWrite(led[randnumber],HIGH);    //Allume la led correspondant a ce nouveau nombre
         compteur = compteur + 1;               //Incremente le compteur
         Serial.println("valeur aleatoire:");   //Affiche "valeur aleatoire :" dans le terminal
         Serial.println(randnumber,DEC);        //Affiche dans le terminal le numero aleatoire
         delay(500);                            //Attente d'une demi seconde
     }
     else { if ( digitalRead(bp[(randnumber+1)%4])==LOW ||       //Si le bouton poussoir correspondant a la led n'est pas active on regarde si l'utilisateur ne s'est pas trompe et a active un autre bp
               digitalRead(bp[(randnumber+2)%4])==LOW ||         //Test des trois bp
               digitalRead(bp[(randnumber+3)%4])==LOW){          //Test des trois bp
               digitalWrite(led[randnumber],LOW);                //Si l'un des autres bp est active on eteint la led
               Serial.println(" ");                              //On ecrit un espace dahs le terminal
               Serial.println("Valeur finale du compteur : ");   //On ecrit "Valeur finale du compteur : " dans le terminal
               Serial.println(compteur,DEC);                     //Affiche dans le terminal la valeur du compteur
               tirage = 0;                                       //Fait en sorte que l'on allume le score a la fin
               }
     } 
 }
 score=compteur-1;                              //Calcul du score
 if (tirage ==0) {                              //On test si la variable tirage est a 0
 allumer(score);                                //Va dans la fonction allumer
 }

}


void allumer(int score){ //Fonction alliumer qui prend en variable le score et qui ne retourne rien

 digitalWrite(led[0],LOW);                      //Eteint toutes les leds

digitalWrite(led[1],LOW); //Eteint toutes les leds digitalWrite(led[2],LOW); //Eteint toutes les leds digitalWrite(led[3],LOW); //Eteint toutes les leds

 delay(1000);                                   //Attend une seconde
 

for(int j=score; j>0;j--){ //Boucle decrementant le score jusqu'a ce qu'il soit egal a 1

 digitalWrite(led[j%4],HIGH);                   //Allume la led modulo 4 (Un nombre entre 0 et 3)
 delay(1000);                                   //Attend une secnde
 digitalWrite(led[j%4],LOW);                    //Eteint la led modulo 4 (Un nombre entre 0 et 3)
 delay(1000);                                   //Attend une seconde

} digitalWrite(led[0],HIGH); //Allume la led 0 digitalWrite(led[1],HIGH); //Allume la led 1 digitalWrite(led[2],HIGH); //Allume la led 2 digitalWrite(led[3],HIGH); //Allume la led 3

delay(1000); //Attend une seconde }



4/ Brancher l'Arduino sur un port USB de l'ordinateur

5/ Cliquer sur l'image représentant une sorte de v, puis sur l'image représentant une flèche ( le programme sera mis dans l'Arduino)

6/ Attendre la fin du transfert

Que voit-on ?

Appuyer, sans se tromper, sur le bouton associé à chaque Del. Dés qu'une erreur est commise, le jeu s'arrête et le score s'affiche. Chaque Del correspond à un palier. Celle de gauche signifie que vous êtes un champion, de la ligue pokémon, celle du milieu gauche un champion de l’arène de Cramois'ile, celle du mileu droit un champion d'Azuria, et celle de droite que vous quittez bourg-palette.

Explications

De manière simple

Les Leds s'allument de manière aléatoire de plus en plus vite , à chaque pression sur un bouton poussoir se produit l'événement suivant : soit ce bouton correspond à la bonne led et le jeu continue, soit ce bouton ne correspond pas à la bonne Led, le jeu s’arrête et le score s'affiche à l'aide des leds.

Allons plus loin dans l'explication

L'Arduino est un microprocesseur dont les instructions sont codés dans un langage proche du C. Plus d'info sur http://wikipedia.org/wiki/langage_C.

En C, on déclare le type de variable avant de les utiliser : ici les int correspondent à des nombres entiers (1,2,3...), et le void correspond à une fonction non typé. Le const devant un type signifie que l'objet manipulé ne peut pas etre modifié

Liens avec d'autres expériences

Expériences sur Wikidébrouillard

Indiquer ici les expériences de Wikidébrouillard.

Autres expériences

Autres expériences avec le même concept, recherche sur internet (indiquer les liens). 

Applications : liens avec le quotidien

L'Arduino est proche du microprocesseur contenu dans l'ordinateur

Lieux propices à sa réalisation

A proximité d'un ordinateur

Catégories

Penser à fixer les disciplines scientifiques qui correspondent à l'expérience. Remplacer "à classer" par la discipline correspondante.
Portail des ExplorateursWikidébrouillardLéon DitFLOGPhoto mystèreJ'ai FaitPortraits
AR
CO

Chasse LED avec arduino

Rechercher

Page Discussion Historique
Powered by MediaWiki
Creative Commons - Paternite Partage a l

© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique