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



const int ECART=100;
const int TEMPO=2000;

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(){

La fonction setup est exécutée une fois au démarrage du module.
randomSeed(analogRead(1));

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);
	} 
}

Les broches sur lesquelles sont branchées les LED sont mises en mode OUTPUT.
void loop(){

La fonction loop est exécutée en boucle.
int luminosite1=analogRead(0);
	delay(100);
	int luminosite2=analogRead(0);

On capte 2 valeurs de luminosité à 100 ms d'intervalle.
if(luminosite2-luminosite1>ECART){

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));

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.

delay(TEMPO);
		eteintDe();
	}
}

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);
	}
}

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);
	}
}

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