ok ora funzione se lo comando tramite monitor seriale
ma non tramite php
quindi il problema sta nel php :\
comunque il codice è questo
void loop ()
{
if(Serial.available()>0)
{ byte nletti,funz=0,tempo=0;
nletti=Serial.readBytesUntil('#', buf, sizeof(buf));
if(nletti>0) // può non leggere nulla, se attende oltre timeout
{ funz=buf[0]-'0'; // primo char convertito in cifra es. '3' => 51 51-'0' => 51-48 => 3 come valore
tempo=(buf[1]-'0')*100+(buf[2]-'0')*10+(buf[3]-'0');
pausa= int(tempo);
funzione= int(funz);
}
}
switch (funzione)
{
case 0:;break;
case 1: uno_alla_volta(pausa);azzera();break;
case 2: livelli(pausa);azzera();break;
case 3: colonne(pausa);azzera();break;
case 4: verticale(pausa);azzera();break;
}
}
Però se gli invio una nuova serie, aspetta prima la fine della funzione e poi fa partire l'altra, perchè? :\ non c'è un modo per arrestare l'esecuzione e far partire la nuova?
Inoltre ogni volta che finisce la funzione, aspetta un po' prima di farla ripartire, non si coporta come si dovrebbe comportare semplicemente in loop (accade con tutte le funzioni)