Hai ragionissima. Non conosco completamente Java e sono andato dritto e malamente verso la soluzione più semplice dal mio becero punto di vista. Purtroppo in formato byte non posso inviare la variabile tramite serialWrite quindi ho fatto così:
arduino.serialWrite((char)Math.round(speed));
Per quanto riguarda il lato Arduino, beh, studiare serve a qualcosa ed è chiaro che non è quello che ho fatto io. Da autodidatta molte volte si cercano e si impastano insieme soluzioni trovate qua e là e si sorvola su tanti dettagli che rendono tutto più chiaro, veloce, funzionale, leggero etc etc...
Questa soluzione è fantastica
digitalWrite(r1,!(v >= 3 && v <= 12));
È una delle pochissime volte in cui in un forum trovo gente così educata, disponibile e preparata.
Grazie di cuore!