.. note::
Ciao, benvenuto nella community di appassionati di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Esplora più a fondo Raspberry Pi, Arduino ed ESP32 con altri appassionati.
**Perché unirsi a noi?**
- **Supporto esperto**: Risolvi problemi post-vendita e sfide tecniche grazie al supporto della nostra community e del nostro team.
- **Impara e condividi**: Scambia suggerimenti e tutorial per migliorare le tue competenze.
- **Anteprime esclusive**: Ottieni l'accesso anticipato a nuovi annunci di prodotto e anteprime.
- **Sconti speciali**: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
- **Promozioni festive e omaggi**: Partecipa a giveaway e promozioni durante le festività.
👉 Pronto a esplorare e creare con noi? Clicca [|link_sf_facebook|] e unisciti oggi stesso!
.. _ar_servo:
2.12 Servo
============
Panoramica
-------------
In questa lezione imparerai a conoscere il Servo. Il Servo è un tipo di
attuatore che permette di regolare e mantenere la posizione angolare o un
attuatore rotativo che consente un controllo preciso della posizione angolare.
Attualmente, è ampiamente utilizzato in giocattoli telecomandati di fascia
alta, come aeroplani, sottomarini, telerobot e così via.
Componenti necessari
-----------------------
.. image:: img/list_2.12.png
* :ref:`cpn_mega2560`
* :ref:`cpn_wires`
* :ref:`cpn_servo`
Circuito Fritzing
--------------------
In questo esempio, utilizziamo il pin PWM 9 per controllare il Servo,
collegando il cavo arancione del servo al pin PWM 9, il cavo rosso al
5V e il cavo marrone al GND.
.. image:: img/image454.png
Schema elettrico
-------------------
.. image:: img/image455.png
Codice
---------
.. note::
* Puoi aprire direttamente il file ``2.12_servo.ino`` nella cartella ``sunfounder_vincent_kit_for_arduino\code\2.12_servo``.
* Oppure copia questo codice nell'IDE di Arduino.
.. raw:: html
Dopo aver caricato il codice sulla scheda Mega2560, vedrai il braccio del servo ruotare nell'intervallo 0°~180°.
Analisi del codice
----------------------
Utilizzando la libreria Servo.h, puoi controllare facilmente il servo.
.. code-block:: arduino
#include
**Funzioni della libreria:**
.. code-block:: arduino
Servo
Crea un oggetto **Servo** per controllare un servo.
.. code-block:: arduino
uint8_t attach(int pin);
Assegna un pin come driver del servo. Chiama pinMode. Restituisce 0 in caso di errore.
.. code-block:: arduino
void detach();
Libera un pin dal controllo del servo.
.. code-block:: arduino
void write(int value);
Imposta l'angolo del servo in gradi, da 0 a 180.
.. code-block:: arduino
int read();
Restituisce il valore impostato con l'ultima chiamata a write().
.. code-block:: arduino
bool attached();
Restituisce 1 se il servo è attualmente collegato.
Immagine del risultato
--------------------------
.. image:: img/image132.jpeg