Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 193

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/LocalSettings.php on line 197

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338

Warning: putenv() has been disabled for security reasons in /home/users4/d/debrouilloweb/www/wikidebrouillard/includes/parser/Parser.php on line 2338
[ Wikidébrouillard ] Compteur binaire 8 bits

Compteur binaire 8 bits

De Wikidebrouillard.

(Code)
(Code)
Ligne 77 : Ligne 77 :
   while (btn_mode == 1)                // tant que btn_mode = 1, on exécute cette boucle
   while (btn_mode == 1)                // tant que btn_mode = 1, on exécute cette boucle
   {
   {
-
     etat_btn = digitalRead (11);      // lit l'état actuel du bouton poussoir et le mémorise dans la variable etat_btn
+
     etat_btn = digitalRead (11);      // lit l'état actuel du bouton poussoir et le mémorise dans  
 +
                                      // la variable etat_btn
-
     if (etat_btn != dernier_etat_btn)  // si l'état du bouton est différent du dernier état, on exécute la boucle
+
     if (etat_btn != dernier_etat_btn)  // si l'état du bouton est différent du dernier état, on exécute  
 +
                                      // la boucle
     {
     {
       if (etat_btn == LOW )            // si l'état du bouton est 0
       if (etat_btn == LOW )            // si l'état du bouton est 0
Ligne 85 : Ligne 87 :
         compteur++;                    // on incrémente le compteur
         compteur++;                    // on incrémente le compteur
        
        
-
         if (compteur>=256) compteur = 0; // RAZ de la variable compteur lorsque qu'on dépasse la valeur 255
+
         if (compteur>=256) compteur = 0; // RAZ de la variable compteur lorsque qu'on dépasse la  
 +
                                        // valeur 255
       }
       }
Ligne 101 : Ligne 104 :
     for (int i=0; i<=7; i++) // boucle de défilement des 8 bits / broches     
     for (int i=0; i<=7; i++) // boucle de défilement des 8 bits / broches     
     {   
     {   
-
       digitalWrite(LED[i],bitRead(compteur,i));// met la broche LED[i] dans l'état du bit de rang i de la variable compteur
+
       digitalWrite(LED[i],bitRead(compteur,i));// met la broche LED[i] dans l'état du bit de rang i  
 +
                                              // de la variable compteur
     }
     }
-
     compteur++;                       // on incrémente le compteur
+
     compteur++;                     // on incrémente le compteur
      
      
-
     if (compteur>=256) compteur=  0;   // RAZ de la variable compteur lorsque qu'on dépasse la valeur 255
+
     if (compteur>=256) compteur=  0; // RAZ de la variable compteur lorsque qu'on dépasse la valeur 255
-
     delay (250);                       // pause de 250ms fixant la vitesse du comptage
+
     delay (250);                     // pause de 250ms fixant la vitesse du comptage
   }
   }
-
}                                     // le programme recommence au début de la fonction loop()
+
}                                   // le programme recommence au début de la fonction loop()

Version du 26 janvier 2014 à 21:11

Article incomplet en cours de rédaction
Modèle:Vidéo

Sommaire

Présentation du projet arduino

Ce programme réalise un affichage d'un compteur binaire sur 8 LEDs. Chaque LED visualise directement l'état d'un bit de l'octet utilisé pour le comptage. On peut le faire manuellement ou automatiquement en utilisant un bouton, pour passer d'un mode à l'autre.

Liste du matériel

réalisation du projet

Explication

Ce compteur binaire possède deux modes de fonctionnement qu'on sélectionne avec le bouton poussoir connecté sur la broche 2 de l'arduino. Un mode manuel qui est sélectionné par défaut et qui incrémente le comptage à l'aide du bouton pousoir connecté sur la broche 11. Un mode automatique qu'on sélectionne/déselectionne par pression sur le bouton en question.

Schéma Fritzing

Code

/*

************************************* Compteur binaire 8 bits *************************************

*/

//************************************ Déclaration des broches ************************************

const int btn_increment = 11;        // le bouton est connecté à la broche 11 de la carte arduino      
const int LED[8]={3,4,5,6,7,8,9,10}; // déclare un tableau de 8 constantes de broches
                             // la broche 3 correspond au bit de poids faible (index 0 du tableau)
                             // la broche 10 correspond au bit de poids fort (index 8 du tableau)

//****************************** Déclaration des variables globales ******************************

int compteur = 0;                      // variable de comptage
int etat_btn = HIGH;                   // variable qui enregistre l'état du bouton
int dernier_etat_btn = HIGH;           // variable qui enregiste le dernier état du bouton
int btn_mode = 1;                      // variable qui permet de passer d'un mode à l'autre

//*************************************** Fonction setup ***************************************
// La fonction setup() est exécutée en premier et une seule fois au démarrage du programme

void setup()   
{
  pinMode (btn_increment, INPUT);     // le bouton d'incrémentation est une entrée
  for (int i=0; i<=7; i++)            // met les 8 LEDs en sortie
  { 
    pinMode(LED[i], OUTPUT);           
  }
  attachInterrupt(0, changement_mode, RISING); // on initialise l'interruption
}

//********************************** Programme d'interruption **********************************
// La fonction void changement_mode() est exécutée à chaque pression du bouton qui permet de 
// changer de mode

void changement_mode()
{
  btn_mode = !btn_mode;               // change la variable par son opposé
}

//*************************************** Fonction loop ***************************************
// La fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension

void loop()                            // début de la fonction loop
{
  while (btn_mode == 1)                // tant que btn_mode = 1, on exécute cette boucle
  {
    etat_btn = digitalRead (11);       // lit l'état actuel du bouton poussoir et le mémorise dans 
                                       // la variable etat_btn

    if (etat_btn != dernier_etat_btn)  // si l'état du bouton est différent du dernier état, on exécute 
                                       // la boucle
    {
      if (etat_btn == LOW )            // si l'état du bouton est 0
      {
        compteur++;                    // on incrémente le compteur
       
        if (compteur>=256) compteur = 0; // RAZ de la variable compteur lorsque qu'on dépasse la 
                                         // valeur 255
      }

      for (int i=0; i<=7; i++) 
      { 
        digitalWrite(LED[i],bitRead(compteur,i));
      }
      dernier_etat_btn = etat_btn;
      delay (60);
    }
  }

  while (btn_mode == 0 )
  {
    for (int i=0; i<=7; i++) // boucle de défilement des 8 bits / broches    
    {   
      digitalWrite(LED[i],bitRead(compteur,i));// met la broche LED[i] dans l'état du bit de rang i 
                                               // de la variable compteur
    }

    compteur++;                      // on incrémente le compteur
     
    if (compteur>=256) compteur=  0; // RAZ de la variable compteur lorsque qu'on dépasse la valeur 255

    delay (250);                     // pause de 250ms fixant la vitesse du comptage
  }
}                                    // le programme recommence au début de la fonction loop()


Liens avec d'autres projets arduino

chercher ici : http://wikidebrouillard.org/index.php/Catégorie:Arduino

Pour aller plus loin

Liens avec le quotidien

quelles peuvent être les applications technologique de ce montage, ou est-ce qu'on retrouve des programme qui y ressemble ?
Portail des ExplorateursWikidébrouillardLéon DitFLOGPhoto mystèreJ'ai FaitPortraits
AR
CO

Compteur binaire 8 bits

Rechercher

Page Discussion Historique
Powered by MediaWiki
Creative Commons - Paternite Partage a l

© Graphisme : Les Petits Débrouillards Grand Ouest (Patrice Guinche - Jessica Romero) | Développement web : Libre Informatique