start:arduino:de-electronique
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
start:arduino:de-electronique [2018/12/13 07:20] – gerardadmin | start:arduino:de-electronique [2024/09/16 17:40] (Version actuelle) – gerardadmin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ======= De electronique avec un arduino ======= | ||
+ | * [[https:// | ||
+ | |||
+ | | ||
+ | |||
+ | * Le programme | ||
+ | |||
+ | <code c 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' | ||
+ | |||
+ | const int ECART=100; | ||
+ | const int TEMPO=2000; | ||
+ | |||
+ | //La fonction setup est exécutée une fois au démarrage du module. | ||
+ | |||
+ | void setup(){ | ||
+ | |||
+ | // | ||
+ | |||
+ | //lisant la valeur sur la broche analogique 1 : cette broche n' | ||
+ | |||
+ | //la valeur retournée fluctue aléatoirement. Si on ne fait pas cela l' | ||
+ | |||
+ | //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; | ||
+ | pinMode(i, | ||
+ | } | ||
+ | } | ||
+ | |||
+ | //La fonction loop est exécutée en boucle. | ||
+ | |||
+ | void loop(){ | ||
+ | |||
+ | //On capte 2 valeurs de luminosité à 100 ms d' | ||
+ | |||
+ | 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' | ||
+ | |||
+ | // | ||
+ | |||
+ | if(luminosite2-luminosite1> | ||
+ | |||
+ | //On affiche sur les LED un nombre au hasard entre 1 et 6. | ||
+ | |||
+ | //Note : l' | ||
+ | |||
+ | // | ||
+ | |||
+ | | ||
+ | afficheDe(random(1, | ||
+ | |||
+ | //Les LED restent allumées durant TEMPO ms puis le dé s' | ||
+ | |||
+ | delay(TEMPO); | ||
+ | eteintDe(); | ||
+ | } | ||
+ | } | ||
+ | |||
+ | //Le rôle de cette fonction est d' | ||
+ | |||
+ | //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, | ||
+ | } | ||
+ | |||
+ | if(nombre==2){ | ||
+ | digitalWrite(2, | ||
+ | digitalWrite(8, | ||
+ | } | ||
+ | |||
+ | if(nombre==3){ | ||
+ | digitalWrite(2, | ||
+ | digitalWrite(5, | ||
+ | digitalWrite(8, | ||
+ | } | ||
+ | |||
+ | if(nombre==4){ | ||
+ | digitalWrite(2, | ||
+ | digitalWrite(4, | ||
+ | digitalWrite(6, | ||
+ | digitalWrite(8, | ||
+ | } | ||
+ | if(nombre==5){ | ||
+ | digitalWrite(2, | ||
+ | digitalWrite(4, | ||
+ | digitalWrite(6, | ||
+ | digitalWrite(8, | ||
+ | digitalWrite(5, | ||
+ | } | ||
+ | |||
+ | if(nombre==6){ | ||
+ | digitalWrite(2, | ||
+ | digitalWrite(3, | ||
+ | digitalWrite(4, | ||
+ | digitalWrite(6, | ||
+ | digitalWrite(7, | ||
+ | digitalWrite(8, | ||
+ | } | ||
+ | } | ||
+ | |||
+ | //Dans cette fonction toutes les LED utilisées pour le dé sont éteintes. | ||
+ | |||
+ | void eteintDe(){ | ||
+ | for(int i=2; | ||
+ | digitalWrite(i, | ||
+ | } | ||
+ | } | ||
+ | |||
+ | </ |