• Post category:Fort
  • Post comments:0 commentaire
  • Post last modified:mars 13, 2022
  • Temps de lecture :8 min de lecture

Faire clignoter différemment 2 leds avec la fonction millis avec Arduino

Niveau APPRENTISSAGE :   Fort

 

    Prérequis :

Matériel :

  • 1 x Carte Arduino
  • 2 x Résistances 220 ohms
  • 2 x Leds
  • Fils de connexion
  • 1 x Breadboard

Version IDE :

 

 

Schéma de câblage :

 

Code :

//////////////////Led rouge //////////////////////
// La broche numérique 2 est reliée à la led rouge. On lui donne le nom Ledrouge.
const int Ledrouge = 2; 
// Déclaration variable ledState qui va servir à stocker une valeur au format bool soit LOW ou HIGH.
bool LedrougeState; 
// Déclaration variable LedrougepreviousMillis qui va servir à stocker une valeur au format unsigned long.
unsigned long LedrougepreviousMillis = 0; 
// Déclaration variable Ledrougeinterval qui va servir à stocker une valeur au format unsigned int.
unsigned int Ledrougeinterval; 
// Déclaration variable Ledrougeinterval1 qui va servir à stocker une valeur au format unsigned int.
// On lui donne la valeur de 1000 qui correspondra à intervalle 1 de clignotement (millisecondes)
unsigned int Ledrougeinterval1 = 1000; 
// Déclaration variable Ledrougeinterval2 qui va servir à stocker une valeur au format unsigned int.
// On lui donne la valeur de 100 qui correspondra à intervalle 2 de clignotement (millisecondes)
unsigned int Ledrougeinterval2 = 100;  

//////////////////Led verte //////////////////////
const int Ledverte = 3; 
bool LedverteState; 
unsigned long LedvertepreviousMillis = 0; 
unsigned int Ledverteinterval; 
unsigned int Ledverteinterval1 = 2000; 
unsigned int Ledverteinterval2 = 500; 

void setup() {
  // Définit Ledrouge comme sortie.
  pinMode(Ledrouge, OUTPUT);
  // Définit Ledverte comme sortie.
  pinMode(Ledverte, OUTPUT);
}

void loop() {
   // Lit la valeur millis() et stock ça valeur dans currentMillis au format unsigned long
  unsigned long currentMillis = millis();
  
  //////////////////Led rouge //////////////////////
  // Si currentMillis - LedrougepreviousMillis >= Ledrougeinterval on exécute les actions entre {}
  if (currentMillis - LedrougepreviousMillis >= Ledrougeinterval) 
  {
    // Stock la valeur de currentMillis dans la variable LedrougepreviousMillis
    LedrougepreviousMillis = currentMillis;
    // Si LedrougeState == LOW on exécute les actions entre {}
    if (LedrougeState == LOW) { 
      // La variable LedrougeledState prend la valeur de HIGH
      LedrougeState = HIGH;      
      // Stock la valeur de Ledrougeinterval2 dans interval
      Ledrougeinterval = Ledrougeinterval2; 
    } 
    //Sinon  on exécute les actions entre {}
    else {
      // La variable LedrougeState prend la valeur de LOW
      LedrougeState = LOW;  
      // Stock la valeur de Ledrougeinterval1 dans interval    
      Ledrougeinterval = Ledrougeinterval1;
    }
    // Met la broche numérique stockée dans Ledrouge soit 2 à la valeur de LedrougeState
    digitalWrite(Ledrouge, LedrougeState); 
  }
  
  //////////////////Led verte //////////////////////
  if (currentMillis - LedvertepreviousMillis >= Ledverteinterval) 
  {
    LedvertepreviousMillis = currentMillis;
    if (LedverteState == LOW) { 
      LedverteState = HIGH;      
       Ledverteinterval = Ledverteinterval2; 
    } 
    else {
      LedverteState = LOW;  
      Ledverteinterval = Ledverteinterval1;
    }
    digitalWrite(Ledverte, LedverteState); 
  }
}

 

Simulation TINKERCAD :

 


+ Infos sur le langage utilisé :

1. Fonctions
2. Variables
3. Stucture

 

Laisser un commentaire