[Aide] Afficher des chiffres de 0 à 9 sur un écran Color LCD Shield

Bonjour, je suis en terminale STI2D sin et mon groupe et moi bloquons sur notre mini-projet.

Nous devons afficher des chiffres de 0 à 9 sur un écran color LCD Shield à l'aide d'un bouton poussoir et d'une led, je m'explique :
Si l'on reste appuyé 3s sur le bouton, la led aura clignoté 3 fois (donc clignotement toutes les 500ms) et le programme comprendra qu'il doit afficher le nombre 3 sur l'écran LCD.

On ne sait pas du tout comment s'y prendre mais on a quand même essayé de faire ce qu'on pouvait avec cet écran...

On a réussi à faire un programme qui affiche le chiffre "1" en permanence et lorsqu'on appuie sur le bouton poussoir le chiffre "2" apparaît et ré-affiche "1" lorsqu'on relâche le bouton. On a aussi essayé d'allumer une led en même temps que le chiffre "2" (donc quand on appuis sur le bouton) mais sans succès...

Voila le programme :

#include "ColorLCDShield.h"
LCDShield lcd;
 int button = 3;  // S1 = 3, S2 = 4, S3 = 5
 int led = 13;
void setup()
{
 // following two required for LCD
 lcd.init(PHILIPS); 
 lcd.contrast(63); // sets LCD contrast (value between 0~63)
}
 
void loop()
{

 if (digitalRead (button)== 1 )
  {
    digitalWrite (led, LOW);
 lcd.setStr("1", 55,60, WHITE, BLACK);

 
 
  }
else {
   digitalWrite (led, HIGH);
 lcd.setStr("2", 55,60, WHITE, BLACK);
 
 
}
}

Voilà la fiche technique de l'afficheur : https://www.sparkfun.com/datasheets/DevTools/Arduino/Color-LCD-Shield-v12.pdf

On pensait à un truc du genre :

for (int i=0; i < 10; i++)
{
        if (digitalRead (button)== 1 )
  {
    digitalWrite (led, LOW);
 lcd.setStr("1", 55,60, WHITE, BLACK);
  }
else {
   digitalWrite (led, HIGH);
 lcd.setStr("2", 55,60, WHITE, BLACK);
 
 
}
}