• Post category:Fort
  • Commentaires de la publication :0 commentaire
  • Dernière modification de la publication :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