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