Motore per orologio a lancette

Ciao,
ho visto molti post in merito a fare un orologio a lancette ... pensavo fosse MOLTO più semplice.

Non capisco ... ho provato delle simulazioni in Wokwi ma non riesco a simulare il movimento dei secondi .... sicuro sbaglio qualcosa nel software ma a sto punto mi viene da pensare che anche la scelta dello stepper è fondamentale.

A me non interessa un movimento continuo mi va bene a scatti come un classico orologio da parete.

Consigli?
grazie
mir

In realta' non riesci replicare perfettamente 60 scatti a minuto con stepper.
Un stepper normale ha 200 step/revolution, quindi non e' divisibile con 60.
Ma se scatti non ti interessano, puoi fare 1 step ogni 300millisecondi, quindi un giro in un minuto. Con microstepping ottieni effetto "continuo".

Si del problema dei 200 passi per giro lo ho letto ... mi chiedevo se esistono alternative allo stepper

Ma tu vuoi che le lancette vadano avanti/indietro veloci/lente e che eventualmente si fermino?

O qualcosa di più semplice?

Non e' una problema vera, ma "teoretica" . Puoi replicare un Rolex senza problemi.
Con microstepping puoi avere risoluzione di 51200 passi per giro.
Perche' vorresti un alternativo? Cosa c'e' che non va bene?

Di motori stepper esistono
Unipolari
Bipolari
Tripolari
Pentapolari

Per l'orologio vanno bene i tripolari
Fanno 300 passi per giro, numero divisibile per 60, hanno 3 fili e
Sono pilotati da 3 semiponti, i drive per pilotarli non sono comuni ma si trovano se si vuole

ciao ... devono andare avanti e indietro ... rapidamente.

Sostanzialmente i minuti sono sparsi nel mio orologio .... quindi l'1 magari è al 15, il 22 al 17 ..... quindi la lancetta non fa un moto classico. E a far bene deve muoversi anche evitando di arrivare dopo che il secondo è passato :slight_smile:

Grazie

Giuro non capisco la logica ....
sto cercando di fare in modo che il motorino si orienti in base al pos_secondo (es: se ho 15 mi aspetto si posizioni a 90 gradi .... alla velocità massima che gli è consentita) ma non trovo la combinazione di input corretti!

esempio

Io credo che la .step(n) muova il motore 'di' n e non 'a' n passi

Quindi devi tenere conto di dove sei arrivato e muovere della sola differenza, casomai negativa, oppure muovere in avanti fino a completare il giro

Ti rimane comunque il problema che non sai la posizione iniziale

Però se si parla di secondi messi a caso poco importa

Per assurdo puoi anche muovere a caso la lancetta e solo dopo calcolare il secondo raggiunto

Lascia perdere quella libreria perché è pensata principalmente per motori unipolari.
Io ti consiglio di usare la classica AccelStepper ed un driver step/dir per ciascun motore.

A questo proposito, sicuro che uno stepper "classico" sia la scelta giusta per un orologio?
Sono pesanti e rumorosi (specialmente se usati a passo intero senza driver che fanno l'interpolazione degli step) ed hanno un consumo di corrente decisamente elevato per un orologio.

Io proverei a cercare uno stepper motor per VDO (quelli dei tachimetri di macchine e moto per capirci). Se ne trovano anche da 360°.

ma quindi, se capisco bene, gli stepper si muovo in base a velocità e tempo .... io non posso usarli comandando, per esempio, dicendogli di quanti gradi muoversi?

No, uno stepper avanza a ...step ed in funzione della velocità impostata impiegherà un determinato tempo per raggiungere il setpoint.

Se vuoi ragionare in gradi sessagimali devi fare le dovute conversioni: gli stepper più comuni (come quello che hai usato in wokwi) sono tipicamente da 200 step/giro e quindi ogni singolo step equivale a 1.8°

I motori stepper però, possono essere pilotati anche a "frazioni di step" modulando e fasando opportunamente la corrente che scorre negli avvolgimenti e aumentando in questo modo la risoluzione angolare minima.

Ad esempio, uno stepper da 200 impulsi/giro pilotato ad 1/8 di passo farà un giro completo ogni 200*8=1600 step con una risoluzione angolare di 360/1600=0.225°

P.S.
Ho modificato l'esempio wokwi del mio link per impostare il driver ad 1/4 di passo (800 step per 360°)

scusa una domanda ... ma perchè quando avvio il programma gli step ruotano indietro di mezzo grado?

Credo sia un difetto del simulatore con quella libreria.

Ho compensato via software.

1 Like

giuro ci provo ...magari mi perdo.
ma come faccio a fermare lo stepper di destra a 90°.

Un po' di impegno dai... si tratta di fare una proporzione :wink: :upside_down_face:

Ricapitolando: nel mio esempio ho impostato un microstep da 1/4 di passo quindi un giro completo sono in totale 800 passi

360° <--> 800 step
90° <--> ??? step

ufff hai ragione ... giuro che avevo provato ma si vede che avevo impallato qualcosa ... sempre colpa dei software ... sicuroooooo

grazie!

comunque oggi lo scatto in avanti non lo fa più ... ed il tuo corretto lo muoveva comunque in correzione. Risolto rimuovendo il tuo codice.

allora il codice funziona e fa quello che deve ... ora devo scegliere l'opportuno motorino.

ho cercato gli stepper motor per VDO ed ho trovato questi:
SU TEMU

Il motore passo-passo è un tipo di dispositivo elettromagnetico che si muove a passi discreti. Questo ha diverse bobine, l'albero centrale ha una serie di magneti montati su di esso e le bobine che circondano l'albero vengono alternativamente alimentate o meno, creando campi magnetici che respingono o attraggono i magneti sull'albero, facendo ruotare il motore. Questo motore passo-passo unipolare 28-BYJ48 è dotato di cinque fili e quattro bobine

Le connessioni centrali delle bobine sono legate insieme e di solito utilizzate come connessione di alimentazione. Sono chiamati stepper unipolari perché l'alimentazione arriva sempre su questo unico polo

  • Indicatore LED a quattro fasi A, B, C, D che indica lo stato di lavoro del motore passo-passo. - Motore passo-passo con un'interfaccia standard, quando usato direttamente è plug-and-play. - 5 linee a 4 fasi possono essere utilizzate per il driver a chip ULN2003 ordinario, connettendosi alle 2 fasi, supportando la scheda di sviluppo, con un uso comodo e un collegamento diretto. - Tensione nominale: DC5V a 4 fasi - Resistenza di isolamento: >10MΩ (500V) - Resistenza dielettrica: 600V AC / 1mA / 1s - Angolo di passo: 5,625 x 1/64

  • Resistenza DC: 200Ω±7% (25C) - Rapporto di riduzione: 1/64 - Grado di isolamento: A - Frequenza di attrazione a vuoto: >600Hz - Frequenza di disattivazione a vuoto: >1000Hz - Coppia di attrazione: >34.3mN.m(120Hz) - Coppia di ritenzione: >34.3mN.m - Aumento di temperatura: < 40K(120Hz)