X-Git-Url: http://git.piffa.net/web?p=rover;a=blobdiff_plain;f=prototypes%2Fservo%2Frotation_func%2Frotation_func.ino;fp=prototypes%2Fservo%2Frotation_func%2Frotation_func.ino;h=5a660c35542d29b3a6381e3ff226db6770641983;hp=0000000000000000000000000000000000000000;hb=e5ee18ad49f4c9c25628e3925e51352083b18ced;hpb=ca67a73d0b0c3e654431b7675327a9c4bd88ba3e diff --git a/prototypes/servo/rotation_func/rotation_func.ino b/prototypes/servo/rotation_func/rotation_func.ino new file mode 100644 index 0000000..5a660c3 --- /dev/null +++ b/prototypes/servo/rotation_func/rotation_func.ino @@ -0,0 +1,81 @@ +/* Rotazione + + Rotazione di un servomotore tramite la librerio Servo.h . + +L'utilizzo della libreria Servo rende inutilizzabile analogWrite() +sui pin 9 e 10 dato che utilizza i timer associati a questi PIN. + +Power: un servo da 9g puo' arrivare ad impegnare 750mA sotto carico +(se viene opposta resistenza al movimento del servo), un SG90 prende +~52mA se il movimento e' libero. Quindi in fase di test il servo puo' +essere alimentato direttamente da una scheda Arduino (200ma dal PIN 5v) +ma per l'uso finale dovra' essere alimentato autonomamente. + + +Rotazione a SX di 90' +Rotazione a DC di 90' + +Schema: https://www.arduino.cc/en/uploads/Tutorial/sweep_bb.png + http://microbotlabs.com/images/mearm-uno-servo-1.jpg + */ + +#include + +Servo myservo; // create servo object to control a servo + // a maximum of eight servo objects can be created + +// Servo vars +int pos = 0; // variable to store the servo position +const byte servo =9 ; +const byte middle = 90; // Centratura servo +const int spausa = 30; // Pausa movimenti servo +const byte left = 170; +const byte right = 10; + +void setup() +{ + myservo.attach(servo); // attaches the servo on pin 9 to the servo object + + // Centratura iniziale + myservo.write(middle); // tell servo to go to position in variable 'pos' + delay(2000); +} + + +void loop() +{ +// Turn DX + turnDX(); + delay(1000); + + turnMiddle(); + delay(1000); + +// Turn SX + turnSX(); + delay(1000); + + turnMiddle(); + delay(1000); +} + +// Functions + +void turnDX() { + // TurnDX + myservo.write(right); + delay(spausa); +} + +void turnSX() { + // TurnSX + myservo.write(left); + delay(spausa); +} + +void turnMiddle() { + // TurnDX + myservo.write(middle); + delay(spausa); +} +