(update property name)
 
Ligne 1 : Ligne 1 :
__NOTOC__<noinclude>
+
{{Tuto Details
<div class="tutorial-page">
+
|Main_Picture=Chasse_LED_avec_arduino_250px-Vatx_proto_0_2.jpg
<div class="container">
+
|Licences=Attribution (CC-BY)
<div class="new-tutorial-page">
+
|Description=Chasse LED
{{#ifanon:<div class="alert alert-warning" role="alert">
+
|Disciplines scientifiques=Electricity
{{int:wf-formtutorial-alert|[[Special:UserLogin/signup|{{int:wf-formtutorial-alert-createaccount}}]]|[[Special:UserLogin|{{int:wf-formtutorial-alert-login}}]]}}
+
|Difficulty=Technical
</div>
+
|Duration=50
</div>
+
|Duration-type=minute(s)
</div>
 
</div>|
 
<h1>{{int:wf-formtutorial-main-title}}</h1>
 
{{#forminput:form=Tutorial|button text={{int:wf-formtutorial-main-btn}}|placeholder={{int:wf-formtutorial-main-placeholder}}|}}
 
<p data-toggle="modal" data-target="#ModalNom"><span class="glyphicon glyphicon-info-sign"></span> {{int:wf-formtutorial-main-subtitle}}</p>
 
</div>
 
</div>
 
</div>
 
<div class="container">
 
<div class="row">
 
<div class="col-md-4 col-sm-4 col-xs-12">
 
[[Wikifab:Get_started|<span class="contribute-block">
 
<span class="glyphicon glyphicon-thumbs-up icon-contribute" aria-hidden="true"></span>
 
<span class="contribute-block-title">{{int:wf-contribute-getstart-title}}</span>
 
<span>{{int:wf-contribute-getstart-subtitle1}}</span>
 
</span>]]
 
</div>
 
<div class="col-md-4 col-sm-4 col-xs-12">
 
[[Wikifab:Taking_pictures|<span class="contribute-block">
 
<span class="glyphicon glyphicon-camera icon-contribute" aria-hidden="true"></span>
 
<span class="contribute-block-title">{{int:wf-contribute-takingpictures-title}}</span>
 
<span>{{int:wf-contribute-takingpictures-subtitle1}}</span>
 
</span>]]
 
</div>
 
<div class="col-md-4 col-sm-4 col-xs-12">
 
[[Wikifab:Help|<span class="contribute-block">
 
<span class="glyphicon glyphicon-book icon-contribute" aria-hidden="true"></span>
 
<span class="contribute-block-title">{{int:wf-contribute-help-title}}</span>
 
<span>{{int:wf-contribute-help-subtitle1}}</span>
 
</span>]]
 
</div>
 
</div>
 
</div>
 
 
}}
 
}}
</noinclude><includeonly>
+
{{Introduction
<div id="wikiPreview" style="display: none; padding-bottom: 25px; margin-bottom: 25px; border-bottom: 1px solid #AAAAAA;"></div>
+
|Introduction=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...
{{{for template|Tuto Details}}}
 
<div class="row">
 
<div class="col-md-4 col-sm-4 col-xs-12 col-pic-detail">
 
<div class="WfFormLabel"><span>{{int:wf-formtutorial-main-picture-field-title}}</span><span class="custom-tooltip">{{#info:{{int:wf-formtutorial-main-picture-tooltip}}}}</span></div>
 
<div class="msuploadContainer msuploadContainerTall">
 
{{{field|Main_Picture|uploadable|size=25|class=form-picture|image preview}}}
 
{{{field|Main_Picture_annotation|input type=editableImage|target=Main_Picture}}}
 
</div>
 
<div class="Licences-group" id="accordion" role="tablist" aria-multiselectable="true">
 
<div class="Licences">
 
<div class="Licences-heading" role="tab" id="headingOne">
 
<p class="Licences-title" data-toggle="collapse" data-target="#Licences">{{int:wf-formtutorial-edit-license-field}}</p>
 
</div>
 
<div id="Licences" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne">
 
<div class="Licences-body">
 
{{{field|Licences|input type=dropdown|class=WfFormDropdown|mandatory|default=Attribution (CC-BY)}}}
 
</div>
 
</div>
 
</div>
 
</div>
 
</div>
 
<div class="col-md-8 col-sm-8 col-xs-12">
 
<div class="row">
 
<div class="col-md-12">
 
<div class="WfFormLabel">{{int:wf-formtutorial-description-field-title}}</div><div>{{{field|Description|input type=textarea|mandatory|translatable|rows=2|maxlength=4000|class=WfFormTextarea|placeholder={{int:wf-formtutorial-description-field-placeholder}}|}}}</div>
 
<!-- START CHECKBOXES ADMIN PROPERTY LIST --><div class="WfFormLabel">{{int:dokit-autopropertyvalue-Disciplines_scientifiques}}</div>
 
{{{field|Disciplines scientifiques|mandatory|input type=checkboxes|class=WfFormCheckbox|hide select al|mapping using translate=dokit-autopropertyvalue-Disciplines_scientifiques-}}}
 
<!--END CHECKBOXES ADMIN PROPERTY LIST -->
 
</div>
 
</div>
 
<div class="row">
 
<div class="col-md-6 col-xs-12">
 
<div class="WfFormLabel"><span>{{int:wf-formtutorial-difficulty-field-title}}</span><span class="custom-tooltip">{{#info:<p>'''Facile :''' Accessible à tous. Un enfant de 8 ans peut, sans difficulté, réaliser l'expérience.</p><p>'''Technique :''' Accessible à tous. Un adulte peut, sans difficulté, réaliser l'expérience.</p><p>'''Expert :''' Seul un adulte averti peut réaliser l'expérience.</p>}}</span></div>
 
{{{field|Difficulty|input type=dropdown|mandatory|class=WfFormDropdown|mapping using translate=wf-propertyvalue-difficulty-}}}
 
</div>
 
<div class="col-md-6 col-xs-12">
 
<div class="WfFormLabel"><span>{{int:wf-formtutorial-duration-field-title}}</span><span class="custom-tooltip">{{#info:{{int:wf-formtutorial-duration-popup}}|}}</span></div>
 
{{{field|Duration|mandatory|class=WfFormText WfFormTextCombine}}} {{{field|Duration-type|mandatory|input type=dropdown|class=WfFormDropdown WfFormDropdownCombine|mapping using translate=wf-propertyvalue-durationtype-}}}
 
</div>
 
</div>
 
<div class="WfFormLabel"><span>{{int:wf-formtutorial-tags-field-title}}</span><span class="custom-tooltip">{{#info:Entrez 4 à 5 mots clés pour décrire votre expérience. Ces mots clés peuvent être des thèmes ou des concepts scientifiques (séparez chaque mot clé par une virgule).|}}</span></div>
 
<div class="WfFormTokensParent">{{{field|Tags|placeholder={{int:wf-formtutorial-tag-field-tooltip}}|class=WfFormTokens|input type=tokens|size=}}}</div>
 
</div>
 
</div>
 
{{{end template}}}
 
<div class="hrContentMinor-2"></div>
 
<div class="IntroductionFormTemplate hide-mobile-view">
 
{{{for template|Introduction}}}
 
<div class="edit-step-title">{{int:wf-formtutorial-introduction-field-title}} <span>{{int:wf-formtutorial-introduction-field-info}}</span></div>
 
{{{field|Introduction|input type=textarea|translatable|rows=5|maxlength=10000|class=form-textarea}}}
 
{{{end template}}}
 
</div>
 
<div class="hide-mobile-view multipleTemplateHideButton multipleTemplateSingleEntry">
 
{{{for template|TutoVideo|multiple|minimum=0|maximum instances=1|add button text={{int:wf-tuto-video-btnlink}} }}}
 
<div class="dokit-video-radio">{{{field|VideoType|input type=dropdown|default=Youtube|mandatory|class=WfFormDropdown WfFormDropdownFullWidth WfFormTextCombine|show on select=Youtube=>dokit-video-youtube;Vimeo=>dokit-video-vimeo;Dailymotion=>dokit-video-dailymotion;Mp4=>dokit-video-mp4}}}</div>
 
<div class="dokit-video-url" id="dokit-video-youtube">
 
{{{field|VideoURLYoutube|mandatory|placeholder={{int:dokit-video-youtube-placeholder}}|class=dokit-video-url-field}}}
 
</div>
 
<div class="dokit-video-url" id="dokit-video-vimeo">
 
{{{field|VideoURLVimeo|mandatory|placeholder={{int:dokit-video-vimeo-placeholder}}|class=dokit-video-url-field}}}
 
</div>
 
<div class="dokit-video-url" id="dokit-video-dailymotion">
 
{{{field|VideoURLDailymotion|placeholder={{int:dokit-video-dailymotion-placeholder}}|mandatory|class=dokit-video-url-field}}}
 
</div>
 
<div class="dokit-video-url" id="dokit-video-mp4">
 
{{{field|mp4video|uploadable|size=25|class=form-picture}}}
 
</div>
 
{{{end template}}}
 
</div>
 
{{{for template|Materials}}}
 
<div class="Input-tabs">
 
{{#tag:tabber|
 
Outils et matériel=<div class="file-subtitle"><span>{{int:dokit-item-tabs-subtitle}}</span><span class="custom-tooltip">{{#info:{{int:dokit-item-tabs-subtitle-tooltip|[[Form:Item|{{int:dokit-item-tabs-subtitle-tooltip-link}}]]}}}}</span></div>
 
<div class="prerequisites-selection">{{{field|ItemList|holds template}}}</div>
 
{{!}}-{{!}}
 
Expériences pré-requises =<h4>Listez ici les expériences pré-requises :</h4><div class="prerequisites-selection">{{{field|Prerequisites|holds template}}}</div>
 
{{!}}-{{!}}
 
{{int:wf-formtutorial-file-tabs-title}}=<div class="row">
 
<div class="col-md-6 col-sm-6 col-xs-12 box-file-form">
 
<div class="file-subtitle">{{int:wf-formtutorial-file-tabs-option1}}</div>
 
<div class="add-attachments  add-attachments-upload simplePMG">{{{field|Tuto_Attachments|holds template}}}</div></div>
 
<div class="col-md-6 col-sm-6 col-xs-12 box-file-form">
 
<div class="file-subtitle">{{int:wf-formtutorial-file-tabs-option2}}</div>
 
<div class="add-attachments">{{{field|ExternalAttachmentsLinks|holds template}}}</div>
 
</div>
 
 
}}
 
}}
</div>
+
{{Materials
{{{end template}}}
+
|ItemList={{ItemList
{{{for template|ItemList|multiple|maximum instances=100|add button text=Ajouter un outil ou un matériel|embed in field=Materials[ItemList]}}}{{{field|Item|input type=combobox|existing values only|placeholder={{int:dokit-item-tabs-placeholder}}|values from namespace=Item}}}{{{end template}}}
+
|Item=Carte arduino micro-controleur
{{{for template|Prerequisites|multiple|maximum instances=20|add button text=Ajouter une expérience pré-requise|embed in field=Materials[Prerequisites]}}}{{{field|Prerequisites|input type=combobox|existing values only|placeholder=Recherchez et ajoutez une expérience pré-requise|values from category=Tutorials}}}{{{end template}}}
+
}}{{ItemList
{{{for template|ExternalAttachmentsLinks|multiple|maximum instances=10|add button text={{int:wf-formtutorial-file-tabs-btnlink}}|embed in field=Materials[ExternalAttachmentsLinks]}}}{{{field|ExternalAttachmentsLinks|input type=text|class=WfFormText}}}{{{end template}}}
+
|Item=Logiciel Arduino
{{{for template|Tuto_Attachments|multiple|maximum instances=30|add button text={{int:wf-formtutorial-file-tabs-btnfile}}|embed in field=Materials[Tuto_Attachments]}}}{{{field|Attachment|class=WfFormText|default=|uploadable}}}{{{end template}}}
+
}}{{ItemList
<h2>{{int:wf-formtutorial-steps}}</h2>
+
|Item=Fil électrique
<div class="multipleTemplate-tutostep">{{{for template|Tuto Step|multiple|minimum instances=1|maximum instances=400|add button text={{int:wf-formtutorial-step-btnaddstep}} }}}
+
}}{{ItemList
<div class="WfFormTutoStep">
+
|Item=Led
<div class="col-sm-6 col-xs-12 col-sm-push-6 WfFormTutoStepInstructions">
+
}}{{ItemList
<div class="step-title-numeroted">{{{field|Step_Title|input type=text|translatable|class=form-text form-step-title|placeholder={{int:wf-formtutorial-step-title-placeholder}}|size=50}}}</div>
+
|Item=Platine de Prototypage
<div>{{{field|Step_Content|input type=textarea|translatable|rows=16|class=form-textarea}}}</div>
+
}}
</div>
+
}}
<div class="col-sm-6 col-xs-12 col-sm-pull-6">
+
{{Separator}}
<div class="col-pic-step msuploadContainer">
+
{{Tuto Step
{{{field|Step_Picture_00|size=32|class=form-picture|default=|uploadable|image preview}}}
+
|Step_Title=Réaliser
{{{field|Step_Picture_00_annotation|input type=editableImage|target=Step_Picture_00}}}
+
|Step_Content=* Réaliser le montage en suivant la vidéo/le schéma.
{{{field|Step_Picture_01|size=32|class=form-picture|default=|uploadable|image preview}}}
+
}}
{{{field|Step_Picture_01_annotation|input type=editableImage|target=Step_Picture_01}}}
+
{{Tuto Step
{{{field|Step_Picture_02|size=32|class=form-picture|default=|uploadable|image preview}}}
+
|Step_Title=Lancer
{{{field|Step_Picture_02_annotation|input type=editableImage|target=Step_Picture_02}}}
+
|Step_Content=* Lancer le logiciel Arduino.
{{{field|Step_Picture_03|size=32|class=form-picture|default=|uploadable|image preview}}}
+
}}
{{{field|Step_Picture_03_annotation|input type=editableImage|target=Step_Picture_03}}}
+
{{Tuto Step
{{{field|Step_Picture_04|size=32|class=form-picture|default=|uploadable|image preview}}}
+
|Step_Title=Copier
{{{field|Step_Picture_04_annotation|input type=editableImage|target=Step_Picture_04}}}
+
|Step_Content=Copier/coller le code suivant dans le programme permettant d'utiliser Arduino :  
{{{field|Step_Picture_05|size=32|class=form-picture|default=|uploadable|image preview}}}
 
{{{field|Step_Picture_05_annotation|input type=editableImage|target=Step_Picture_05}}}
 
</div>
 
</div>
 
</div>
 
{{{end template}}}</div>
 
<div class="notes-ref">
 
{{{for template|Notes}}}
 
<br>
 
<h2>Comment ça marche ?</h2>
 
<h3>Observations : que voit-on ?</h3>
 
{{{field|Observations|input type=textarea|class=form-textarea|translatable|rows=4|maxlength=5000}}}
 
<h3>Mise en garde : qu'est-ce qui pourrait faire rater l'expérience ?</h3>
 
{{{field|Avertissement|input type=textarea|class=form-textarea|translatable|rows=4|maxlength=5000}}}
 
<h3>Explications</h3>
 
{{{field|Explanations|input type=textarea|class=form-textarea|translatable|rows=4|maxlength=5000}}}
 
<h3>Plus d'explications</h3>
 
{{{field|Deepen|input type=textarea|class=form-textarea|translatable|rows=4|maxlength=5000}}}
 
<h3>Application : dans la vie de tous les jours</h3>
 
{{{field|Applications|input type=textarea|class=form-textarea|translatable|rows=4|maxlength=5000}}}
 
<h3>Vous aimerez aussi</h3>
 
{{{field|Related|input type=textarea|class=form-textarea|translatable|rows=4|maxlength=5000}}}
 
<br>
 
<h2>Éléments pédagogiques</h2>
 
<h3>Objectifs pédagogiques <span class="custom-tooltip">{{#info:Listez ce à quoi peut servir cette expérience : comprendre tel phénomène, tel concepts, etc... }}</span></h3>
 
{{{field|Objectives|input type=textarea|class=form-textarea|translatable|rows=5|maxlength=5000}}}
 
<h3>Pistes pour animer l'expérience <span class="custom-tooltip">{{#info:Idée d'animation, de mise en scène.}}</span></h3>
 
{{{field|Animation|input type=textarea|class=form-textarea|translatable|rows=5|maxlength=5000}}}
 
<h3>Sources et ressources <span class="custom-tooltip">{{#info:Lien vers des sites web ressources : wikipédia, CNRS, Wikipédia,... éventuellement une bibliographie (ex les bouquins petits débrouillards).}}</span></h3>
 
{{{field|Notes|input type=textarea|class=form-textarea|translatable|rows=5|maxlength=5000}}}
 
{{{end template}}}
 
</div>
 
<hr class="WfEndForm">
 
<div class="saving-menu">
 
<span class="status-checkbox">{{int:wf-completetooltip-label}} : {{{for template|Tuto_Status}}}{{{field|Complete|default=Draft|mandatory|input type=dropdown|class=WfFormDropdownLight|mapping using translate=wf-propertyvalue-complete-}}}{{{end template}}}</span><span class="custom-tooltip-light">{{#info:<p>'''{{int:wf-propertyvalue-complete-Published}} :''' {{int:wf-completetooltip-published-description}}</p><p>'''{{int:wf-propertyvalue-complete-Draft}} :''' {{int:wf-completetooltip-draft-description}}</p>}}</span><span class="display-none">{{{standard input|watch}}} {{{standard input|saveDraft}}}</span>{{{standard input|cancel}}}{{{standard input|save}}}<span id="loaderSave"><i class="fa fa-spinner fa-pulse fa-2x fa-fw "></i></span>
 
</div>
 
</includeonly>
 
  
<div class="modal fade wfform" id="ModalCreativeCommons" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+
// Ce programme sert à faire le chasse-led
<div class="modal-dialog">
+
int led[4]={8,9,10,11};              //Déclaration des pattes des leds
<div class="modal-content">
+
int bp[4]={2,3,4,5};                //Déclaration des pattes des boutons poussoirs
<div class="modal-header">
+
//Déclaration et initialisation des variables globales servant pour la suite du code
<span class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></span><h4 class="modal-title">{{int:wf-formtutorial-popuplicense-title}}</h4>
+
int initLed = 0;       
</div>
+
int i;
<div class="modal-body">
+
int randnumber ;
<div class="row">
+
int tirage = 0;
<div class="col-md-12 col-sm-12 col-xs-12">
+
int compteur;
[[File:CC-BY.png]]<span class="cc-modal-subtitle">{{int:wf-formtutorial-popuplicense-licence1-title}} <span class="label label-success">{{int:wf-formtutorial-popuplicense-licence-recommended}}</span></span>
+
int score;
<p>{{int:wf-formtutorial-popuplicense-licence1-description}}</p>
+
void setup(){                        //Fonction permettant d'initialiser le matériel (leds et boutons poussoir)
<p>[http://creativecommons.org/licenses/by/4.0/ {{int:wf-formtutorial-popuplicense-licence-link1}}] | [http://creativecommons.org/licenses/by/4.0/legalcode {{int:wf-formtutorial-popuplicense-licence-link2}}]</p>
+
  Serial.begin(9600);                //Indique que Arduino se situe sur le port usb 9600
<br>
+
  for(i=0;i<4;i++){                  //Boucle parcourant toutes les variables de 0 à 3
[[File:CC-BY-SA.png]]<span class="cc-modal-subtitle">{{int:wf-formtutorial-popuplicense-licence2-title}}</span>
+
      pinMode(bp[i], INPUT);        //Indique que le bouton poussoir est une entrée
<p>{{int:wf-formtutorial-popuplicense-licence2-description}}</p>
+
      pinMode(led[i],OUTPUT);      //Indique que les leds sont des sorties
<p>[http://creativecommons.org/licenses/by-sa/4.0/ {{int:wf-formtutorial-popuplicense-licence-link1}}] | [http://creativecommons.org/licenses/by-sa/4.0/legalcode {{int:wf-formtutorial-popuplicense-licence-link2}}]</p>
+
      digitalWrite(led[i],LOW);    //On met les leds au niveau bas (elles sont eteintes au depart)
<hr>
+
      digitalWrite(bp[i],HIGH);    //On met les boutons poussoirs au niveau haut
<p>{{int:wf-formtutorial-popuplicense-question}} [http://feedback.wikifab.org/t/under-which-open-license-can-i-publish-my-tutorial-on-wikifab/30 {{int:wf-formtutorial-popuplicense-question-link}}].</p>
+
}
</div>
+
  compteur=0;                        //Initialisation du compteur à 0
</div>
+
}
</div>
+
void loop(){
</div>
+
    if (initLed == 0)  {                    //Premier passage dans la fonction loop
</div>
+
      randnumber=random(0,4);              //Déclaration d'un premier nombre aléatoire de 0 à 3
</div>
+
      digitalWrite(led[randnumber],HIGH);  //Met la led correspondant au numéro aléatoire au niveau haut
 +
      Serial.println("valeur aleatoire:");  //Affiche "valeur aléatoire :" dans le terminal
 +
      Serial.println(randnumber,DEC);      //Affiche dans le terminal le numéro aleatoire
 +
      compteur = compteur + 1;              //incrémentation du compteur
 +
      initLed =1;                          //Indique que le programme est déjà lancé 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 ){                            //Deuxième test valide si on a passé le premier test
 +
      if(digitalRead(bp[randnumber])==LOW){      //Regarde si le bouton poussoir associé 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);    //Éteint la led quand on a appuyé sur le bp (bp=bouton poussoir)
 +
          randnumber=random(4);                  //Cherche un autre nombre aléatoire
 +
          digitalWrite(led[randnumber],HIGH);    //Allume la led correspondant a ce nouveau nombre
 +
          compteur = compteur + 1;              //Incrémente le compteur
 +
          Serial.println("valeur aleatoire:");  //Affiche "valeur aléatoire :" 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 à la led n'est pas activé, on regarde si l'utilisateur ne s'est pas trompé et a activé 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 activé on éteint la led
 +
                Serial.println(" ");                              //On écrit un espace dahs le terminal
 +
                Serial.println("Valeur finale du compteur : ");  //On écrit "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 à la fin
 +
}
 +
}  
 +
}
 +
  score=compteur-1;                              //Calcul du score
 +
  if (tirage ==0) {                              //On teste si la variable tirage est à 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);                      //Éteint toutes les leds
 +
digitalWrite(led[1],LOW);                        //Éteint toutes les leds
 +
digitalWrite(led[2],LOW);                        //Éteint toutes les leds
 +
digitalWrite(led[3],LOW);                        //Éteint toutes les leds
 +
  delay(1000);                                  //Attend une seconde
 +
for(int j=score; j>0;j--){                       //Boucle décrementant le score jusqu'à ce qu'il soit égal à 1
 +
  digitalWrite(led[j%4],HIGH);                  //Allume la led modulo 4 (Un nombre entre 0 et 3)
 +
  delay(1000);                                  //Attend une seconde
 +
  digitalWrite(led[j%4],LOW);                    //Éteint 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
 +
}
 +
}}
 +
{{Tuto Step
 +
|Step_Title=Brancher
 +
|Step_Content=* Brancher l'Arduino sur un port USB de l'ordinateur.
 +
}}
 +
{{Tuto Step
 +
|Step_Title=Cliquer
 +
|Step_Content=* 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).
 +
}}
 +
{{Tuto Step
 +
|Step_Title=Resultat
 +
|Step_Content=Attendre la fin du transfert.
 +
}}
 +
{{Notes
 +
|Observations=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 milieu droit un champion d'Azuria, et celle de droite que vous quittez bourg-palette.
 +
|Avertissement=Se tromper dans les codage
 +
|Explanations==== '''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.
 +
|Deepen==== '''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é
 +
}}
 +
{{Tuto Status
 +
|Complete=Published
 +
}}

Version du 15 octobre 2019 à 16:41

Auteur avatarTess | Dernière modification 12/12/2020 par Antonydbzh

Chasse LED avec arduino 250px-Vatx proto 0 2.jpg

Introduction

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...

Étape 1 - Réaliser

  • Réaliser le montage en suivant la vidéo/le schéma.

Étape 2 - Lancer

  • Lancer le logiciel Arduino.

Étape 3 - Copier

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

// Ce programme sert à faire le chasse-led int led[4]={8,9,10,11}; //Déclaration des pattes des leds int bp[4]={2,3,4,5}; //Déclaration des pattes des boutons poussoirs //Déclaration 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 matériel (leds et boutons poussoir)

 Serial.begin(9600);                //Indique que Arduino se situe sur le port usb 9600
 for(i=0;i<4;i++){                  //Boucle parcourant toutes les variables de 0 à 3
      pinMode(bp[i], INPUT);        //Indique que le bouton poussoir est une entrée
      pinMode(led[i],OUTPUT);       //Indique que les leds sont des sorties
      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 à 0

} void loop(){

   if (initLed == 0)  {                     //Premier passage dans la fonction loop
      randnumber=random(0,4);               //Déclaration d'un premier nombre aléatoire de 0 à 3
      digitalWrite(led[randnumber],HIGH);   //Met la led correspondant au numéro aléatoire au niveau haut
      Serial.println("valeur aleatoire:");  //Affiche "valeur aléatoire :" dans le terminal
      Serial.println(randnumber,DEC);       //Affiche dans le terminal le numéro aleatoire
      compteur = compteur + 1;              //incrémentation du compteur
      initLed =1;                           //Indique que le programme est déjà lancé 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 ){                             //Deuxième test valide si on a passé le premier test
     if(digitalRead(bp[randnumber])==LOW){      //Regarde si le bouton poussoir associé 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);     //Éteint la led quand on a appuyé sur le bp (bp=bouton poussoir)
         randnumber=random(4);                  //Cherche un autre nombre aléatoire
         digitalWrite(led[randnumber],HIGH);    //Allume la led correspondant a ce nouveau nombre
         compteur = compteur + 1;               //Incrémente le compteur
         Serial.println("valeur aleatoire:");   //Affiche "valeur aléatoire :" 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

Étape 4 - Brancher

  • Brancher l'Arduino sur un port USB de l'ordinateur.

Étape 5 - Cliquer

  • 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).

Étape 6 - Resultat

Attendre la fin du transfert.

Comment ça marche ?

Observations : 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 milieu droit un champion d'Azuria, et celle de droite que vous quittez bourg-palette.

Mise en garde : qu'est-ce qui pourrait faire rater l'expérience ?

Se tromper dans les codage

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.

Plus d'explications

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 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é


Dernière modification 12/12/2020 par user:Antonydbzh.

Commentaires

Published