Présentation Séance 3
Avertissement : cette page présente une fiche projet réalisée par un·e Conseiller Numérique France Service en formation avec le pôle ressource en médiation numérique Zoomacom. Elle constitue une hypothèse de travail, une idée d'animation, qui n'a pas forcément été testée en conditions réelles.
Kahoot
https://create.kahoot.it/details/2bae141f-96b0-46e4-bce5-7a4a874cb66a
Etude du code source
CODE SOURCE
const int ECART=100; const int TEMPO=2000;
Explication
La constante ECART permet de régler la sensibilité du dispositif : il faut une différence de valeur de luminosité supérieure à ECART pour déclencher le dé. La constante TEMPO définit le temps d'allumage du dé.
void setup(){
Explication
La fonction setup est exécutée une fois au démarrage du module.
randomSeed(analogRead(1));
Explication
L'instruction randomSeed permet d'initialiser le générateur aléatoire avec une valeur au hasard. La valeur au hasard est obtenue en lisant la valeur sur la broche analogique 1 : cette broche n'étant pas connectée, elle capte « un peu tout ce qui passe dans l'air » et la valeur retournée fluctue aléatoirement. Si on ne fait pas cela l'instruction random utilisée ci-après retourne toujours la même séquence de nombres à chaque redémarrage du module Arduino.
for(int i=2;i<=8;i++){ pinMode(i,OUTPUT); } }
Explication
Les broches sur lesquelles sont branchées les LED sont mises en mode OUTPUT.
void loop(){
Explication
La fonction loop est exécutée en boucle.
int luminosite1=analogRead(0); delay(100); int luminosite2=analogRead(0);
Explication
On capte 2 valeurs de luminosité à 100 ms d'intervalle.
if(luminosite2-luminosite1>ECART){
Explication
Ce test permet de déclencher le dé si la différence de luminosité entre les deux valeurs captées est supérieure à ECART. Cela se produit lorsque luminosite2 est supérieur à luminosite1 de plus de ECART, donc lorsque le capteur passe de l'ombre à la lumière de façon significative.
afficheDe(random(1,7));
Explication
On affiche sur les LED un nombre au hasard entre 1 et 6.
Note : l'instruction random(a,b) renvoie un nombre entier aléatoire compris entre a inclus et b exclu, c'est pourquoi on écrit random(1,7) pour avoir un nombre au hasard entre 1 et 6.
Note : l'instruction random(a,b) renvoie un nombre entier aléatoire compris entre a inclus et b exclu, c'est pourquoi on écrit random(1,7) pour avoir un nombre au hasard entre 1 et 6.
delay(TEMPO); eteintDe(); } }
Explication
Les LED restent allumées durant TEMPO ms puis le dé s'éteint
void afficheDe(int nombre){ if(nombre==1){ digitalWrite(5,HIGH); } if(nombre==2){ digitalWrite(2,HIGH); digitalWrite(8,HIGH); } if(nombre==3){ digitalWrite(2,HIGH); digitalWrite(5,HIGH); digitalWrite(8,HIGH); } if(nombre==4){ digitalWrite(2,HIGH); digitalWrite(4,HIGH); digitalWrite(6,HIGH); digitalWrite(8,HIGH); } if(nombre==5){ digitalWrite(2,HIGH); digitalWrite(4,HIGH); digitalWrite(6,HIGH); digitalWrite(8,HIGH); digitalWrite(5,HIGH); } if(nombre==6){ digitalWrite(2,HIGH); digitalWrite(3,HIGH); digitalWrite(4,HIGH); digitalWrite(6,HIGH); digitalWrite(7,HIGH); digitalWrite(8,HIGH); } }
Explication
Le rôle de cette fonction est d'allumer les LED correspondant au nombre passé en paramètre. La mise en HIGH des bornes est effectuée selon le schéma de montage des LED sur les bornes 2 à 8 du module Arduino.
void eteintDe(){ for(int i=2;i<=8;i++){ digitalWrite(i,LOW); } }
Explication
Dans cette fonction toutes les LED utilisées pour le dé sont éteintes.
Présentation du simulateur
https://www.tinkercad.com/things/1MONuIXS1MR-de-magique-v2/editel
Préparation des composants
Liste des composants
7 leds rouges
7 résistances de 220 Ohms
des fils
un breadboard
un arduino
un cable usb
une photoresistance
une résistance de 10k Ohms
Construction du set
Arduino CNFS43 Pages sans contexte