controllo velocità con drv8825 e potenziometro

buona sera,

vorrei controllare la velocità di un motore passo passo con il drv8825 e un potenziometro,

questo è il video a cui faccio riferimento, How to control speed of Stepper motor by potentiometer + arduino + A4988 Tutorial - YouTube

dovrei usare quindi la funzione map() ma visto che ho bisogno di 2 velocità precise e costanti più tutte le velocità comprese tra le 2 velocità target poteri impostare queste velocità target tramite la funzione constrain() ??

grazie.

Dovresti postare almeno il codice che usi e non costringere ad andarselo a prendere da youtube.

Ciao,
P.

Non ho ancora iniziato a scrivere il codice e Prima di iniziare volevo solo capire se era una buona idea controllare la velocità del motore in questo modo con queste funzioni.

Ho chiesto solo un parere, non la spiegazione del codice, il video su YouTube neanche servirebbe l'ho messo solo per dare un idea

Grazie e buona giornata

Mah ... la map() ci sta se ti serve di trasformare un intervallo di valori in un altro intervallo, per il resto, lo fai tranquillamente da codice senza dover usare funzioni strane che, per di più, hanno anche serie limitazioni ... ::slight_smile:

Guglielmo

Come preannunciato, ho ripulito il thread da post "inutili". Proseguiamo con i discorsi "tecnici".

Guglielmo

Non ho descritto il progetto per motivi personali e per evitare di aprire discussioni su di esso come succede sempre, ho descritto il necessario non credo serva sapere altro.

Per adesso controllo la velocità del motore impostando il numero di micropassi nel programma. Se voglio avere una velocità di 30 rpm costante e precisa nei limiti di un numero intero, una velocità target ugualmente costante e precisa, più tutte le velocità comprese basta la funzione map quindi?

iungooo:
... basta la funzione map quindi?

Non lo so, dipende come scrivi il programma ... la map() prende un valore che TU dici poter andare da A a B e te lo rimappa nell'intervallo A1 e B1, altro non fa ... come poi la applichi dipende dal programma.

Ad esempio, una analogRead() da valori che vanno da 0 a 1023 ... con la map(), se voglio, automaticamente li faccio trasformare in valori che vanno da 0 a 255 per l'uso con la analogWrite() per il PWM ...

Guglielmo

Grazie mille

Aiaiai Guglielmo, un altra distrazione, stai invecchiando :slight_smile: con una PWM non vari la frequenza e quindi lo stepper non varia la velocità, devi generare una PFM , cosa che si può fare lo stesso con un timer hardware ma pilotato in modo diverso

icio:
Aiaiai Guglielmo, un altra distrazione, stai invecchiando :slight_smile: con una PWM non vari la frequenza ...

No, aspetta un attimo, io ho parlato del PWM come esempio di utilizzo della funzione map() ...

gpb01:
... Ad esempio, una analogRead() da valori che vanno da 0 a 1023 ... con la map(), se voglio, automaticamente li faccio trasformare in valori che vanno da 0 a 255 per l'uso con la analogWrite() per il PWM ...

... e non mi sono addentrato nel problema dell'OP ...

gpb01:
Non lo so, dipende come scrivi il programma ...

... invecchiato e un po' distratto ci sta, ma non fino a 'sto punto :smiley: :smiley: :smiley:

Guglielmo