Outils pour utilisateurs

Outils du site


start:arduino:des-electronique

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
start:arduino:des-electronique [2019/05/26 15:47] gerardadminstart:arduino:des-electronique [2023/01/27 16:08] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
 +======= Des Electronique =======
  
 +[[http://sciences-du-numerique.fr/projet-arduino-pour-la-specialite-isn/de-electronique/41|Arduino : Des Electronique]]
 +
 +[[http://sciences-du-numerique.fr/projet-arduino-pour-la-specialite-isn/code-source-du-de-electronique/58|Code source Des Electronique]]
 +
 +
 +<code c deslectronique.ino>
 +
 +//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é.
 +
 +const int ECART=100;
 +const int TEMPO=2000;
 +
 +//La fonction setup est exécutée une fois au démarrage du module.
 +
 +void setup(){
 +
 +/*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.
 +*/
 + randomSeed(analogRead(1));
 +
 +//Les broches sur lesquelles sont branchées les LED sont mises en mode OUTPUT.
 +
 + for(int i=2;i<=8;i++){
 + pinMode(i,OUTPUT);
 +
 +}
 +
 +//La fonction loop est exécutée en boucle.
 +
 +void loop(){
 +
 +//On capte 2 valeurs de luminosité à 100 ms d'intervalle.
 +
 + int luminosite1=analogRead(0);
 + delay(100);
 + int luminosite2=analogRead(0);
 +
 +/*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.
 +
 +*/
 +
 + if(luminosite2-luminosite1>ECART){
 +
 +//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.
 +
 +  
 + afficheDe(random(1,7));
 +
 +//Les LED restent allumées durant TEMPO ms puis le dé s'éteint
 +
 + delay(TEMPO);
 + eteintDe();
 + }
 +}
 +
 +/*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 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);
 + }
 +}
 +
 +//Dans cette fonction toutes les LED utilisées pour le dé sont éteintes.
 +
 +void eteintDe(){
 + for(int i=2;i<=8;i++){
 + digitalWrite(i,LOW);
 + }
 +}
 +
 +//Licence Creative Commons 
 +</code>