Arduino fare ruotare a 360 gradi un servo comando da tasto

Share

Ecco un esempio di sketch Arduino per far ruotare un servo a 360 gradi in risposta a un comando di un pulsante:

#include <Servo.h>

Servo myservo;
int pos = 0;
int buttonState = 0;
int buttonPin = 2;

void setup() {
  myservo.attach(9);  // Collega il servo al pin 9
  pinMode(buttonPin, INPUT);
}

void loop() {
  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {
    for (pos = 0; pos <= 360; pos += 1) {  // ruota il servo da 0 a 360 gradi
      myservo.write(pos);
      delay(15);
    }
  }
}

In questo codice, abbiamo definito un oggetto ‘Servo‘ e lo abbiamo chiamato ‘myservo‘. Abbiamo anche definito un intero ‘pos‘ per tenere traccia della posizione del servo e un intero ‘buttonState‘ per tenere traccia dello stato del pulsante.

Nella funzione ‘setup()‘, abbiamo collegato il servo al pin 9 e abbiamo definito il pin del pulsante come input.

Nella funzione ‘loop()‘, leggiamo lo stato del pulsante e, se è premuto (ossia se il valore letto dal pin del pulsante è ‘HIGH( )’, ruotiamo il servo da 0 a 360 gradi con un ciclo ‘for‘. All’interno del ciclo, usiamo il metodo ‘write()‘ dell’oggetto ‘myservo‘ per impostare la posizione del servo, quindi aspettiamo un breve periodo di tempo con la funzione ‘delay()‘ per consentire al servo di raggiungere la nuova posizione. Il valore di ‘delay()‘ può essere regolato a seconda della velocità desiderata del movimento del servo.

Nota che questo codice non gestisce la pressione prolungata del pulsante o la possibilità di ruotare il servo in entrambe le direzioni. Queste funzionalità possono essere aggiunte con una maggiore complessità del codice.