Motore passo passo non gira [RISOLTO]

Buongiorno a tutti, per una parte del mio progetto di tesi dovrei pilotare l'apertura di una valvola tramite un motore passo passo controllato con Arduino.
Inizialmente stavo provando un semplice controllo del motore in cui sostanzialmente cerco di farlo girare in un'unica direzione, ma nelle varie prove che ho effettuato il motore non si muove e non emette nemmeno un minimo rumore e non riesco a capire il perché.
Ho a disposizione un motore stepper Nema 23, un microstep driver ST-M5045, una scheda Arduino Uno e un'alimentatore.
Lo schema di collegamento che ho seguito tra il driver e Arduino è il seguente:

.
DIR +, PUL+,ENA+ ai 5V di Arduino
PUL - al pin 9 di Arduino
DIR - al pin 8 di Arduino
ENA - al pin 10 di Arduino
seguendo questo schema di riferimento trovato on-line: Immagine 2021-11-10 124922.

Il codice utilizzato è il seguente (è molto basico, ma era giusto per fare delle prove):

Il tutto viene alimentato con una tensione di 24V e con una corrente di 4A.
Vi allego una foto di tutto lo schema completo

.

Non riesco proprio a capire cosa possa esserci di sbagliato, i collegamenti e il codice mi sembrano corretti, potrebbe essere un problema legato al Driver? o all'Alimentazione?
Grazie in anticipo,
Martina.

Se tutto corrisponde esattamente alla foto direi che non funziona semplicemente perchè non hai abilitato l'uscita dell'alimentatore da banco (pulsante cerchiato di grigio sopra la boccola rossa).

Ciao, Ale.

Anche a me sembrano corretti i collegamenti. Non rimane che fare una verifica con tester?
Occhio sul header ci sono due pin GND e accanto c'è il 5V.

Ciao.

Si nella foto effettivamente non era abilitato, ma anche quando lo faccio non succede proprio nulla!

Grazie, Martina

Facendo delle prove con il tester ho verificato che l'uscita dal pin 9 di Arduino (quindi al PUL del driver) effettivamente oscilla tra 0 e 5V nel tempo impostato come da codice, e ho anche controllato che l'alimentazione arrivi ai fili del motore collegati al driver.

Grazie, Martina

Ciao,
io procederei così:

  • controlla che le fasi del motore siano collegate correttamente (se non hai il datasheet del motore puoi semplicemente misurare con un multimetro la resistenza degli avvolgimenti), non so se tutti i motori hanno un codice colore univoco ma mi pare che quelli che ho testato avessero gli avvolgimenti collegati ai cavi blu-rosso e verde-nero
  • controlla l'impostazione del driver, a quanti micro-passi è impostato? (non mi pare che quel driver preveda il passo pieno ma solo dal mezzo passo in giù)
  • alimentando il driver ed abilitando le uscite l'albero del motore dovrebbe restare fermo anche tentando di farlo girare manualmente (applicando all'albero unan coppia inferiore alla coppia del motore ovviamente), se così non è il problema è da ricercare nel driver
  • controlla che tra i pin DIR+, PUL+ ENA+ ed il GND dell'Arduino vi siano 5v (con i puntali del multimetro tocca la massa e le viti sul driver, non so se sia la foto che imbroglia ma mi pare che hai sbagliato pin sull'Arduino)
  • verifica che il pin enable sia attivo basso... nel manuale parla di MOTOR FREE, mi vien da pensare che sia attivo alto.
    http://www.selloutsoon.com/albums/documents/20-019-209/ST-M5045%20Instruction%20manual.pdf

:slight_smile:
PS: nel for del codice hai inserito un delay di troppo :wink:

Ciao, grazie mille per tutti i suggerimenti. Il problema effettivamente stava sia nell'impostazione dei micro-passi del driver che nell'impostazione del pin Enable.

Grazie, Martina

1 Like