Nota
Ciao, benvenuto nella community SunFounder dedicata agli appassionati di Raspberry Pi, Arduino ed ESP32 su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
Perché unirsi?
Supporto Esperto: Risolvi problemi post-vendita e difficoltà tecniche grazie al supporto del nostro team e della community.
Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ricevi in anteprima gli annunci dei nuovi prodotti e uno sguardo dietro le quinte.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a promozioni festive e concorsi a premi.
👉 Pronto a esplorare e creare con noi? Clicca su [qui] e unisciti subito!
Lezione 33: Motore Servo (SG90)
In questa lezione imparerai a controllare un motore servo con Arduino, facendolo ruotare da 0 a 180 gradi e viceversa. Tratteremo l’uso della libreria Servo, la definizione e l’utilizzo di variabili per il controllo del servo, oltre all’impiego del ciclo for per un movimento graduale. Questo progetto è perfetto per i principianti, offrendo un’esperienza pratica nel controllo di motori e nei concetti base della programmazione su Arduino.
Componenti Necessari
Per questo progetto sono necessari i seguenti componenti.
È sicuramente comodo acquistare un kit completo. Ecco il link:
Nome |
COMPONENTI INCLUSI |
LINK |
---|---|---|
Universal Maker Sensor Kit |
94 |
Puoi anche acquistare i singoli componenti tramite i link seguenti:
Descrizione del Componente |
Link per l’acquisto |
---|---|
Arduino UNO R3 o R4 |
|
Collegamenti

Codice
Analisi del Codice
Qui viene inclusa la libreria
Servo
, che permette di controllare facilmente il motore servo. Si definiscono anche il pin collegato al servo e l’angolo iniziale.#include <Servo.h> const int servoPin = 9; // Definisce il pin del servo int angle = 0; // Inizializza l'angolo a 0 gradi Servo servo; // Crea un oggetto servo
La funzione
setup()
viene eseguita una sola volta all’avvio. Il servo viene collegato al pin definito tramiteattach()
.void setup() { servo.attach(servoPin); }
Il ciclo principale contiene due cicli
for
. Il primo incrementa l’angolo da 0 a 180 gradi, il secondo lo decrementa da 180 a 0 gradi. Il comandoservo.write(angle)
imposta il servo all’angolo specificato. Ildelay(15)
impone una pausa di 15 millisecondi tra ogni movimento, regolando così la velocità di rotazione.void loop() { // scansione da 0 a 180 gradi for (angle = 0; angle < 180; angle++) { servo.write(angle); delay(15); } // ora scansione inversa da 180 a 0 gradi for (angle = 180; angle > 0; angle--) { servo.write(angle); delay(15); } }