Categorie

Stepper motor con Arduino 16/05/2017

Questo è un semplice esempio che racchiude il connubio tra la stampa 3D ed il mondo della programmazione open source (in questo caso con Arduino) 

Per prima cosa elenchiamo il materiale utilizzato per questo semplice progetto:

ARDUINO UNO REV3 ARDUINO UNO REV3

Cavo USB A - B CAVO USB A - B

Dual Bipolar Stepper Motor Shield for Arduino (A4988) DUAL BIPOLAR STEPPER MOTOR SHIELD FOR ARDUINO (A4988)

(per quanto riguarda i controlli motore come shield e moduli ne esistono una gran varietà che possono essere utilizzati in alternativa, l'importante è avere le librerie giuste in base al prodotto)

NEMA17 Stepper motor w/ connector 1.8 degrees step / 5.0 kg/cm / NEMA17 STEPPER MOTOR W/ CONNECTOR 1.8 DEGREES STEP / 5.0 KG/CM 

(ovviamente anche per quanto riguardo gli stepper motor bipolari ne esiste una vastissima gamma, a 2, 4 fasi... di qualsiasi dimensione e potenza)

Robot Jumper Wire Kit ROBOT JUMPER WIRE KIT (qualche jumper per i collegamenti)

Il nostro pistoncino stampato, potete stamparlo a casa, se avete una stampante 3D o usufruire di un servizio stampa 3D ( Questo è il link per i file STL per la stampa del pistone)


Avremo anche bisogno di un alimentatore esterno per alimentare la nostra shield ( all'incirca da 9V/2Ah12V/2Ah ) ovviamente dipende dalla scheda di controllo e l'assorbimento del o dei motori. Io ho usato un alimentatore da banco, ma anche uno tradizionale va bene ( ovviamente in in questo caso avrete bisogno di un adattatore simile a questo per evitare di tagliare il capo e rovinarlo )

Di seguito vediamo lo schema per i collegamenti


Adesso apriamo l'IDE di Arduino e copiamo il codice di esempio

int M1dirpin = 4;

int M1steppin = 5;

int M2dirpin = 7;

int M2steppin = 6;

void setup()

{

pinMode(M1dirpin,OUTPUT);

pinMode(M1steppin,OUTPUT);

pinMode(M2dirpin,OUTPUT);

pinMode(M2steppin,OUTPUT);

}

void loop()

{

int j;

delayMicroseconds(2);

digitalWrite(M1dirpin,LOW);

digitalWrite(M2dirpin,LOW);

for(j=0;j<=5000;j++){

digitalWrite(M1steppin,LOW);

digitalWrite(M2steppin,LOW);

delayMicroseconds(2);

digitalWrite(M1steppin,HIGH);

digitalWrite(M2steppin,HIGH);

delay(1);

}

}


Ovviamente questo è il codice per il controllo di due stepper motor fornito dalla casa produttrice della shield, quindi possiamo lasciarlo così com'è per la nostra prova o modificarlo cancellando la parte del secondo motore, oppure utilizzare 2 motori e 2 pistoni o aggiungerci altre  funzioni. Se volete maggiori dettagli su questa shield in particolare eccovi il wiki link.

Questo è il video del risultato ottenuto

pistone-video1.mp4

Roma

00018 - Roma (ROMA) Lazio
via Montauro, 33
Distanza dal centro: 14,26 Km
Telefono: 0645595201
Partita IVA: 12960231004
Responsabile trattamento dati: Armando Paliani