Alcune parti di questo sito web non sono ancora disponibili nella tua lingua. Stiamo lavorando per risolvere questo problema e ci scusiamo per eventuali disagi.
Tutoriale ESP32 17/55 - Controllo del Servo Motore utilizzando ESP32 e Potenziometro - Kit di apprendimento IoT ESP32
In questo tutorial, impareremo a controllare un servomotore utilizzando un microcontrollore ESP32 e un potenziometro del kit di apprendimento IoT ESP32 di SunFounder. Alla fine di questo progetto, sarai in grado di regolare l'angolo del servomotore in modo fluido utilizzando il potenziometro, consentendo un controllo preciso. Questo è un ottimo modo per esplorare le capacità dell'ESP32 e come si interfaccia con i motori.
Man mano che approfondiamo i dettagli, tratteremo i componenti hardware necessari, le istruzioni di cablaggio e i codici di esempio per far funzionare tutto. Per una rappresentazione più visiva, assicurati di controllare il video associato a questo tutorial (nel video a 0:30).
Hardware Spiegato
I componenti principali di questo progetto includono il microcontrollore ESP32, un servomotore (SG90) e un potenziometro. L'ESP32 è un potente microcontrollore che offre Wi-Fi e Bluetooth integrati, rendendolo adatto per progetti IoT. È in grado di controllare vari dispositivi, inclusi i motori, con alta precisione.
Il servomotore SG90 è un componente ampiamente utilizzato che può ruotare circa 270 gradi. Funziona con un segnale a modulazione di larghezza d'impulso (PWM), dove l'angolo di rotazione è determinato dalla larghezza dell'impulso inviato. Il potenziometro funge da resistore variabile, consentendo di regolare la tensione inviata all'ESP32, che a sua volta controlla la posizione del servomotore.
Dettagli della scheda dati
Produttore
SG
Numero di parte
SG90
Tensione di logica/ingresso uscita
3,3 V (ESP32)
Tensione di alimentazione
5 V
Corrente di uscita (per canale)
1.2 A
Corrente di picco (per canale)
2,5 A
Linee guida sulla frequenza PWM
50 Hz
Soglie logiche di ingresso
0,2 V (basso), 2,5 V (alto)
Caduta di tensione / RDS(on)/ saturazione
0,5 V
Limiti termici
85 °C max
Pacchetto
Plastica
Note / varianti
Disponibile in diverse tipologie di attrezzatura
Assicurati che il servo sia alimentato con una tensione adeguata (5V).
Collega il ground del servo al ground dell'ESP32 per un riferimento comune.
Utilizza segnali PWM appropriati per controllare la posizione del servo.
Essere consapevoli dei requisiti di corrente del servo; utilizzare un'alimentazione esterna se necessario.
Controlla le assegnazioni dei pin corrette durante il cablaggio per evitare misconfigurazioni.
Istruzioni di cablaggio
ESP32-17-Sevo_motor-wiring
Per collegare il servo motore e il potenziometro all'ESP32, inizia collegando il filo di massa del servo (solitamente nero o marrone) a uno dei pin di massa sull'ESP32. Successivamente, collega il filo di alimentazione (solitamente rosso) del servo al pin 5V sull'ESP32. Infine, collega il filo del segnale (solitamente arancione o bianco) dal servo al pin25sull'ESP32.
Per il potenziometro, collega un pin esterno al pin 3.3V sull'ESP32 e l'altro pin esterno a terra. Il pin centrale del potenziometro deve essere collegato al pin34sull'ESP32. Questa configurazione consente all'ESP32 di leggere l'uscita di tensione variabile dal potenziometro, che verrà utilizzata per controllare la posizione del servomotore.
Esempi di codice e guida passo passo
Il seguente frammento di codice inizializza il servo e imposta i parametri per controllarne il movimento:
#include
Servo myServo;
const int servoPin = 25;
const int minPulseWidth = 500; // 0.5 ms
const int maxPulseWidth = 2500; // 2.5 ms
void setup() {
myServo.attach(servoPin, minPulseWidth, maxPulseWidth);
myServo.setPeriodHertz(50); // Standard 50Hz servo
}
In questo codice, includiamo ilESP32Servolibreria e crea un'istanza del servo con il nomemyServoDefiniamo il numero di pin per il servo e impostiamo le larghezze di impulso minima e massima che corrispondono ai limiti angolari del servo.
ESP32_servo_lib
Successivamente, diamo un'occhiata al ciclo che muove continuamente il servo avanti e indietro:
Questo ciclo cambia gradualmente l'angolo da 0 a 180 gradi e poi di nuovo, usando ilmapfunzione per convertire l'angolo nella corrispondente larghezza di impulso per il servo. Ogni cambiamento è seguito da un breve ritardo per consentire al servo di raggiungere la sua nuova posizione in modo fluido.
Dimostrazione / Cosa Aspettarsi
Una volta che tutto è collegato e il codice è caricato, dovresti vedere il servo motore muoversi dolcemente da 0 a 180 gradi e ritorno. Se regoli il potenziometro, il servo dovrebbe riflettere la nuova posizione in base alla tensione fornita dal potenziometro. Fai attenzione alla polarità inversa durante il cablaggio, poiché potrebbe danneggiare i tuoi componenti (nel video alle 3:45).
Timestamp video
00:00 Inizio
1:56 Cos'è un servomotore
5:00 Pagina dei documenti
6:33 Spiegazione del cablaggio per servo
7:45 Selezionare la porta COMP per ESP32 in Arduino IDE
9:27 Codice Arduino spiegato
14:31 Dimostrazione del controllo servo utilizzando ESP32
16:04 Alimentazione di un servo diversa da 5V
18:47 Controllo del servo senza il ciclo
20:15 Controllo del servo con potenziometro
21:37 Spiegazione del codice Arduino per servo con potenziometro