• Post category:Nano
  • Post comments:0 commentaire
  • Post last modified:mars 12, 2022
  • Temps de lecture :9 min de lecture

Cycles ON et OFF de plusieurs LEDs en utilisant fonction millis() avec un Arduino Nano *

 

 

    Prérequis :

Matériel :

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

Version IDE :

 

 

Vidéo de démonstration :

 

Schéma de câblage :

 

Code :

//Variable pour stocker la valeur du timer interne du microcontrôleur (millis())
unsigned long timerarduino=0; 

//Timer 1////////////////////
//On définie le numéro de PIN de la LED 1 sur l'arduino
const int LED1 = 3;
//Variable pour Mémoriser la valeur du timer interne du microcontrôleur "timerarduino" pour par la suite la comparer.
unsigned long previousTimer1=0; 
//Variable pour stocker la valeur du temps d'allumage de la LED en millisecondes
unsigned long Timer1ON=200; 
//Variable pour stocker la valeur du temps d'extinction de la LED en millisecondes
unsigned long Timer1OFF=1000;
//Variable pour stocker la valeur soit du Timer1ON ou du Timer1OFF
unsigned long Timer1;
//Variable pour stocker l'état de la LED soit activer ou éteinte
bool Led1Etat = 0;
////////////////////////////

//Timer 2////////////////////
const int LED2 = 4;
unsigned long previousTimer2=0; 
unsigned long Timer2;
unsigned long Timer2ON=2000; 
unsigned long Timer2OFF=500;
bool Led2Etat = 0;
////////////////////////////

//Timer 3////////////////////
const int LED3 = 5;
unsigned long previousTimer3=0; 
unsigned long Timer3;
unsigned long Timer3ON=300; 
unsigned long Timer3OFF=1200;
bool Led3Etat = 0;
////////////////////////////

//Timer 4////////////////////
const int LED4 = 6;
unsigned long previousTimer4=0; 
unsigned long Timer4;
unsigned long Timer4ON=1000; 
unsigned long Timer4OFF=500;
bool Led4Etat = 0;
////////////////////////////

void setup() {
//On définit que LED1 qui est branché sur la Pin 3 de l'arduino sera une sortie
  pinMode(LED1,OUTPUT);
  pinMode(LED2,OUTPUT);
  pinMode(LED3,OUTPUT);
  pinMode(LED4,OUTPUT);
}

void loop() {
//On stocke la valeur du timer interne du microcontrôleur de l'arduino qu'ont récupére grace à millis() dans la variable timerarduino
  timerarduino=millis();

//Timer 1////////////////////
//Si la LED et allumer on stock la valeur du Timer1OFF dans Timer1
  if(Led1Etat){
    Timer1=Timer1OFF;
  }
//Si la LED et éteinte Timer1ON dans Timer1  
  else{
    Timer1=Timer1ON;
  }
//Si le la valeur du timer interne du microcontrôleur millis() qui est stocker dans "timerarduino" 
//moin la valeur de "previousTimer1" soit (timerarduino-previousTimer1)   
//et plus grande ">" que le Timer 1 qui égale à sois Timer1OFF ou Timer1ON.
  if((timerarduino-previousTimer1)>Timer1){
//Alors on met à jour la valeur previousTimer1 par la valeur du timer interne du microcontrôleur millis() qui est = timerarduino
    previousTimer1=timerarduino;
//Puis on inverce l'etat de la LED
    Led1Etat=!Led1Etat;
//Et on indique à notre sortie 5 "LED1" de prendre la valeur de l'état de notre LED "Led1Etat"
    digitalWrite(LED1,!Led1Etat);
  }
////////////////////////////

//Timer 2////////////////////
  if(Led2Etat){
    Timer2=Timer2OFF;
  }else{
    Timer2=Timer2ON;
  }
  if((timerarduino-previousTimer2)>Timer2){
    previousTimer2=timerarduino;
    Led2Etat=!Led2Etat;
    digitalWrite(LED2,!Led2Etat);
  }
////////////////////////////

//Timer 3////////////////////
  if(Led3Etat){
    Timer3=Timer3OFF;
  }else{
    Timer3=Timer3ON;
  }
  if((timerarduino-previousTimer3)>Timer3){
    previousTimer3=timerarduino;
    Led3Etat=!Led3Etat;
    digitalWrite(LED3,!Led3Etat);
  }
////////////////////////////

//Timer 4////////////////////
  if(Led4Etat){
    Timer4=Timer4OFF;
  }else{
    Timer4=Timer4ON;
  }
  if((timerarduino-previousTimer4)>Timer4){
    previousTimer4=timerarduino;
    Led4Etat=!Led4Etat;
    digitalWrite(LED4,!Led4Etat);
  }
////////////////////////////
}

 


+ Infos sur le langage utilisé :

1. Fonctions
2. Variables
3. Stucture

 

Laisser un commentaire