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/08/17 06:30] – gerardadmin | start:arduino:de-electronique [2025/07/24 16:07] (Version actuelle) – admin | ||
|---|---|---|---|
| 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, | ||
| + | } | ||
| + | } | ||
| + | |||
| + | </ | ||
