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.