Advertisement
granteeric

LED asyncrone

Mar 20th, 2021
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define PIN_LED_1 9         //definition du port de la Led1 sur le port digital 9
  2. #define PIN_LED_2 10        //definition du port de la Led2 sur le port digital 10
  3.  
  4. #define INTERVAL_LED_1 500   //definition pour la durée d'interval de la led 1
  5. #define INTERVAL_LED_2 1000   //definition pour la durée d'interval de la led 2
  6.  
  7. //declaration des variables pour millis
  8. unsigned long previousMillisLED1 = 0;
  9. unsigned long previousMillisLED2 = 0;
  10. unsigned long currentMillis = 0;
  11.  
  12.   void setup() {
  13.     //configuration des PINS 9 et 10 en sortis
  14.     pinMode(PIN_LED_1, OUTPUT);
  15.     pinMode(PIN_LED_2, OUTPUT);
  16.   }
  17.  
  18.   void loop() {
  19.     //stockage du temps millis actuelle dans la variable currentMillis
  20.     currentMillis = millis();
  21.    
  22.     if ((currentMillis - previousMillisLED1) >= INTERVAL_LED_1) {   //test si la difference entre currentMillis et PreviousMillisLed1 est supérieur ou egal a l'intervale de temps de LED 1
  23.         //si la consition est vrai alors on bascule l'etat de la LED1
  24.         //on recupere la valeur d'etat de la LED1 avec digitalRead, on a soit 1 HIGH soit 0 LOW, et avec le point d'exclamation on inverse le resultat que l'on
  25.         //resinscrit dans le registre avec digitalWrite
  26.         digitalWrite(PIN_LED_1, !digitalRead(PIN_LED_1) );        
  27.  
  28.         //on stock le temps dans previousMillisLED1 pour le decompte suivant
  29.       previousMillisLED1 = currentMillis;
  30.     }
  31.  
  32.     if ((currentMillis - previousMillisLED2) >= INTERVAL_LED_2) {
  33.       digitalWrite(PIN_LED_2, !digitalRead(PIN_LED_2) );        
  34.       previousMillisLED2 = currentMillis;
  35.     }
  36.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement