From: Andrea Manni Date: Thu, 30 Mar 2017 13:31:00 +0000 (+0200) Subject: rotation X-Git-Url: http://git.piffa.net/web?a=commitdiff_plain;h=bf3cd5f43d63b7cf20a5cd37002fea4d246dcd89;p=rover rotation --- diff --git a/prototypes/servo/rotation/rotation.ino b/prototypes/servo/rotation/rotation.ino index 62e3b85..1193a23 100644 --- a/prototypes/servo/rotation/rotation.ino +++ b/prototypes/servo/rotation/rotation.ino @@ -27,7 +27,8 @@ Servo myservo; // create servo object to control a servo // Servo vars int pos = 0; // variable to store the servo position const byte servo =9 ; -conts byte middle = 90; // Centratura servo +const byte middle = 90; // Centratura servo +const int pausa = 1000; // Centratura servo void setup() { @@ -40,11 +41,13 @@ void setup() void loop() { // Turn DX - myservo.write(160); - delay(35); + myservo.write(170); + delay(pausa); myservo.write(middle); + delay(1000); // Turn SX - myservo.write(20); - delay(35); + myservo.write(10); + delay(pausa); myservo.write(middle); + delay(1000); } diff --git a/prototypes/servo/rotation_func/rotation_func.ino b/prototypes/servo/rotation_func/rotation_func.ino new file mode 100644 index 0000000..ac463ea --- /dev/null +++ b/prototypes/servo/rotation_func/rotation_func.ino @@ -0,0 +1,77 @@ +/* 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 + +void setup() +{ + myservo.attach(servo); // attaches the servo on pin 9 to the servo object + 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(170); + delay(spausa); +} + +void turnSX() { + // TurnSX + myservo.write(10); + delay(spausa); +} + +void turnMiddle() { + // TurnDX + myservo.write(middle); + delay(spausa); +} + diff --git a/prototypes/servo/rotation_lib/rotation_lib.ino b/prototypes/servo/rotation_lib/rotation_lib.ino new file mode 100644 index 0000000..ac463ea --- /dev/null +++ b/prototypes/servo/rotation_lib/rotation_lib.ino @@ -0,0 +1,77 @@ +/* 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 + +void setup() +{ + myservo.attach(servo); // attaches the servo on pin 9 to the servo object + 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(170); + delay(spausa); +} + +void turnSX() { + // TurnSX + myservo.write(10); + delay(spausa); +} + +void turnMiddle() { + // TurnDX + myservo.write(middle); + delay(spausa); +} +