Ecco un esempio di codice Arduino per controllare la rotazione di un servo con due tasti:
#include <Servo.h>
Servo myservo;
int pos = 0; // posizione iniziale del servo
int increment = 5; // incremento di rotazione del servo
int servoPin = 9; // pin di segnale del servo
int buttonPin1 = 2; // pin del primo tasto
int buttonPin2 = 3; // pin del secondo tasto
void setup() {
myservo.attach(servoPin); // inizializzazione del servo
pinMode(buttonPin1, INPUT_PULLUP); // inizializzazione del primo tasto
pinMode(buttonPin2, INPUT_PULLUP); // inizializzazione del secondo tasto
}
void loop() {
if (digitalRead(buttonPin1) == LOW) { // se il primo tasto è premuto
pos += increment; // aumenta la posizione del servo
if (pos > 180) { // se la posizione supera il valore massimo
pos = 180; // imposta la posizione massima
}
myservo.write(pos); // muove il servo alla nuova posizione
delay(15); // attesa per la stabilità del servo
}
if (digitalRead(buttonPin2) == LOW) { // se il secondo tasto è premuto
pos -= increment; // diminuisce la posizione del servo
if (pos < 0) { // se la posizione scende sotto il valore minimo
pos = 0; // imposta la posizione minima
}
myservo.write(pos); // muove il servo alla nuova posizione
delay(15); // attesa per la stabilità del servo
}
}
Il codice usa la libreria Servo per controllare il servo collegato al pin 9. I tasti sono collegati ai pin 2 e 3 e il programma controlla il loro stato per incrementare o diminuire la posizione del servo di un valore di 5 gradi alla volta. Inoltre, il programma impedisce al servo di andare oltre la posizione minima di 0 gradi e quella massima di 180 gradi. Il delay di 15 millisecondi è per permettere al servo di raggiungere la nuova posizione prima di effettuare un’ulteriore rotazione.