Advertisement
tpaper

Termidorians IItris

Dec 30th, 2013
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. void vaia(int x, int y, int speed, int step) { //Definisce una nuova funzione che sposta i servi in posizione x,y muovendo i servi di 'step' gradi ogni 'speed' millisecondi.
  2.     int posx = servoX.read();   //Legge la posizione attuale di servoX e la memorizza in posx
  3.     int posy = servoY.read();   //Legge la posizione attuale di servoY e la memorizza in posy
  4.     int incx = 0; int incy = 0; //Crea due variabili intere per memorizzare l'incremento che i servi dovranno fare. Questo poiché se i servi si trovano in una posizione "inferiore" rispetto a quella impostata, allora si dovranno "aggiugere" gradi alla posizione, se la posizione attuale è "superiore" a quella impostata, allora si dovranno "togliere" gradi alla posizione.
  5.     if (x > posx) { incx = step; } else if (x < posx) { incx = -step; } //Se la x impostata è maggiore della posizione attuale posx, allora l'incremento della x è uguale a 'step'. In caso contrario è uguale a '-step' (Incremento negativo)
  6.     if (y > posy) { incy = step; } else if (y < posy) { incy = -step; } //Come sopra
  7.     while ( ((incx == step) && (x > posx)) || ((incx == -step) && (x < posx)) ) { // Continua il ciclo che segue fin quando è soddisfatta almeno una delle seguenti condizioni: 1 - L'incremento è positivo e la posizione attuale è inferiore a quella desiderata; 2 - L'incremento è negativo e la posizione è superiore a quella desiderata
  8.         posx = servoX.read(); //Legge la posizione del servo e la memorizza in posx
  9.         servoX.write(posx + incx); //Sposta il servo alla posizione successiva
  10.         delay(speed); //Aspetta un po'
  11.     }
  12.     while ( ((incy == step) && (y > posy)) || ((incy == -step) && (y < posy)) ) { //Come sopra
  13.         posy = servoY.read();
  14.         servoY.write(posy + incy);
  15.         delay(speed);
  16.     }
  17.     return; //Termina la funzione tornando al flusso del programma
  18. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement