Tutorial: collega la Motor Shield e pilota i motori

Scopri come collegare la Motor Shield ad Arduino, e far muovere due motori in corrente continua con un semplice sketch.

Arduino + Motor Shield

Un video dice più di mille parole, puoi seguirlo per collegare prima l’alimentazione, poi i due motori ed infine l’Arduino al computer.

Lo sketch fa eseguire ai motori una semplice sequenza, ciascun passaggio dura 5 secondi:

  1. entrambi i motori in una direzione;
  2. entrambi i motori in direzione inversa;
  3. un motore in una direzione e l’altro in direzione opposta;
  4. ogni motore in direzione opposta alla precedente;
  5. sto di tutta la sequenza;

al termine ricomincia dall’inizio.

E’ solo uno sketch di esempio ma puoi facilmente renderti conto del funzionamento della scheda.

Lo sketch

/*
 * Sketch Test Motori Shield FE
 *
 * @author: Alfieri Mauro
 * @see:    https://www.mauroalfieri.it
 *
 * @licenze: Creative common
 */

 int pinDirA=2;
 int pinDirB=8;
 int pinPwmA=3;
 int pinPwmB=9;

 void setup()
 {
   pinMode( pinDirA,OUTPUT );
   pinMode( pinPwmA,OUTPUT );
   pinMode( pinDirB,OUTPUT );
   pinMode( pinPwmB,OUTPUT );
 }

 void loop()
 {
   // Test: rotazione dei motori
   //       stessa direzione, vel
   digitalWrite( pinDirA,HIGH );
   digitalWrite( pinDirB,HIGH );
   //       velocità massima
   analogWrite( pinPwmA,255 );
   analogWrite( pinPwmB,255 );

   delay(5000);

   // Test: rotazione dei motori
   //       direzione inversa
   digitalWrite( pinDirA,LOW );
   digitalWrite( pinDirB,LOW );
   //       velocità massima
   analogWrite( pinPwmA,255 );
   analogWrite( pinPwmB,255 );

   delay(5000);

   // Test: rotazione dei motori
   //       direzione incrociata
   digitalWrite( pinDirA,HIGH );
   digitalWrite( pinDirB,LOW );
   //       velocità massima
   analogWrite( pinPwmA,255 );
   analogWrite( pinPwmB,255 );

   delay(5000);

   // Test: rotazione dei motori
   //       direzione incrociata
   digitalWrite( pinDirA,LOW );
   digitalWrite( pinDirB,HIGH );
   //       velocità massima
   analogWrite( pinPwmA,255 );
   analogWrite( pinPwmB,255 );

   delay(5000);

   // Test: stop dei motori
   //       nessuna direzione
   digitalWrite( pinDirA,HIGH );
   digitalWrite( pinDirB,HIGH );
   //       velocità nulla
   analogWrite( pinPwmA,0 );
   analogWrite( pinPwmB,0 );

   delay(5000);
 }

E’ uno sketch davvero semplice, le cose importanti sono i pin che collegano la shield ad Arduino:

 int pinDirA=2;
 int pinDirB=8;
 int pinPwmA=3;
 int pinPwmB=9;

che puoi cambiare grazie alla posizione dei jumper di selezione, e i comandi utilizzati dallo sketch per impartire il movimento:

digitalWrite( pinDirA,HIGH );
digitalWrite( pinDirB,HIGH );
analogWrite( pinPwmA,255 );
analogWrite( pinPwmB,255 );

il comando digitalWrite() lo usi per impartire la direzione al motore, HIGH per una direzione e LOW pe quella inversa; il comado analogWrite() lo usi per impartire la velocità di rotazione, nell’esempio è sempre impostato a 255 perchè i motori che vi ho collegato sono dotati di riduttore di giri a 12 giri al minuto e se impartisci velocità inferiori quasi non ne percepisci la rotazione.

Se usi motori in CC senza riduttore di velocità ti sarà utile variarne la velocità per controllarli meglio.

I comandi si ripetono in sequenza con un intervallo di 5 secondi.

Il risultato:

Buon diveritmento.

Prima di inserire un commento, per favore, leggi il regolamento

Permanent link to this article: https://www.mauroalfieri.it/elettronica/tutorial-collega-la-motor-shield-e-pilota-i-motori.html

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.