Eclairage pour Vélomobile

...

La déclaration des fonctions qui seront appelées :

void setup() {
//Initialisation des variables en entrée
  pinMode(EclairageJour, INPUT);
  pinMode(EclairageMat, INPUT);
  pinMode(ClignoGauche, INPUT);
  pinMode(ClignoDroit, INPUT);
  pinMode(Frein, INPUT);
  pinMode(EclairageNuit, INPUT);
//Initialisation des variables en sortie
  pinMode(Led_mat, OUTPUT);
  pinMode(Led_ar_Haut, OUTPUT);
  pinMode(Led_ar_Bas, OUTPUT);
  pinMode(Led_av_adr, OUTPUT);
  pinMode(Led_ar_adr, OUTPUT);
//renseignement des librairies avec le type de LED, les paramètres d'entrée LED_PIN et NUM_LED
  FastLED.addLeds<WS2812B, Led_av_adr, GRB>(AV_leds, Num_leds); //bandeau avant
  FastLED.addLeds<WS2812B, Led_ar_adr, GRB>(AR_leds, Num_leds); //bandeau arrière
}

//Fonction allumage des clignotants gauches
void ClignotantGauche (){
  for (i = 0; i <= 47; i++){
    AV_leds[fin-i] = CRGB (255,115,0); //Allumage des leds avant en orange
    AR_leds[gauche+i] = CRGB (255,115,0); //Allumage des leds arrières en orange
    FastLED.show();
    delay(0);
  }
  for (i = 0; i <= 47; i++){
    AV_leds[fin-i] = CRGB (0,0,0); //Extinction des leds avant
    AR_leds[gauche+i] = CRGB (0,0,0); //Extinction des leds arrière
    FastLED.show();
    delay(0);
  }
}

//Fonction allumage des clignotants droits
void ClignotantDroit() {
  for (i = 0; i <= 47; i++) {
    AV_leds[debut+i] = CRGB (255,115,0); //Allumage des leds avant en orange
    AR_leds[droite-i] = CRGB (255,115,0); //Allumage des leds arrière en orange
    FastLED.show();
    delay(0);
  }
  for (i = 0; i <= 47; i++) {
    AV_leds[debut+i] = CRGB (0,0,0); //Extinction des leds avant
    AR_leds[droite-i] = CRGB (0,0,0); //Extinction des leds arrière
    FastLED.show();
    delay(0);
  }
}

//Fonction allumage des feux de détresse
void FeuxDetresse() {
  for(i = 0 ; i <= 47; i++){
    AV_leds[fin-i] = CRGB (255,115,0); //Allumage des leds avant gauche en orange
    AR_leds[gauche+i] = CRGB (255,115,0); //Allumage des leds arrière gauche en orange
    AV_leds[debut+i] = CRGB (255,115,0); //Allumage des leds avant droite en orange
    AR_leds[droite-i] = CRGB (255,115,0); //Allumage des leds arrière droite en orange
    FastLED.show();
    delay(0);
  }
  for(i = 0 ; i <= 47; i++){
    AV_leds[fin-i] = CRGB (0,0,0); //Extinction des leds
    AR_leds[gauche+i] = CRGB (0,0,0);
    AV_leds[debut+i] = CRGB (0,0,0);
    AR_leds[droite-i] = CRGB (0,0,0);
    FastLED.show();
    delay(0);
  }
}

//Fonction allumage des feux de jour avant sur adr
void FeuxJourAvantCligno() {
  FastLED.setBrightness(32);
  for(i = 0 ; i <= 24; i++){
    AV_leds[milieu+i] = CRGB (255, 255, 255); //Allumage des leds avant en blanc du milieu vers la gauche
    AV_leds[milieu-i] = CRGB (255, 255, 255); //Allumage des leds avant en blanc du milieu vers la droite
    FastLED.show();
  }
  for(i = 0 ; i <= 24; i++){
    AV_leds[milieu+i] = CRGB (0, 0, 0); //Extinction des leds
    AV_leds[milieu-i] = CRGB (0, 0, 0);
    FastLED.show();
  }
}

/*/Fonction allumage des feux de jour arrière sur adr
void FeuxJourArriereCligno(){ 
  FastLED.setBrightness(32);
  for(i = 0 ; i <= 24; i++){
    AR_leds[milieu+i] = CRGB (255, 0, 0); //Allumage des leds arrière en rouge du milieu vers la gauche
    AR_leds[milieu-i] = CRGB (255, 0, 0); //Allumage des leds arrière en rouge du milieu vers la droite
    FastLED.show();
  }
  for(i = 0 ; i <= 24; i++){
    AR_leds[milieu+i] = CRGB (0, 0, 0); //Extinction des leds
    AR_leds[milieu-i] = CRGB (0, 0, 0);
    FastLED.show();
  }
}
*/
//Fonction allumage fixe des feux de jour avant adr et arrière adr lors de l'utilisation des indicateurs de direction
void FeuxJourFixe() {
  FastLED.setBrightness(32);
    for(i = 0 ; i <= 24; i++){
      AV_leds[milieu+i] = CRGB (255, 255, 255); //Allumage fixe des leds avant en blanc
      AV_leds[milieu-i] = CRGB (255, 255, 255); //Allumage fixe des leds avant en blanc
      AR_leds[milieu+i] = CRGB (255, 0, 0); //Allumage fixe des leds arrière en rouge
      AR_leds[milieu-i] = CRGB (255, 0, 0); //Allumage fixe des leds arrière en rouge
      FastLED.show();
  }
}

//Fonction allumage feux rouge arrière clignotant de jour
void Feuxjour12Vcligno(){
  analogWrite(Led_ar_Bas, 128); //Allumage des leds rouges arrières clignotantes à 50% de puissance
  analogWrite(Led_ar_Haut, 128);
  delay(250);
  analogWrite(Led_ar_Bas, 0); //Extinction des leds rouges arrières clignotantes
  analogWrite(Led_ar_Haut, 0);
  delay(250);
}

//Fonction allumage feux stop
void FeuxStopON(){
    analogWrite(Led_ar_Haut, 255); //Allumage des leds rouges arrières hautes à 100% de puissance
    analogWrite(Led_ar_Bas, 255); //Allumage des leds rouges arrières basses à 100% de puissance
}

void FeuxStopOFF(){
//    digitalWrite(Led_ar_Haut, LOW); //Extinction des leds rouges arrières hautes
//    digitalWrite(Led_ar_Bas, LOW); //Extinction des leds rouges arrières basses
    analogWrite(Led_ar_Haut, 0); //Extinction des leds rouges arrières hautes
    analogWrite(Led_ar_Bas, 0); //Extinction des leds rouges arrières basses
}

//Fonction allumage feux de nuit
void FeuxNuitON(){
    analogWrite(Led_ar_Haut, 64); //Allumage des leds rouges arrières fixes à 50% de puissance
    analogWrite(Led_ar_Bas, 64); //Allumage des leds rouges arrières cligno à 50% de puissance
}

//Fonction allumage du mat et des reports latéraux
void FeuxMatON(){
  analogWrite(Led_mat, 210); //Allumage des leds à 75% de puissance (couleur définie par tansistors)
  delay(250);
  analogWrite(Led_mat, 0); //Extinction des leds
  delay(250);
}

...