|
Il programma che muove i servo-motori (“dita”) è composto da una parte minore e due principali (Fig. 41b), separate da commenti in grigio:
-
Impostazione della velocità di rotazione (variabile rotationStep, rosa) – durante il trasferimento del programma su un vero UNO, questa istruzione può essere spostata nella procedura setup().
-
Fornire istruzioni a ciascun servo-motore per ruotare in una determinata posizione – 5 output (blu), dove bisogna prestare attenzione a specificare il corretto pin di uscita (sulla scheda UNO) e la posizione (variabili diverse, rosa). Poiché queste variabili sono impostate di default a 0 durante la setup(), non accade nulla dopo l'accensione finché non viene premuto un pulsante.
-
Controllo delle coppie di pulsanti e ricalcolo della posizione dei servo-motori. Questa parte viene ripetuta (solo una visibile in Fig. 41b) 5 volte per ciascun set di 2 pulsanti e un servo-motore.
-
Lo stato (tensione) del pulsante “Up” viene letto da un ingresso analogico. Il range di lettura possibile va da 0 a 1023 unità, corrispondenti rispettivamente a 0 e 5 Volt. Bisogna prestare attenzione a specificare il corretto pin di ingresso sulla scheda UNO.
-
Se il valore letto è superiore a 256 (1,25V), allora la posizione di uno specifico servo-motore deve essere ricalcolata, aumentandola di un valore pari a rotationStep;
-
La posizione calcolata non deve superare i 180°. Se ciò accade, viene impostata a questo valore limite.
-
Se il pulsante “Up” non è stato premuto, viene eseguito il ramo else.
-
Lo stato del pulsante “Down” viene letto da un ingresso digitale (0 = No, oppure 1 = Sì). Bisogna prestare attenzione a specificare il corretto pin di ingresso sulla scheda UNO.
-
Se il valore letto è maggiore o uguale a 1, allora la posizione di uno specifico servo-motore deve essere ricalcolata, diminuendola di un valore pari a rotationStep. È stata necessaria un'operazione aritmetica aggiuntiva (matematica, categoria verde) per ottenere un valore negativo di rotationStep.
-
La posizione calcolata non deve scendere sotto 0°. Se ciò accade, viene impostata a questo valore limite.
|

Figura 41. Parte del programma grafico per l'azionamento dei servo-motori
|