Ottimizzazione codice - 4 motori passopasso lentissimi

DgDev91:
Per snellire un attimo il codice prima di tutto fai uno switch-case

Grazie per il suggerimento ma non ha risolto il problema di fondo: quando girano più motori rallenta paurosamente.
Direi però abbia alleggerito un minimo.
Video: https://www.youtube.com/watch?v=63ZN2a23i9o

DgDev91:
Come seconda cosa... mi sembra di aver capito che i comandi che arrivano sulla seriale dovrebbero, in teoria, essere ricevuti soltanto una tantum per spegnere e accendere i motori, o per cambiare direzione.
Dico bene?

E a questo punto, mi viene il dubbio che in realtà la seriale stia bufferizzando molti più comandi di quanto ti aspetti, e quindi il programma passa molto tempo all'interno del while a impostarsi le variabili abilitato e direzione, finendo nella seconda parte del loop (quella che effettivamente muove i motori) molto più di rado di quanto ti aspetti.

Magari puoi fare un prova mettendoti un Serial.println(Serial.available()); all'interno del while.

Mi restituisce solo il valore 0 una volta, ovvero quando gli mando un comando da seriale.
Quindi quel ciclo funziona correttamente, ci entra solo quando gli arrivano comandi. E restituisce niente.

dinodf:
Ciao,
il problema credo che stia nel fatto che non utilizzi correttamente la libreria...

Ciao Dino, ti ringrazio per le dritte, ho appurato le mie lacune nell'uso della libreria. Quello che dovrò fare è studiarmela a modo. Il punto è che come molti principianti fanno, ho trovato uno sketch iniziale adatto al mio progetto, poi l'ho ampliato secondo le mie necessità in modo non ottimo .
Quei 300 cicli li avevo impostati per un motivo, e la variabile S1_escursione l'avevo aggiunta per usarla al posto di inserire 300 manualmente, poi non ho continuato ed è rimasta lì.
Ho paura effettivamente che perda dei passi, ma non so come appurarlo.

Mi documenterò il più possibile su queste cose e spero di saltarci fuori.. in ogni caso, per la parte del seriale cosa pensi? In particolare sull'usare lo Switch case.
Gli if successivi rimangono comunque, giusto?

Ema.