.. 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_stepper_motor: 2.14 Motore Passo-Passo ========================= Panoramica ------------- In questa lezione imparerai a conoscere il motore passo-passo. Componenti necessari ----------------------- .. image:: img/list_2.14.png * :ref:`cpn_mega2560` * :ref:`cpn_breadboard` * :ref:`cpn_wires` * :ref:`cpn_stepper_motor` * :ref:`cpn_power_module` Circuito Fritzing --------------------- Il modulo di alimentazione viene utilizzato per alimentare il motore passo-passo. Collega il GND della scheda Mega 2560 e il GND dell'ULN2003 al catodo della breadboard, e collega il VCC dell'ULN2003 all'uscita 5V del modulo di alimentazione. Il cablaggio tra ULN2003 e Mega2560 è mostrato di seguito: .. image:: img/image149.png Schema elettrico -------------------- .. image:: img/image462.png Codice --------- .. note:: * Puoi aprire direttamente il file ``2.14_stepperMotor.ino`` nella cartella ``sunfounder_vincent_kit_for_arduino\code\2.14_stepperMotor``. * Oppure copia questo codice nell'IDE di Arduino. .. raw:: html Dopo aver caricato il codice sulla scheda Mega2560, potrai osservare il motore passo-passo ruotare di un giro con un intervallo di un secondo, completando ogni giro in 3,75 secondi. Analisi del codice --------------------- Utilizzando la libreria Stepper.h, puoi controllare facilmente il motore passo-passo. .. code-block:: arduino #include **Funzioni della libreria:** .. code-block:: arduino Stepper(steps, pin1, pin2, pin3, pin4) Crea una nuova istanza della classe Stepper per rappresentare un particolare motore passo-passo collegato alla tua scheda Arduino. * ``steps``: il numero di passi necessari per completare una rivoluzione del motore. Se il motore indica il numero di gradi per passo, dividi 360 per quel valore per ottenere il numero di passi (es. 360 / 3,6 = 100 passi). (int) .. note:: Ogni giro completo del motore passo-passo richiede 2048 passi. .. code-block:: arduino setSpeed(rpm) Imposta la velocità del motore in rotazioni per minuto. Questa funzione non fa ruotare il motore, ma definisce la velocità a cui ruoterà quando viene chiamata la funzione step(). * ``rpm``: la velocità di rotazione del motore in rotazioni per minuto - deve essere un numero positivo. (long) .. note:: Il motore passo-passo che utilizziamo qui può ruotare al massimo 17 giri al minuto. .. code-block:: arduino step(steps) Fa ruotare il motore di un numero specifico di passi, a una velocità determinata dall'ultima chiamata a setSpeed(). Questa funzione è bloccante; cioè, aspetta che il motore termini il movimento prima di passare il controllo alla riga successiva del tuo sketch. Ad esempio, se imposti la velocità a 1 RPM e chiami step(2048) su un motore da 2048 passi, questa funzione impiegherà un minuto intero per completare. Per un controllo migliore, mantieni la velocità alta e utilizza pochi passi per ogni chiamata a step(). * ``steps``: il numero di passi per far ruotare il motore - positivo per una direzione, negativo per l'altra. (int) Immagine del risultato ------------------------ .. image:: img/image151.jpeg