Pilotare Modulo TB6560 con arduino

Salve a tutti,

da alcuni anni ho un modulo per CNC made in Italy a 3 assi basato sul chip TB6560.

Ecco il link del prodotto in italiano e della configurazione:
Link al PDF

Il circuito funziona perfettamente con il software Mach3 pilotato dalla porta parallela.

Il mio obbiettivo e' semplicemente far girare un solo motore pilotandolo da arduino.

Nel PDF che lo schema della porta parallela dove dice che il pin 2 e 3 sono dello step e della direzione.

Ho provato il codice usato da un altra guida ma il motore non gira e non viene per niente alimentato.

E' giusto l approccio di usare comunque la porta parallela?

Ecco la guida con i collegamenti trovati:

Grazie in anticipo.

Tony

Hai dato i segnali di enable corretti ?

Hai collegato la massa?

il pin 24 della parallela lho messo a massa.
Il pin 1 della parallela (dove dalla guida in italiano dice che abilita gli assi x,y,z) l'ho messo a 5v dell arduino.

Gia cosi mi aspetto che il motore sia "fermo" ma alimentato e invece no.

Poi al pin 2 e 3 della parallela che sono step e dir gli ho messi sull uscita 8 e 9 di arduino come da esempio dal sito americano.

Cosa intendi per segnali di enable corretti?

Il tuo driver avra' probabilmente direzione, clock ed enable per gli assi ... se l'enable non e' pilotato correttamente (se metterlo ad 1 o a 0 dipende dal chip e dal manuale del driver), il driver stesso e' disabilitato e quindi anche i motori sono non alimentati ...

nel codice di esempio l'enable non viene usato, ma in ogni caso collegandolo al positivo o al negativo il motore si deve bloccare, se non accede controlla i collegamenti del motore o l'alimentazione del motore e anche la scheda a quanto vedo va alimentata da una presa usb da dove prende i 5V.

Grazie per le risposte ragazzi.

Non credo sia problema di collegamento del motore perche con mach3 funzionava quindi i cavi sono messi nel modo giusto e anche se fosse ho provato a controllare i voltaggi dei 4 fili del motore e non accade nulla.

Vedro di farvi una foto del collegamento questa sera e anche provare a mettere l enable in massa invece che sui 5 volt.

Per la porta USB si, il produttore dice che deve essere sempre alimentata questa porta usb, e cosi e'.
Nella foto di questa sera vi mostrero tutto

Niente da fare ragazzi, ho provato a mettere il cavetto grigio che sta al pin 1 della porta parallela sia sui 5v di arduino e sia sulla massa di arduino.
Non da segni di risposta il motore. Anche controllando I voltaggio dagli estremi dell uscita del motore non manda nulla.
Ecco le foto del mio test:

Imgur

Imgur

Qualche suggerimento o test che potrei fare?

sulla scheda c'è il segnale di Estop se è attivo, la scheda lo interpreta come se l'interruttore di emergenza è pigiato e toglie tensione ai motori.
su mach3 nelle impostazioni c'è il modo di emularlo anche se non installato.
guardando la scheda 3 assi che hai postato è sulla morsettiera immediatamente sopra i due relè .
è il segnale Pin15 cerchiato che va al morsetto n°1
controlla anche quello.

affinchè i motori vadano in "tiro" ti servono solo il segnale di enable (pin1 parallela) e l'Estop non attivo
e naturalmente i 24 volt ed i 5v della logica che prelevi dalla usb.

ciao

Fantastico hai ragione!

Ho alimentato il pin 13 e io motore ha iniziato a inchiodarsi!

Ora rimane solo un altro problema, non sta girando :slight_smile:

Credo sia problema di codice ora che dite?

