start:arduino:de-electronique
Table des matières
De electronique avec un arduino
- Le programme
- un_de_electronique.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); } }
/home/chanteri/www/fablab37110/data/pages/start/arduino/de-electronique.txt · Dernière modification : 2024/09/16 17:40 de gerardadmin