Controllo di due servo motori con interruttore a bottone

Buongiorno, vorrei controllare 2 servomotori utilizzando un singolo interruttore a bottone (buttons). Cosa posso fare? Ci ho lavorato un sacco di ore e nonostante ciò non funziona ancora. Aiutatemi, sono nuovo nel contesto e non capisco molto bene

Vi lascio lo sketch

#include <Servo.h>

Servo myservo1; // create servo object to control a servo
Servo myservo2;

#define servoPin 3 //~
#define servoPin 4
#define pushButtonPin 2

int angle =90; // initial angle for servo
int angleStep =5;
const int minAngle = 50;
const int maxAngle = 110;

int buttonPushed =0;

void setup() {
// Servo button demo by Robojax.com
Serial.begin(9600); // setup serial
myservo1.attach(servoPin); // attaches the servo on pin 3 to the servo object
myservo2.attach(servoPin);
pinMode(pushButtonPin,INPUT_PULLUP);
Serial.println("Robojax Servo Button ");
}

void loop() {
if(digitalRead(pushButtonPin) == LOW){
buttonPushed = 1;
}
if( buttonPushed ){
// change the angle for next time through the loop:
angle = angle + angleStep;

// reverse the direction of the moving at the ends of the angle:
if (angle <= minAngle || angle >= maxAngle) {
  angleStep = -angleStep;
   buttonPushed = 0;
}
myservo1.write(angle); // move the servo to desired angle
  Serial.print("Moved to: ");
  Serial.print(angle);   // print the angle
  Serial.println(" degree");    

delay(100); // waits for the servo to get there
}

myservo2.write(angle); // move the servo to desired angle
Serial.print("Moved to: ");
Serial.print(angle); // print the angle
Serial.println(" degree");
delay(100); // waits for the servo to get there
}

You probably want to change the angle when the button becomes pressed (e.g when it changes from not pressed to pressed) ,not while it is pressed.

Take a look at the state change detection example sketch in the IDE.

Please remember to use code tags when posting code

1 Like

I mean I want to control 2 servos with one button. The original sketch wasn't allow me to control both, but only one. I want to make sure that both the servos will have the same direction and angle

Why not simply write the same "angle" to two servos?

Buongiorno,

prima di tutto ti segnalo che, nella sezione in lingua Inglese, si può scrivere SOLO in Inglese ... quindi, per favore, la prossima volta presta più attenzione in quale sezione metti i tuoi post; questa volta esso è stato spostato, da un moderatore della sezione di lingua Inglese, nella sezione di lingua Italiana ... la prossima volta potrebbe venire direttamente eliminato, dopo di che ...

... essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il succitato REGOLAMENTO ...

... infine, in conformità al suddetto regolamento, punto 7, cortesemente edita il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita :pencil2: che si trova in basso del tuo post), seleziona la parte di codice e premi l'icona </> nella barra degli strumenti per contrassegnarla come codice.

Inoltre, così com'è, non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac, sempre all'interno del IDE).

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread e sistemato il codice come da regolamento, nel rispetto del citato regolamento nessuno ti risponderà (eventuali ulteriori risposte verrebbero cancellate), quindi ti consiglio di fare il tutto al più presto. :wink:

Ok, mi scusi per l'inconveniente, devo ancora capire come funziona tutto. Posso finire di chiedere domande o devo obbligatoriamente abbandonare e riformulare la domanda nel forum Italiano?

Come ti ho scritto ...

... quindi sei già nella giusta sezione Italiana, e, per il futuro, la "radice" della sezione Italiana è QUESTA.

Quindi, cortesemente fai quanto ti ho indicato e poi prosegui pure qui la discussione (in Italiano).

Guglielmo

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.