tramite arduino devi mandare degli 1 e degli 0 al pin 2 della parallela, piu'la frequenza degli impulsi è elevata piu' il motore gira.
(attenzione che se la frequenza è troppo elevata, il motore non segue piu' e stalla.)
per cambiare senso di rotazione si fa con il pin 3 della parallela (se c'è un uno gira in un senso, se c'è uno zero gira nell'altro senso. cio detto vale per l'asse X.
stessa cosa per gli altri assi.

purtroppo per come fare con arduino tramite sketch non so aiutarti.
ciao.

TRUCE:
tramite arduino devi mandare degli 1 e degli 0 al pin 2 della parallela, piu'la frequenza degli impulsi è elevata piu' il motore gira.
(attenzione che se la frequenza è troppo elevata, il motore non segue piu' e stalla.)
per cambiare senso di rotazione si fa con il pin 3 della parallela (se c'è un uno gira in un senso, se c'è uno zero gira nell'altro senso. cio detto vale per l'asse X.
stessa cosa per gli altri assi.

purtroppo per come fare con arduino tramite sketch non so aiutarti.
ciao.

Il concetto sembra molto semplice ed eà cosi che ho fatto.

Ora ho alimentato il pin di stop per disabilitare lo stop di emergenza cosi il motore si alimenta/si inchioda. Poi, in un loop di 500 millisecondi (ho provato anche 200 o 1500) mando e levo 5v al pin 2 della parallela ma non succede nulla.

Ecco il codice semplificato:

void setup() {

 pinMode(8, OUTPUT);
 pinMode(7, OUTPUT);
 
 digitalWrite(8, LOW);
 digitalWrite(7, HIGH); //STOP EMERGENZA DISABILITATO

}

void loop() {

 digitalWrite(8, HIGH);
 
 delayMicroseconds(500);
 
 digitalWrite(8, LOW);
 
 delayMicroseconds(500);



}

per quel poco che ne so, non vedo nessun pin di arduino che va al pin 1 della parallela, per l'enable
se enable non è attivo il motore non gira anche se sul pin due della parallela arrivano gli impulsi provenienti dal pin 8 di arduino.
in sostanza manca un filo che da un dig di arduino (saprai tu quale usare e dichiarare come output e high) va al pin 1 della parallela
sbaglio?

ciao.

TRUCE:
per quel poco che ne so, non vedo nessun pin di arduino che va al pin 1 della parallela, per l'enable
se enable non è attivo il motore non gira anche se sul pin due della parallela arrivano gli impulsi provenienti dal pin 8 di arduino.
in sostanza manca un filo che da un dig di arduino (saprai tu quale usare e dichiarare come output e high) va al pin 1 della parallela
sbaglio?

ciao.

hai ragione ho sbagliato a scrivere il commento del codice.

Allora, il pin per lo stop di emergenza lho messo fisso su 5v di arudino, quindi si vedra solo in foto e non nel codice.

Nel codice ho impostato l enable (proveniente dal pin 7 di arduino) su ON cioè 5v e non succede nulla, ho provato anche a metterlo a OFF ma non succede nulla anche in questo caso.

Quindi:
Cavetto rosso è quello dei 5v per lo stop.
Cavetto marrone la massa generale.

Cavetto grigio l enable (provato sia con ON che con OFF)
Cavetto blu mando gli impulsi per far muovere il motore

Ecco la foto della configurazione per render el idea.
Pensi ci sia qualcosa che sto dimenticando?

Configurazione

void setup() {

pinMode(8, OUTPUT);
pinMode(7, OUTPUT);

digitalWrite(8, LOW);
digitalWrite(7, HIGH); //ENEBLE, provato sia con 5v e sia a massa

}

void loop() {

digitalWrite(8, HIGH);

delayMicroseconds(500);

digitalWrite(8, LOW);

delayMicroseconds(500);



}

dalla foto sembra quasi che i pin 1 e 2 della parallela siano in corto tra loro

No non lo sono anche perché ho provato manualmente a appoggiare il cavetto sul pin della parallels proprio per capire se succedeva qualcosa o altro :frowning:

non ho idea di cosa potrebbe essere, a vedere codice e collegamenti sembra tutto ok, ultima ipotesi, non è che hai collegato il motore all'uscita sbagliata e stai pilotando un altro canale?!?

No perché come detto prima ho levato il cavetto del pin 1 e ho provato ad appoggiarlo sugli altri pin fino al numero 6 e non succede nulla.

Provo a rifare il test ma ho provato più volte è davvero strano

Niente, ho provato a cambiare anche i pin di arduino anche se funzionano perche ho testato i volt di uscita.
Non ho proprio idea di quale altro test potrei fare sto impazzendo

magari dico una fesseria, ma sei sicuro che il pin che tu reputi l'uno in realta' non sia il 13 ?
visto che ti connetti dalla parte anteriore del connettore maschio.
devi aprire il guscio e controllare visivamente il retro del connettore e leggere il numero del pin stampigliato.
è piu' facile di quel che si crede sbagliare.

AGGIUNTO : vedi la foto allegata, mancano dei pin, vedi quale è l'uno nel maschio, sembrerebbe all'opposto di dove ti colleghi tu.
presa da internet, sperando che non sia sbagliata.

anche i microsecondi dello sketch, mi sembrano un po' pochi, prova a portarli almeno a 6/800, altrimenti perde passi.
ciao.

25pinnumbers.jpg