Tinkercad Servo control buttons è il tutorial dedicato alla serie tinkercad che riparte dalle basi della programmazione arduino per realizzare tutti i tuoi progetti.
Nel precedente tutorial “servo control” hai letto e imparato come controllare un servo usando una semplice libreria già fornita con l’IDE arduino: la Servo.h
Nel primo articolo dedicato ai pulsanti hai visto come leggere un segnale digitale proveniente da un pulsante.
In questo tutorial unirai i concetti appresi in entrambi al fine di realizzare un sistema di controllo del servo motore basato su tre pulsanti ( in inglese buttons ).
Il circuito Tinkercad Servo control buttons
Per realizzare tutto il tutorial userai gli strumenti di disegno e simulazione di tinkercad come già fatto nei precedenti articoli dedicati a questa serie.
Iniziamo dalla realizzazione del circuito per la quale puoi seguire il diagramma seguente:
che vedrai anche nel vido in fondo a questo articolo.
Nota che ciascun bottone è connesso ad un pin digitale di arduino e che il servo è collegato al pin PWM 3 con cui puoi controllare facilmente il suo movimento.
Ciascun pulsante è connesso, inoltre ad una resistenza da 10Kohm verso il pin negativo ( Gnd ) connessa in PULL DOWN.
In questa configurazione il valore ricevuto sui pin digitali arduino 4,5 e 6 sarà normalmente 0 passando dalla resistenza ed alla pressione il valore passerà a 1.
Lo sketch del tinkercad servo control buttons
lo sketch del tinkercad servo control buttons è presente sia nel progetto tinkercad condiviso e pubblico.
#include <Servo.h> #define pinServo 3 #define pinButt1 4 #define pinButt2 5 #define pinButt3 6 Servo myservo; void setup() { myservo.attach(pinServo); pinMode( pinButt1,INPUT ); pinMode( pinButt2,INPUT ); pinMode( pinButt3,INPUT ); } void loop() { if ( digitalRead(pinButt1) == 1 ) myservo.write(0); if ( digitalRead(pinButt2) == 1 ) myservo.write(90); if ( digitalRead(pinButt3) == 1 ) myservo.write(180); delay(15); }
la prima linea include la libreria Servo.h che ti serve per controllare il servo motore connesso al pin 3 ( Pwm ) di arduino;
linee 03-06: imposta le define relative ai pin a cui è connesso il servomotore ed i tre pulsanti, rispettivamente
- button1 connesso al pin 4
- button2 connesso al pin 5
- button3 connesso al pin 6
linea 08: definisci l’istanza myservo che userai per collegarti ed impartire comandi al servo;
linea 11: usa il metodo attach per indicare allo sketch quale pin utilizzare per la connessione al servo;
linee 13.15: imposta ciascun pin a cui è connesso un pulsante come INPUT per il tuo sketch ed Arduino;
linea 19: usando l’istruzione condizionale if in cui valuti se il valore digitale letto sul pin 4 ( pinButt1 ) passa da 0 a 1 ed in tal caso esegue il comando myservo.write(0) passandogli come angolo a 0;
linee 20-21: esegui le stesse operazioni per i pin 5 e 6 con angolo 90 e 180;
linea 22: attendi un tempo di 15 millisecondi tra un loop ed il successivo per consentire al servo di raggiungere la posizione desiderata.
Il video Tinkercad Servo control buttons
Il video in cui puoi seguire tutto il processo di creazione del circuito tinkercad servo control buttons dalla costruzione alla simulazione:
Puoi provare ad aggiungere altri pulsanti ed utilizzarli per eseguire spostamenti da 30,45 e 60 gradi o loro multipli.