Go Down

Topic: Stepper control via i2c con multiple arduino mega (Read 637 times) previous topic - next topic

Radicator

Salve a tutti,

per un progetto ho la necessità di controllare un gran numero di motori passo passo (stepper) attualmente sto usando un arduino mega e, visto il gran numero di pin disponibili, per ora sono riuscito a comandare 16 motori poichè ognuno necessita di 4 pin. Per controllare più di 16 motori sarebbe possibile sfruttare un bus i2c per poter utilizzare un arduino come master che invii un semplice carattere a multipli arduino mega che a loro volta leggano il carattere associato ad una funzione ed eseguano una porzione di codice in cui indico i movimenti? Le funzioni che comandano i movimenti le ho già scritte e testate, adesso il mio problema è controllare un numero maggiore di stepper, sarebbe fattibile o ci sarebbero modi migliori per poter controllare questi motori? ( es ethernet via ip )

Grazie in anticipo dell'interesse a chi risponderà. Riccardo

uwefed

Se usi dei driver con un A3967 o A4988 Ti servono 2 pin per ogni motore.
Ciao Uwe

Radicator

Ciao,

il problema non cambia poichè comunque non avrei uscite a sufficienza...ci sarebbe un altro modo? Riccardo

PaoloP

#3
Apr 18, 2013, 05:35 pm Last Edit: Apr 18, 2013, 05:36 pm by PaoloP Reason: 1
Fattibile è fattibile. Dipende però quanto sei disposto a sbatterci la testa.
Io credo che il problema principale in questa situazione sia il fatto che l'implementazione della I2C è bloccante: Se cade la comunicazione con un Arduino o hai problemi sul bus ti si bloccano tutto, master compreso.
Potresti usare le seriali: rinunci a 8 pin sul master (2 motori) ma poi collegare alle 4 seriali 4 altre Mega, avendo un sistema completo con 5 Mega, 1 Master e 4 Slave.
Tra l'altro l'I2C è limitata dalla distanza massima sui cavi che per la seriale è più flessibile.

Radicator

Avevo scelto il bus i2c perchè vedendo alcuni esempi di codice mi sembrava il più facile da implementare, ed io utilizzo per la maggior parte chiamate a funzioni bloccanti quindi avrebbe fatto al caso mio, inoltre la distanza massima fra ogni arduino è nell'ordine di centimetri, una ventina tenendosi larghi... a questo punto mi conviene prendere 3 arduino mega per cominciare e vedere di implementare il codice vedendo se tutto funziona... c'è qualche topic già aperto di recente che tratta una problematica simile? nel caso se ne fosse già parlato... Grazie. Riccardo

uwefed


Ciao,

il problema non cambia poichè comunque non avrei uscite a sufficienza...ci sarebbe un altro modo? Riccardo

L' arduino Mega ne ha 54 uscite. a 2 per motore sono 27 motori.

PaoloP

Per provare ti bastano 2 Arduino: un master e uno slave.
Si, ci sono altri topic che parlano del collegamento i2c tra 2 Arduino.

Go Up