Bonjour, je viens de tester avec un programme exemple, et la compilation fonctionne.
Je voudrais joindre mon code, mais je suis bloqué en temps que nouvel utilisateur 
Voici déjà toute la première partie, les déclarations et les deux fonctions setup et loop, si cela peut aider :
/* Déclarations ******************************************************/
#include <Wire.h> // Pour communication via le port série (débug)
// Potentiomètre
#define POT_PIN 2
// Boutons
#define BUT_CLK_SET_PIN 7 // Bouton de mise à l'heure de l'horloge
#define BUT_DCF77_PIN 9 // Bouton de recherche du signal DCF
unsigned long tempoDepart; // note le top départ de l'appui sur le poussoir, via la fonction milli().
// format unsigned long imposé selon la doc.
// Module RTC 3231
#include <RTClib.h>
RTC_DS3231 RTC;
// Module DCF77
#include "decodeurDCF1.h"
const byte PIN_DCF1 = 2; // Broche de lecture du DCF77
//int signal = 0; // Signal de sortie du DCF77
//int qualite = 0; // niveau de qualité
long timer_DCF; // Tempo pour la recherche automatique du signal DCF77
long ref_millis; // Temps de référence pour la recherche automatique
const int DELAI_ACTUALISATION_ECRAN = 5000; // Délai pour réactualisation de l'affichage pendant la recherche de signal (en millisecondes)
byte qualite_reception ; // Qualité du signal décodé, de 0 à 11
// Ruban Neopixel
#include <FastLED.h>
#define LED_COUNT 152 // Nombre de LEDs du tableau
#define LED_DATA_PIN 6 // Broche de commande des LEDs
#define MAX_BRIGHTNESS 255 // Luminosité max = 255
#define MIN_BRIGHTNESS 0 // Luminosité min = 0
CRGB leds[LED_COUNT]; // Tableau FastLED de gestion des LEDs
// Paramètres esthétiques
#define SinMIN -1000 // Borne inférieure des fluctuations lumineuses
#define SinMAX 1000 // Borne supérieure
#define BPM 2 // Fréquence des pulsations lumineuses (par minute)
#define fondu 15 // Durée du fondu enchaîné (secondes)
// Définition du cadran
// Tableau stockant les numéros des LEDs constituant chaque mot (les LEDs non utilisées sont mises forfaitairement à 200)
// En dernière colonne, on ajoute l'index utilisé pour les gradients de couleur du mode "arc en ciel", permettant de regrouper les mots devant s'afficher d'une même couleur
const byte cadran[29][11] = {
{61, 71, 85, 86, 109, 115, 118, 132, 141, 151, 0}, // Zones noires
{72, 73, 74, 75, 76, 77, 200, 200, 200, 200, 2}, // Minuit
{49, 48, 47, 200, 200, 200, 200, 200, 200, 200, 4}, // 1 H
{36, 37, 38, 39, 200, 200, 200, 200, 200, 200, 44}, // 2 H
{19, 18, 17, 16, 15, 200, 200, 200, 200, 200, 8}, // 3 H
{25, 24, 23, 22, 21, 20, 200, 200, 200, 200, 34}, // 4 H
{57, 58, 59, 60, 200, 200, 200, 200, 200, 200, 12}, // 5 H
{29, 30, 31, 200, 200, 200, 200, 200, 200, 200, 14}, // 6 H
{8, 9, 10, 11, 200, 200, 200, 200, 200, 200, 16}, // 7 H
{32, 33, 34, 35, 200, 200, 200, 200, 200, 200, 18}, // 8 H
{53, 52, 51, 50, 200, 200, 200, 200, 200, 200, 18}, // 9 H
{1, 2, 3, 200, 200, 200, 200, 200, 200, 200, 22}, // 10 H
{46, 45, 44, 43, 200, 200, 200, 200, 200, 200, 24}, // 11 H
{4, 5, 6, 7, 200, 200, 200, 200, 200, 200, 26}, // Midi
{62, 63, 64, 65, 66, 200, 200, 200, 200, 200, 28}, // Heure
{67, 200, 200, 200, 200, 200, 200, 200, 200, 200, 28}, // s
{128, 127, 200, 200, 200, 200, 200, 200, 200, 200, 30}, // du
{142, 143, 144, 145, 146, 200, 200, 200, 200, 200, 32}, // matin
{147, 148, 149, 150, 200, 200, 200, 200, 200, 200, 10}, // soir
{102, 101, 100, 99, 200, 200, 200, 200, 200, 200, 36}, // 5
{131, 130, 129, 200, 200, 200, 200, 200, 200, 200, 37}, // 10
{113, 114, 200, 200, 200, 200, 200, 200, 200, 200, 39}, // et
{119, 120, 121, 122, 123, 200, 200, 200, 200, 200, 43}, // quart
{108, 107, 106, 105, 104, 200, 200, 200, 200, 200, 6}, // 20
{103, 200, 200, 200, 200, 200, 200, 200, 200, 200, 36}, // -
{137, 136, 135, 134, 200, 200, 200, 200, 200, 200, 20}, // demi
{133, 200, 200, 200, 200, 200, 200, 200, 200, 200, 20}, // e
{87, 88, 89, 90, 91, 200, 200, 200, 200, 200, 50}, // moins
{116, 117, 200, 200, 200, 200, 200, 200, 200, 200, 52} // le
};
/* Fonctions Arduino *************************************************/
void setup() {
delay(3000); // Temporisation initiale pour mise en place
Serial.begin(9600); // Pour débuggage
// Déclaration des entrées/sorties
pinMode(POT_PIN, INPUT);
pinMode(LED_DATA_PIN, OUTPUT);
pinMode(BUT_CLK_SET_PIN, INPUT_PULLUP); // Le poussoir relaché est lu comme un état haut, et un appui donne lieu à lecture d'un état bas.
pinMode(BUT_DCF77_PIN, INPUT_PULLUP); // Le poussoir relaché est lu comme un état haut, et un appui donne lieu à lecture d'un état bas.
pinMode(13, OUTPUT); // Recopie des impulsions DCF77 sur led interne de l'arduino
pinMode(PIN_DCF1, INPUT);
// Initialisation du module RTC
RTC.begin();
//RTC.adjust(DateTime(2021,05,20,3,2,0));
//RTC.adjust(DateTime(F(__DATE__), F(__TIME__))); // On ajuste l'heure du module RTC à celle de compilation
// Initialisation du Neopixel
FastLED.addLeds<NEOPIXEL, LED_DATA_PIN>(leds, LED_COUNT).setCorrection(TypicalLEDStrip);
FastLED.setMaxPowerInVoltsAndMilliamps(5, 1500);
// Mise en place du ruban Neopixel
FastLED.clear();
allumeTout();
FastLED.show();
delay(1000);
}
void loop() {
//Serial.println("début Loop");
// Traitement du bouton de mise à l'heure
if (digitalRead(BUT_CLK_SET_PIN) == LOW) {
Serial.println("Bouton Reset Midi");
// On appuie sur le bouton de mise à l'heure :
// - extinction de l'ensemble du cadran
// - allumage du M de "midi" en blanc
allumeMIDI(1);
tempoDepart = millis(); // on note le temps Arduino
while ((millis() - tempoDepart) < 1000) {
if (digitalRead(BUT_CLK_SET_PIN) == HIGH) { // poussoir relâché trop tot
//Serial.println("appui trop court, arrêt procédure mise à heure midi");
goto abort_procedure;
}
}
allumeMIDI(2);
tempoDepart = millis(); // on note le temps Arduino
while ((millis() - tempoDepart) < 1000) {
if (digitalRead(BUT_CLK_SET_PIN) == HIGH) { // poussoir relâché trop tot
//Serial.println("appui trop court, arrêt procédure mise à heure midi");
goto abort_procedure;
}
}
allumeMIDI(3);
tempoDepart = millis(); // on note le temps Arduino
while ((millis() - tempoDepart) < 1000) {
if (digitalRead(BUT_CLK_SET_PIN) == HIGH) { // poussoir relâché trop tot
//Serial.println("appui trop court, arrêt procédure mise à heure midi");
goto abort_procedure;
}
}
allumeMIDI(4);
tempoDepart = millis(); // on note le temps Arduino
while ((millis() - tempoDepart) < 1000) {
if (digitalRead(BUT_CLK_SET_PIN) == HIGH) { // poussoir relâché trop tot
//Serial.println("appui trop court, arrêt procédure mise à heure midi");
goto abort_procedure;
}
}
clignoteMIDI();
while (digitalRead(BUT_CLK_SET_PIN) == LOW){
// boucle pour patienter en attendant que le bouton soit relâché
Serial.println("appui validé, attente relâchement poussoir");
delay(200);
}
// On met le RTC à midi, et on valide par un clignotement
DateTime ilEst = RTC.now();
RTC.adjust(DateTime(ilEst.year(),ilEst.month(),ilEst.day(),12,0,0));
clignoteMIDI();
abort_procedure:
delay(100);
}
// Traitement du bouton de recherche DCF77
if (digitalRead(BUT_DCF77_PIN) == LOW) {
rechercheHeureDCF77();
timer_DCF = millis(); // pour éviter pb overflow 50j après démarrage de l'Arduino...
}
// Lecture du potentiomètre et ajustement de la luminosité en conséquence
verifLuminosite();
// Récupération de l'heure du RTC
DateTime heureCourante = RTC.now();
// S'il est 3h du matin, on lance la recherche automatique du signal DCF77
//if (heureCourante.hour() == 3 && heureCourante.minute() == 0 && heureCourante.second() == 0) {
//rechercheHeureDCF77();
//timer_DCF = millis(); // pour éviter pb overflow 50j après démarrage de l'Arduino...
//}
// Calcul de l'heure arrondie
DateTime heureArrondie = arrondiHeure(heureCourante);
// Calcul de l'heure arrondie suivante, et du coefficient de fondu entre les deux
DateTime heureArrondieAVenir = prochaineHeureArrondie(heureArrondie);
float coeffFondu = calculFondu(heureCourante, heureArrondie);
// Calcul du masque d'affichage de l'heure
byte masque[LED_COUNT];
calculMasque(masque, heureArrondie, heureArrondieAVenir, coeffFondu);
// Rendu du ruban LED
FastLED.clear();
allumeTout(); // On allume l'ensemble du cadran
//fluctuations(); // On ajoute les composantes variables
ajoutMasque(masque); // On ajoute le masque pour ne laisser allumée que l'heure à afficher
delay(10); // Temporisation de traitement
FastLED.show(); // Affichage
}