Stepper motor con Arduino

pistone

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/2Ah o 12V/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

 

The following two tabs change content below.