Problema con lo scorrimento di un testo su colorduino

Salve a tutti, innanzitutto spero che sia la sezione giusta per l’argomento che vado ad esporvi, altrimenti mi scuso in anticipo.

Sto cercando di realizzare un progettino che implica lo scorrimento di parole su una matrice di led 5x8 collegata con colorduino, che si interfaccia col pc attraverso un arduino duemilanove.

E’ da un po’ che ci sto lavorando e sono arrivato ad un punto morto. sono riuscito a creare uno sketch di prova in cui, inserendo una lettera tramite il monitor seriale, questa “scorre” effettivamente sulla matrice di led, il problema è che poi non mi fa inserire altre lettere e l’unico modo che ho è quello di chiudere e riaprire il monitor seriale. in realtà lo scopo finale sarebbe quello di creare parole complete che scorrano automaticamente.
Vi posto lo schizzo di codice che ho realizzato;

#include <Colorduino.h>

void setup()
{
  Colorduino.Init();
  Serial.begin(9600);
}

//t è la colonna, y è la riga

//t è la colonna da dove inizia a scrivere
  
void a()
  {
   for(unsigned char t=7;t>=0;t--)
   {
    Colorduino.SetPixel(t,4,0,255,0);
    Colorduino.SetPixel(t,3,0,255,0);
    Colorduino.SetPixel(t,2,0,255,0);
    Colorduino.SetPixel(t,1,0,255,0);
    Colorduino.SetPixel(t,0,0,255,0);
    Colorduino.SetPixel(t+1,2,0,255,0);
    Colorduino.SetPixel(t+1,4,0,255,0);
    Colorduino.SetPixel(t-7,5,0,0,0);
    Colorduino.SetPixel(t-7,3,0,0,0);
    Colorduino.SetPixel(t+3,4,0,0,0);
    Colorduino.SetPixel(t+3,3,0,0,0);
    Colorduino.SetPixel(t+3,2,0,0,0);
    Colorduino.SetPixel(t+3,1,0,0,0);
    Colorduino.SetPixel(t+3,0,0,0,0);
    Colorduino.SetPixel(t+4,4,0,0,0);
    Colorduino.SetPixel(t+4,3,0,0,0);
    Colorduino.SetPixel(t+4,2,0,0,0);
    Colorduino.SetPixel(t+4,1,0,0,0);
    Colorduino.SetPixel(t+4,0,0,0,0);
    delay(500);
    Colorduino.FlipPage();
  }
}  

void b()
{
  for(int t=7;t>=0;t--)
  {
    Colorduino.SetPixel(t,4,255,0,255);
    Colorduino.SetPixel(t,3,255,0,255);
    Colorduino.SetPixel(t,2,255,0,255);
    Colorduino.SetPixel(t,1,255,0,255);
    Colorduino.SetPixel(t,0,255,0,255);
    Colorduino.SetPixel(t+1,0,255,0,255);
    Colorduino.SetPixel(t+1,2,255,0,255);
    Colorduino.SetPixel(t+1,4,255,0,255);
    Colorduino.SetPixel(0,5,0,0,0);
    Colorduino.SetPixel(t+3,4,0,0,0);
    Colorduino.SetPixel(t+3,3,0,0,0);
    Colorduino.SetPixel(t+3,2,0,0,0);
    Colorduino.SetPixel(t+3,1,0,0,0);
    Colorduino.SetPixel(t+3,0,0,0,0);
    Colorduino.SetPixel(t+4,4,0,0,0);
    Colorduino.SetPixel(t+4,3,0,0,0);
    Colorduino.SetPixel(t+4,2,0,0,0);
    Colorduino.SetPixel(t+4,1,0,0,0);
    Colorduino.SetPixel(t+4,0,0,0,0);
    delay(750);
    Colorduino.FlipPage();
  }
}

void loop()
{  
  if(Serial.available()){
    char input = (char)Serial.read();
    Serial.println(input);
    
    switch (input){
      case 'a':
          a();
          delay(750);
          break;
      case 'b':
          b();
          delay(750);
          break;
    }
  }
}

Grazie per l’aiuto