Go Down

Topic: Aiuto con problema sui motori passo passo (Read 162 times) previous topic - next topic

BoredCoder

Buonasera, sono nuovo con arduino e vorrei risolvere questo problema:
Far avanzare di mezzo giro in senso orario con modalità di pilotaggio half-step un motore stepper bipolare(passo 1,8°) con velocità di 25 giri/minuto.

Grazie miller per l'aiuto!

gpb01

Buonasera,
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :)

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. ;)
Search is Your friend ... or I am Your enemy !

BoredCoder

Buonasera, grazie per avermi avvertito! Ho scritto la mia presentazione. Ora potrei far si che questo messaggio possa essere attenzionato? Grazie :-[

gpb01

#3
May 16, 2019, 09:48 pm Last Edit: May 16, 2019, 09:48 pm by gpb01
Ora potrei far si che questo messaggio possa essere attenzionato?
... quello viene da se. Se qualcuno ritiene di poterti aiutare, sicuramente interverrà  :)

Guglielmo
Search is Your friend ... or I am Your enemy !

BoredCoder

Pensavo che il mio thread fosse invisibile, tutto qui

brunello22

Quote
Far avanzare di mezzo giro in senso orario con modalità di pilotaggio half-step un motore stepper bipolare(passo 1,8°) con velocità di 25 giri/minuto
Non capisco quale sia il problema..

Il motore è collegato per mezzo di un driver, quale ?


Maurotec

Il motore compie un giro completo in 200 step.
stepalgiro = 360 / 1.8 = 200.
Questo vale in full-step (passo pieno)

In modo mezzo passo (half step), il minimo angolo di rotazione vale 1.8/2 = 0.9.

stepalgiro = 360 / 0.9 = 400

Per compiere 25 giri al minuto servono 400 x 25 = 10000 (diecimila) passi.

Presumo che il motore passo passo è connesso ad un circuito integrato driver.
La velocità di rotazione dipende dalla frequenza del segnale collegato al terminale 'STEP' (o equivalente) del driver. La frequenza vale F = 1/T con T espresso in secondi. Sappiamo che 1 minuto è composta da 60 secondi. 10000 / 60 = 166.666 passi al secondo. Il segnale in questione sarà una onda quadra di frequenza 166.66 Hz, duty cicle del 50% con periodo T = 1/166.66 = 0,006s (6ms), la larghezza dell'impulso sarà 3ms alto e 3ms basso. Per generare questa frequenza con arduino ci sono due strade consigliate:

1) cercare una libreria che gestisce uno dei timer hardware contenuti dentro la MCU impiegata al fine di generare un a frequenza.
2) Nel caso non si riesca a centrare l'obbiettivo con la (1) occorre gestire uno dei timer manipolando direttamente i registri della MCU.

Il Timer 1 a 16 bit permette di generare questa precisa frequenza 166,666666667Hz (e molte altre con ottima risoluzione).

Ciao.

uwefed

C'é una terza possibilitá; usare una libreria (stepper o accelstepper).

Go Up