Questo tutorial è parte di: Servomotori
Tutti i video correlati ai servomotori sono elencati qui. I link ad altri video si trovano sotto questo articolo.
Controllo del Motore Servo Arduino Utilizzando un Potenziometro
In questo tutorial, esploreremo come controllare un servomotore utilizzando un potenziometro con un Arduino. L'obiettivo è creare un circuito semplice in cui la posizione del servomotore viene regolata in base alla rotazione del potenziometro. Alla fine di questo progetto, avrai un modello funzionante che varia dolcemente l'angolo del servomotore da 0 a 180 gradi mentre giri il potenziometro. Questo è un ottimo modo per comprendere le basi dell'input analogico e del controllo del servomotore in Arduino.
Per raggiungere questo obiettivo, utilizzeremo una scheda Arduino, un servomotore e un potenziometro. Il potenziometro funge da resistore variabile, fornendo un ingresso analogico all'Arduino, che poi determinerà la posizione del servomotore di conseguenza. Questo progetto è non solo divertente ma anche educativo, poiché dimostra concetti chiave nell'elettronica e nella programmazione. Per una spiegazione più approfondita, assicurati di controllare il video (nel video a 00:00).
Hardware Spiegato
In questo progetto, i componenti principali sono la scheda Arduino, il servomotore e il potenziometro. L'Arduino è il cervello dell'operazione, che elabora gli input e controlla gli output. Il servomotore è ciò che si muoverà fisicamente in base ai comandi ricevuti dall'Arduino. Il potenziometro può essere da 1k ohm a 1M ohm e consente agli utenti di fornire un input variabile che si traduce in movimento del servomotore.
Il servomotore funziona ricevendo un segnale PWM (Modulazione di Larghezza di Impulso) che indica la posizione desiderata. Il potenziometro, quando viene ruotato, cambia la sua resistenza, che viene letta dall'Arduino come una tensione analogica. Il servomotore opera a 5V. Non funziona a 3.3V. Questa tensione viene quindi mappata all'intervallo di movimento del servomotore, consentendo un movimento fluido da 0 gradi a 180 gradi.
Dettagli della scheda tecnica per il servomotore SG90
| Produttore | Parallasse |
|---|---|
| Numero di parte | SG90 |
| Tensione di logica/IO | 5 V |
| Tensione di alimentazione | 4,8-6 V |
| Corrente di uscita (per canale) | ~500 mA |
| Corrente di picco (per canale) | 1 A |
| Linee guida sulla frequenza PWM | 50 Hz |
| Soglie logiche di ingresso | 0,5 V (basso), 2,5 V (alto) |
| Caduta di tensione / RDS(on)/ saturazione | 0,5 V a 500 mA |
| Limiti termici | 0°C a 60°C |
| Pacchetto | Servo standard da 9g |
| Note / varianti | Comunemente usato nelle applicazioni RC |
- Assicurati che il servo non superi il suo valore massimo di corrente.
- Utilizzare un dissipatore di calore se il servomotore opera continuamente a carichi elevati.
- Collegare il potenziometro a un pin analogico per letture accurate.
- Fai attenzione al timing del segnale PWM per il controllo del servo.
- Controlla il campo di movimento del servocomando per evitare ostacoli fisici.
Istruzioni di cablaggio


Per questa configurazione, dovrai collegare i componenti come segue:
Collega il pin centrale del potenziometro (wiper) al pin analogico dell'Arduino.A0. Gli altri due pin del potenziometro dovrebbero essere collegati a5VeGNDsull'Arduino. Per il servomotore, collega il filo rosso a5V, il filo nero aGNDe il filo giallo o bianco al pin digitale9sull'Arduino. Questa disposizione consente al potenziometro di fornire un input analogico all'Arduino, che controllerà la posizione del servomotore in base a quell'input.
Assicurati di verificare tutte le connessioni e di garantire che il servo non sia ostruito nel suo campo di movimento. Se utilizzi un modello di Arduino diverso, conferma che le assegnazioni dei pin per l'ingresso analogico e l'uscita del servo siano compatibili.
Esempi di codice e guida passo passo
Di seguito è riportato un estratto del codice che inizializza il servo e legge il valore del potenziometro:
#include
Servo myservo; // create servo object to control a servo
int pos = 0; // variable to store the servo position
void setup() {
myservo.attach(9); // attaches the servo on pin 9 to the servo object
}
In questo codice, includiamo la libreria Servo e creiamo un oggetto servo chiamatomyservoIl servocomando è collegato al pin9, che ci consente di controllarlo utilizzando questo pin.
void loop() {
int sensorValue = analogRead(A0); // read the potentiometer
pos = map(sensorValue, 0, 1023, 0, 180); // map to servo position
myservo.write(pos); // move servo to position
delay(15); // waits 15ms for the servo to reach the position
}
Nella funzione loop, leggiamo il valore del potenziometro dal pinA0e mappalo dal suo intervallo (0-1023) all'intervallo del servo (0-180 gradi). Ilmyservo.write(pos)Il comando sposta quindi il servo nella posizione desiderata in base alla rotazione del potenziometro.
Dimostrazione / Cosa Aspettarsi
Quando esegui questo programma, dovresti vedere il servomotore muoversi dolcemente da 0 a 180 gradi mentre giri il potenziometro. Se il servomotore non si muove come previsto, controlla il cablaggio e assicurati che il potenziometro funzioni correttamente. Inoltre, assicurati che l'Arduino sia alimentato correttamente e che il codice sia caricato senza errori. Puoi aspettarti di vedere il servomotore riflettere la posizione del potenziometro in tempo reale (nel video alle 02:00).
Timestamp video
- 00:00- Introduzione al progetto
- 01:30- Spiegazione della configurazione hardware
- 03:45- Istruzioni per il cablaggio
- 05:00- Revisione del codice
- 07:30- Dimostrazione del progetto completato
Questo tutorial è parte di: Servomotori
- Controllare un servomotore con pulsanti usando Arduino
- Control a Servo Motor with a Push Button: Move Servo and Return SPB-1
- Control a Servo Motor with a Push Button: Move Servo in One Direction SPB-2
- Controlling a Servo Motor with a Push Button: Move Servo While Button Is Pressed (SPB-3)
- Controllare un servomotore con un potenziometro usando Arduino
- Controllare un servomotore con un potenziometro e un LCD1602 usando Arduino
- Controllare i servomotori utilizzando un telecomando a infrarossi con Arduino
- Controllare la posizione del servo con gesti della mano per Arduino
- Controlling Two or More Servos with Potentiometers Using an Arduino
- How to Control a 360° Servo with Three Push-Button Switches
- How to Use Continuous 360° Servo with Arduino
- Codice Arduino e video per il controller per servomotori PCA9685 a 16 canali e 12 bit V1
- Build an Arduino Servo Toggle Switch with a Push Button
Risorse e riferimenti
Nessuna risorsa ancora.
File📁
Nessun file disponibile.