Salve a tutti, vorrei costruire un cronometro con un motorino passo passo al quale metterò una lancetta per indicare i minuti. Il dubbio che ho è che se spengo arduino senza azzerare il cronometro, come faccio, una volta riacceso a far andare la lancetta a 0?
Per azzerarlo mentre lo uso utilizzerò un contatore che aumenta a ogni passo e una volta premuto il tasto di reset gli farà fare tanti passi indietri quanti ne ha fatti in avanti.
Beh ... devi avere un qualche cosa che ti indichi la posizione ZERO e, quando accendi, ruoti fino a raggiungerla e, da li, ti posizioni poi correttamente.
Guglielmo
Intende un "finecorsa" o si può fare da programma?
Intendo un riferimento fisico (magari ottico) che devi poter leggere ... altrimenti come fai a sapere dove si trova all'accensione il punto ZERO?
Guglielmo
In realtà, dove si trova all'accensione non ci interessa... Serve, invece, sapere quando fermare la lancetta durante l'azzeramento iniziale.
Datman:
In realtà, dove si trova all'accensione non ci interessa...
... si, nell'ultimo post mi sonno espresso male, ma il concetto era ben chiaro e ben spiegato nei post precedenti. Correggo comunque il post ...
Guglielmo
mi sonno espresso male
Ah, ecco spiegato perché!
Ok proverò grazie
E salvare sulla EEPROM la posizione del cronometro ad ogni passo, sarebbe una cavolata?
La EEPROM non ha una vita infinita, ma per quel che può essere usato un cronometro che conta solo i minuti magari è sufficiente, no?
JulianusGM:
E salvare sulla EEPROM la posizione del cronometro ad ogni passo, sarebbe una cavolata?
...
Piu che altro, credo sia inutile ... il motorino passo-passo non ha un feedback, a cosa serve salvarne la posizione, senza un riferimento ? (che poi e' proprio quello che ti hanno suggerito)
Piu che altro, dato che il riferimento deve essere preciso, suggerirei una forcellina ottica, che puoi poi posizionare con cura ... sono abbastanza precise ... basta una palettina sotto la lancetta, e fare l'azzeramento sempre nella stessa direzione ovviamente ...
A proposito, solo secondi ? ... o usi un gruppo ingranaggi per minuti e secondi ?
Per "posizione" io intendevo il numero di passi trascorsi dall'inizio, ossia dallo zero di riferimento, ma concordo sul fatto che la forcellina è la soluzione migliore.
Ciao, G.
JulianusGM:
Per "posizione" io intendevo il numero di passi trascorsi dall'inizio, ossia dallo zero di riferimento, ma concordo sul fatto che la forcellina è la soluzione migliore.Ciao, G.
Si, ma rimane il problema che un motore passo-passo non ha feedback ... mi spiego, metti ad esempio che per qualsiasi problema meccanico o elettrico, il tuo motore "perda" uno o piu passi (tipo, la lancetta sfrega o si incastra da qualche parte) ... la tua MCU non ha alcun modo di sapere che ora la tua lancetta e' rimasta indietro, perche' lei i passi li ha dati giusti ... per cui a cosa serve salvarne il numero ?
Tranne nel caso, ovviamente, che il tuo cronometro sia rattrappante ... quello che gli anglofonografi (o era anglofoni ? ... :P) chiamano "lap time" (che non c'entra nulla con la lap-dance ... scusa, non ho resistito :D), cioe' la possibilita' di fermare la lancetta su un primo tempo ma continuare a contare e visualizzare il resto in seguito (esempio banale, quando durante il conteggio premi la "pausa" la lancetta si ferma, ma il conteggio continua, la ripremi e la lancetta va velocemente al punto in cui il conteggio e' arrivato nel frattempo e poi riprende gli scatti ogni secondo) ... ma anche li penso si possa fare con un paio di variabili senza scomodare la EEPROM ...
L'unico utilizzo che mi viene in mente in cui dovresti usare la EEPROM e' se sei arrivato ad un certo punto e devi togliere alimentazione al cronometro, ma conservando la possibilita' di ripartire dal punto in cui eri arrivato quando lo rialimenti ... che pero' credo non sia una cosa molto comune ...
Si, ora ho capito il tuo punto di vista.
Non avevo pensato alla possibilità che la lancetta potesse rimare indietro nonostante il conteggio dei passi sia corretto.
Conclusione per il titolare del post iniziale --> usa una forcellina ottica
Ciao, G.