Pilotiamo dei grossi motori con Arduino!

Quando il gioco si fa duro.. Arduino comincia a giocare!
oggi vediamo come funziona questo bellissimo modulo per Arduino,
si chiama Powerlolu e permette di controllare motori stepper fino a 10 Ampere!



Ecco allora che vi mostro questa promettente scheda:


Nota dolente il prezzo, infatti potete trovarla già assemblata intorno ai 50 euro, ad esempio qui,
ma il bello è che è open source e quindi potete costruirvela da soli e gli schemi sono disponibili online qui!

Passo alla prova pratica, realizzate i collegamenti in questo modo:

Scusate se questa volta lo schema è un po' meno chiaro del solito ma ho dovuto modificarlo con photoshop!
se quualcosa non dovesse essere chiaro lasciatemi un commento/insulto :)

Fatto il montaggio elettrico caricate questo sketch di prova, farà semplicemente ruotare il vostro motore prima in un verso e poi nell'altro.

  1. int Dir1=2;
  2. int Step1=3;
  3. int Enable1=4;
  4. int tempomotore=20;
  5. void setup()
  6. {
  7.   pinMode (Enable1, OUTPUT);
  8.   pinMode (Step1, OUTPUT);
  9.   pinMode (Dir1, OUTPUT);
  10. }
  11. void loop()
  12. {
  13.   for (long i=0; i<200000; i++)
  14.   //200000 è il numero di passi che farà il motore
  15.   {
  16.     digitalWrite (Enable1, LOW);
  17.     //con il pin "enable" a livello basso il driver si "accende"
  18.     digitalWrite (Dir1, LOW);
  19.     /* con il pin "dir" a livello basso il motore gira in un senso,
  20.     con il pin  a livello alto gira nell'altro. */
  21.     digitalWrite (Step1, HIGH);
  22.     delayMicroseconds (tempomotore);
  23.     digitalWrite (Step1, LOW);
  24.     delayMicroseconds (tempomotore);
  25.     /* ogni volta che il pin "step" passa da livello basso ad alto,
  26.     il motore compie un passo. */
  27.   }
  28.   digitalWrite (Enable1, HIGH);
  29.   //con il pin enable a livello alto il driver si "spegne"
  30.   delay(1000);
  31.   for (long i=0; i<200000; i++)
  32.   {
  33.     digitalWrite (Enable1, LOW);
  34.     digitalWrite (Dir1, HIGH);
  35.     digitalWrite (Step1, HIGH);
  36.     delayMicroseconds (tempomotore);
  37.     digitalWrite (Step1, LOW);
  38.     delayMicroseconds (tempomotore);
  39.     /* questo ciclo serve a far girare il motore nel senso opposto,
  40.     infatti l'unica cosa che cambia rispetto a sopra è il livello del
  41.     pin "dir" */
  42.   }
  43.   digitalWrite (Enable1, HIGH);
  44.   delay(1000);
  45. }

Ciao a tutti e al prossimo tutorial!

Segui Daniele Alberti su Google+ e su Twitter!

3 commenti:

  1. salve
    sono rega e ti faccio i miei piu sinceri congratulazioni-
    volevo chiederti: dove posso trovare questi motori da 10A.
    regaanvi@gmail.com
    grazie

    RispondiElimina
  2. salve e grazie per la dritta sul main menu nello sketch, sei stato veramente tempestivo e ho apprezzato molto il tuo impegno fattivo. mi incuriosisce questo motore potente e la scheda poichè vorrei realizzare una macchina cnc; logicamente scheda e motore vanno moltiplicati per 3, quanti gli assi per la tridimensionalità se si vuol costruire una macchina potente. ho acquistato 3 kit piccoli comprensivi di motore e scheda driver per arduino, ancora da aprire, giusto per fare un piccolo test ma presumo, e qui la domanda sorge spontanea, che ci sia amcora qualche modulo per interfacciare il tutto ( i tre moduli per asse) con il pc (via usb probabilmente) e un programma cad che dovrebbe vedere tutto questo ambaradam di sistema come una stampante... vero? grazie e saluti

    RispondiElimina
    Risposte
    1. La scheda per interfacciarsi con il PC è la stessa Arduino (tramite cavo USB), solo che serve uno sketch da caricare all'interno che ti permetta di gestire i motori (la stessa cosa avviene nelle stampanti 3d)
      Solo che io non ho questo sketch, dovresti fare una ricerca per vedere se qualcuno sta lavorando ad un progetto simile. Ciao!

      Elimina

Lascia un commento qui sotto, ti risponderò il prima possibile!

Related Posts Plugin for WordPress, Blogger...