Arduino
Help: Motorizzazione asse x fresa


FinePagina

RAUNARDE
GigaWatt


Utente
Msg:1225

Stato:



Inviato il: 26/04/2021 12:20:37

Ciao a tutti, sono alle prime armi con arduino e non riesco a far funzionare questo sketch.
Devo motorizzare l'asse X di una fresa con un motore passo passo Nema34 (ho esagerato, bastava un nema 23....)

Come comandi ho un joystick con pulsanti NO che mi deve effettuare il movimento DX o SX
ho 2 microswitch NC che mi fanno da finecorsa e che quando l'asse x mi arriva al limite apre il contatto
ho 1 pulsante per avanzamento veloce
ho un potenziometro per regolare la velocità normale ed uno per avanzamento veloce.
Infine ho 3 uscite per un driver DM556 e 2 uscite per dei led di stato che "dovrebbero accendersi" quando vado a destra o sx.

il programma l'ho scritto ma non mi funziona, non capisco dove stia sbagliando, ho provato a fare dei cicli richiamati dal Void loop ma senza esito infatti li ho esclusi racchiudendoli tra /*----*/ e li ho poi copiati direttamente nel void loop, ma anche in qusto modo non mi va.


Tutti i comandi li ho collegati verso massa impostando la porta arduino come INPUT_PULLUP così normalmente è alta come valore (HIGH = 5V) e quando chiudo un contatto va a 0 (LOW) tranne i finecorsa che essendo sempre NC sono a = finchè uno non viene azionato e mi manda la porta in HIGH
Sapreste dirmi cosa sto sbagliando?
Grazie mille

-TOP CODE-

-BOTTOM CODE-


Scarica allegato

Prova_motore_asse_x.ino ( Numero download: 100 )



---------------



 

Maufedro

Avatar
MegaWatt


Utente
Msg:314

Stato:



Inviato il: 26/04/2021 13:38:02

A prima vista sembra che manchi la dichiarazione delle librerie



---------------
Per ogni problema esistono più soluzioni. ma solo una è la migliore





 

RAUNARDE
GigaWatt


Utente
Msg:1225

Stato:



Inviato il: 26/04/2021 14:46:36

Ciao Maufedro, grazie per la risposta, ma non capisco a quali librerie tu stia facendo riferimento, teoricamente non ho usato nulla che necessita di libreria, o magari mi sbaglio ed ecco l'errore.



---------------



 

RAUNARDE
GigaWatt


Utente
Msg:1225

Stato:



Inviato il: 29/04/2021 10:08:59

Allora situazione in evoluzione, prima da newby di arduino non avevo inserito la lettura dello stato dei pin, sistmato questo mi funziona quasi tutto, non riesco a variare i giri e ad usare l'avanzamento veloce.
probabilmente sbaglio qualcosa con il void start()
provato da solo funziona, ma inserito nello sketch non va.


-TOP CODE-

-BOTTOM CODE-



---------------



 

NextStep
milliWatt


Utente
Msg:2

Stato:



Inviato il: 16/06/2021 20:12:30

CITAZIONE (RAUNARDE, 29/04/2021 10:08:59 ) Discussione.php?216493&1#MSG3

Allora situazione in evoluzione, prima da newby di arduino non avevo inserito la lettura dello stato dei pin, sistmato questo mi funziona quasi tutto, non riesco a variare i giri e ad usare l'avanzamento veloce.
probabilmente sbaglio qualcosa con il void start()
provato da solo funziona, ma inserito nello sketch non va.


Hai provato a vedere con un oscilloscopio l'andamento del segnale PUL quando vai in rapido?

Come hai collegato i pin di uscita di Arduino agli ingessi del driver DM556, in modo diretto (figura 2 del manuale) oppure hai messo in mezzo un buffer?

Prova ad aggiungere un ulteriore ritardo delayMicroseconds(20); dopo che mandi basso PUL, un esempio:

-TOP CODE-

-BOTTOM CODE-


Hai provato a misurare il tempo che ci impiega Arduino a fare un ciclo completo in rapido ovvero quando tempo ci mette a ritornare nel codice che gestisce la modalità in rapido? Se il giro è più lungo di quello che sarebbe la scansione prevista per il modo rapido può essere che non vada in rapido in quanto il sistema nel suo complesso è troppo lento ed è lui che limita...

Ciao



Modificato da NextStep - 16/06/2021, 20:35:02
 

RAUNARDE
GigaWatt


Utente
Msg:1225

Stato:



Inviato il: 22/06/2021 10:43:48

grazie della risposta.
Ho modificato il codice in questo modo e mi funziona tutto, ho solo un problema che di seguito descrivo:

I funzionamento è corretto tranne quando vario la velocità del rapido, mi passa dal valore minimo come rpm fino al massimo ogni 1/3 di giro del potenziometro, superata quella soglia torna al minimo per arrivare al max a 2/3 di giro idem appena supero ed entro nel 3/3 ritorna al minimo e riparte fino al max.
I valori del potenziometro sono corretti, sale costantemente come resistenza, sembra quasi come in radiofrequenza quando si sovrappongano delle armoniche.
Spero di essermi spiegato.
Il problema me lo genera con i delay_microseconds, se lascio in millis va bene , ma ho il problema che mi gira troppo piano (come movimento rapid) avendo impostato sul driver un certo numero di passi per farlo muovere lentamente ma fluido quando devo usarlo per fresare materiali duri.


-TOP CODE-

-BOTTOM CODE-



Modificato da RAUNARDE - 22/06/2021, 10:53:33


---------------



 
 InizioPagina
 

Versione Completa!

Home page     TOP100-SOLAR    Home page forum