granteeric

LED Flash Independant avec millis

May 11th, 2021
233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. #define LED1 2
  3. #define LED2 3
  4. #define LED3 4
  5. #define LED4 5
  6. #define LED5 6
  7. #define LED1FLASH 500
  8. #define LED2FLASH 1000
  9. #define LED3FLASH 1500
  10. #define LED4FLASH 2000
  11. #define LED5FLASH 2500
  12.  
  13. //tableau qui comprenne les différent port digital des LEDs
  14. uint8_t digitalPort[5] ={LED1, LED2, LED3, LED4, LED5 };
  15.  
  16. //tableau qui contient la durée du flash pour chaque LED
  17. uint16_t tempoLed[5] = {LED1FLASH, LED2FLASH,LED3FLASH,LED4FLASH,LED5FLASH};
  18.  
  19. //tableau qui enregistrera les différence entre millis actuelle et millis suivant pour les comparer a la durée de flash
  20. uint32_t _millisLED[5]={0,0,0,0,0};
  21.  
  22. void setup () {
  23.  
  24.     for(int i = 0 ; i < 5 ; i++){
  25.         //on initialise les ports des Leds en OUTPUT
  26.         pinMode(digitalPort[i], OUTPUT);
  27.    
  28.         //on initialise les sortie a LOW les led sont éteinte
  29.         digitalWrite(digitalPort[i], LOW);
  30.     }
  31. }
  32.  
  33. void loop() {
  34.     uint32_t _millis = millis();
  35.  
  36.     //on test si la durée est passer et on change l'etat de la led.
  37.     for(int i = 0 ; i < 5 ; i++){
  38.         if( (_millis - _millisLED[i])  >= tempoLed[i] ){
  39.             //on change l'etat de la LED
  40.              digitalWrite(digitalPort[i], !digitalRead(digitalPort[i]));
  41.             //on stock millis actuelle dans millisLed pour le teste suivant
  42.              _millisLED[i] = _millis;
  43.         }
  44.     }
  45. }
  46.  
Add Comment
Please, Sign In to add comment