Parcourir le wiki

Se tromper dans les codages  +
Published  +
=== '''Allons plus loin dans l'explication=== '''Allons plus loin dans l'explication''' === L'Arduino est un microprocesseur dont les instructions sont codées dans un langage proche du C. Plus d'info sur l'article Wikipédia [http://wikipedia.org/wiki/langage_C Langage C]. En C, on déclare le type des variables avant de les utiliser : ici les int correspondent à des nombres entiers (1,2,3...), et le void correspond à une fonction non typée. Le const devant un type signifie que l'objet manipulé ne peut pas être modifiél'objet manipulé ne peut pas être modifié  +
Chasse LED  +
Technical  +
Electricity  +, Arduino  +  et Computing  +
50  +
minute(s)  +
=== '''De manière simple''' === Les Leds s=== '''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.e et le score s'affiche à l'aide des leds.  +
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...  +
Attribution (CC-BY)  +
Chasse_LED_avec_arduino_250px-Vatx_proto_0_2.jpg  +
Appuyer, sans se tromper, sur le bouton asAppuyer, 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 milieu droit un champion d'Azuria, et celle de droite que vous quittez Bourg-palette. de droite que vous quittez Bourg-palette.  +
* Réaliser le montage en suivant la vidéo/le schéma.   +, * Lancer le logiciel Arduino.   +, * Brancher l'Arduino sur un port USB de l'ordinateur.   +, Attendre la fin du transfert.  +, * 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).   +  et <nowiki>Copier/coller le code suivanCopier/coller le code suivant dans le programme permettant d'utiliser Arduino :

 1 // Ce programme sert à faire le chasse-led 
2 int led[4]={8,9,10,11}; //Déclaration des pattes des leds
3 int bp[4]={2,3,4,5}; //Déclaration des pattes des boutons poussoirs
4 //Déclaration et initialisation des variables globales servant pour la suite du code
5 int initLed = 0;
6 int i;
7 int randnumber ;
8 int tirage = 0;
9 int compteur;
10 int score;
11
12 void setup(){ //Fonction permettant d'initialiser le matériel (leds et boutons poussoir)
13
14 Serial.begin(9600); //Indique que Arduino se situe sur le port usb 9600
15 for(i=0;i<4;i++){ //Boucle parcourant toutes les variables de 0 à 3
16 pinMode(bp[i], INPUT); //Indique que le bouton poussoir est une entrée
17 pinMode(led[i],OUTPUT); //Indique que les leds sont des sorties
18 digitalWrite(led[i],LOW); //On met les leds au niveau bas (elles sont eteintes au depart)
19 digitalWrite(bp[i],HIGH); //On met les boutons poussoirs au niveau haut
20 }
21
22 compteur=0; //Initialisation du compteur à 0
23 }
24
25 void loop(){
26 if (initLed == 0) { //Premier passage dans la fonction loop
27 randnumber=random(0,4); //Déclaration d'un premier nombre aléatoire de 0 à 3
28 digitalWrite(led[randnumber],HIGH); //Met la led correspondant au numéro aléatoire au niveau haut
29 Serial.println("valeur aleatoire:"); //Affiche "valeur aléatoire :" dans le terminal
30 Serial.println(randnumber,DEC); //Affiche dans le terminal le numéro aleatoire
31 compteur = compteur + 1; //incrémentation du compteur
32 initLed =1; //Indique que le programme est déjà lancé pour ne plus aller dans ce test
33 tirage = 1; //Permet d'aller au test suivant
34 delay(500); //Attente d'une demi seconde (500 = 500ms)
35 }
36
37 if (tirage == 1 ){ //Deuxième test valide si on a passé le premier test
38 if(digitalRead(bp[randnumber])==LOW){ //Regarde si le bouton poussoir associé a la led est active
39 Serial.println("valeur du compteur:"); //Affiche "valeur du compteur :" dans le terminal
40 Serial.println(compteur,DEC); //Affiche la valeur du compteur dans le terminal
41 digitalWrite(led[randnumber],LOW); //Éteint la led quand on a appuyé sur le bp (bp=bouton poussoir)
42 randnumber=random(4); //Cherche un autre nombre aléatoire
43 digitalWrite(led[randnumber],HIGH); //Allume la led correspondant a ce nouveau nombre
44 compteur = compteur + 1; //Incrémente le compteur
45 Serial.println("valeur aleatoire:"); //Affiche "valeur aléatoire :" dans le terminal
46 Serial.println(randnumber,DEC); //Affiche dans le terminal le numéro aléatoire
47 delay(500); //Attente d'une demi seconde
48 }
49
50 else if ( digitalRead(bp[(randnumber+1)%4])==LOW){
51 // ce code semble incomplet ?
52 }
gt; <span class="nf">Serial</span><span class="p">.</span><span class="nf">println</span><span class="p">(</span><span class="n">randnumber</span><span class="p">,</span><span class="n">DEC</span><span class="p">);</span> <span class="c1">//Affiche dans le terminal le numéro aléatoire</span><br /><span class="lineno">47 </span> <span class="nf">delay</span><span class="p">(</span><span class="mi">500</span><span class="p">);</span> <span class="c1">//Attente d'une demi seconde</span><br /><span class="lineno">48 </span><span class="p">}</span><br /><span class="lineno">49 </span><br /><span class="lineno">50 </span> <span class="k">else</span> <span class="k">if</span> <span class="p">(</span> <span class="nf">digitalRead</span><span class="p">(</span><span class="n">bp</span><span class="p">[(</span><span class="n">randnumber</span><span class="o">+</span><span class="mi">1</span><span class="p">)</span><span class="o">%</span><span class="mi">4</span><span class="p">])</span><span class="o">==</span><span class="kr">LOW</span><span class="p">){</span><br /><span class="lineno">51 </span><span class="c1">// ce code semble incomplet ?</span><br /><span class="lineno">52 </span><span class="p">}</span><br /></pre></div></nowiki>  
Réaliser  +, Lancer  +, Copier  +, Brancher  +, Cliquer  +  et Resultat  +
Possède une requête« Possède une requête (Has query) » est une propriété prédéfinie qui représente les méta-informations (sous la forme d'un sous-objet) des requêtes individuelles et est fournie par MédiaWiki Sémantique.
Date de modification« Date de modification (Modification date) » est une propriété prédéfinie qui correspond à la date de la dernière modification d’un sujet et est fournie par MédiaWiki Sémantique.
13:58:33, 12 décembre 2020  +
⧼cs-comments⧽Cette propriété est une propriété spéciale dans ce wiki.
0  +
Créateur de la pageCette propriété est une propriété spéciale dans ce wiki.
I did itCette propriété est une propriété spéciale dans ce wiki.
0  +
FavorisCette propriété est une propriété spéciale dans ce wiki.
0  +
 
Aucune propriété ne pointe vers cette page.