Pages: [1]   Go Down
Author Topic: Stepper control via i2c con multiple arduino mega  (Read 504 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21219
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,

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

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6974
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
« Last Edit: April 18, 2013, 10:36:36 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 0
Posts: 21
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 251
Posts: 21219
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 110
Posts: 6974
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Pages: [1]   Go Up
Jump to: