Appui long BP pour allumer RGB

Salut a tous et a toutes, Cela fait 2 jours que je me casse le cerveau pour mon projet suivant:

J'ai 3 boutons et 1 RGB je cherche a faire que lorsque je reste appuiyé 3s sur un bouton cela me mette une couleur sur la RGB, si j'appui sur un autre BP pdt 3sec ca rechange de couleur, pareil pour le 2BP.

Or je ne trouve pas comment faire pour que l'arduino detecte que je reste 3s appuyé sur le bouton. J'ai beau chercher comment faire je ne trouve pas.

Si vous avez une solution je suis preneur. Bonne soirée/journée .

La bibliothèque JC_Button dispose d'un exemple qui prend en compte des appuis longs.

Il définit une durée pour l'appui long:

const unsigned long
    LONG_PRESS(1000),           // we define a "long press" to be 1000 milliseconds.

puis teste simplement:

        case ONOFF:
            if (myBtn.wasReleased())
                switchLED();
            else if (myBtn.pressedFor(LONG_PRESS))
                STATE = TO_BLINK;
            break;

Or je ne trouve pas comment faire pour que l'arduino detecte que je reste 3s appuyé sur le bouton.

Vous détectez le premier appui (donc quand la valeur de la pin change) et notez quelle "heure" il est (mettre millis() dans une variable, et notez que vous attendez maintenant le relâchement) - vous ignorez les rebonds pendant quelques ms éventuellement ou vous laissez stabiliser tranquillement - et au moment du relâchement vous regardez quelle "heure" il est. Par différence vous saurez si le bouton a été tenu appuyé plus de 3 secondes ou pas