Motore per caricare orologio automatico

Vorrei costruire una scatola del tempo quelle che girano in un senso e in un altro per caricare gli orologi automatici. Potete cortesemente consigliarmi che pezzi da comprare compreso la scheda arduino per comandarlo? P.S. sono nuovo di questo mondo e mi piacerebbe realizzare questo primo progetto. Grazie

Buongiorno e benvenuto nella sezione Italiana del forum,

cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (... e, per evitare future possibili discussioni/incomprensioni, prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento (punto 16.7), fai la tua presentazione NELL'APPOSITA DISCUSSIONE spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.

Grazie,

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto. :wink:

Grazie, mi sono presentato nella sezione dedicate e scusate per non averlo fatto prima

Bella questa, "Ritorno al Futuro"? no non credo. :grinning:
Hai dei link a queste "scatole del tempo" e i meccanismi "per caricare gli orologi"?

Ciao.

Parla di questi oggetti che normalmente trovi sul mercato ...

... un motorino fa girare il supporto (solo in un verso o in entrambi i versi) e gli orologi a carica automatica si caricano come se li avessi al polso.

Fattibile anche senza scomodare Arduino che, comunque, offre qualche possibilità in più.

Guglielmo

Esattemente @gpb01, ho visto dei progetti fatti con arduino con più di un motore per più orologi ma non c'erano i dettagli e vorrei farlo anche io. Ma come dicevo sono al mio primo progetto e non saprei i componenti da comprare e poi il codice da scrivere. Se riuscite ad aiutarmi grazie

... emmm ... hai letto il REGOLAMENTO, in particolar modo il punto 16.1?

Perché, premesso che, come detto:

... sono indicati vari .pdf ed un ottimo libro proprio per chi comincia ed ha bisogno di una guida iniziale. Poi, una volta capito bene o male come funziona, butta giù una bozza di progetto, noi possiamo aiutarti a correggerla / migliorarla, ma ... l'impostazione la dovresti dare tu :slight_smile:

Guglielmo

Ciao, per realizzare il mio progetto ho comprato arduino uno R3, stepper motor (28BYJ-48 DA 5V) con driver board ULN2003.
Ho scritto lo sketck, funziona ma è troppo base come automazione.
Vorrei far fare un giro a 360 gradi in senso orario poi in senso antiorario e poi fare un giro a 180 gradi in senso orario poi antiorario, poi far fare un giro a 60 gradi in senso orario e poi antiorario con delle pause fra un giro e l'altro.
ma essendo alle prime armi non ci sono riuscito ho modificato il programma iniziale ma non funzionava più.
Allego il programma base che vorrei implementare, potreste darmi una mano? Grazie

#include <Stepper.h> // libreria dedicata
Stepper myStepper(2048, 11, 9, 10, 8); // 2048 si riferisce agli step necessari per fare un giro a 360 e i pin su cui è collegato lo stepper
void setup() {
  myStepper.setSpeed(10); //velocità dello step
}
void loop() {
  float gradi = 360; // gradi che voglio ottenere
  gradi = map(gradi, 0, 360, 0, 2048); // faccio la conversione dei 2048 step in gradi, nella parte di sinistra ho i gradi e nalla parte destra gli step

  myStepper.step(gradi); //richiama la funzione dei giri in senso orario
  delay(1000); // ritardo fra il giro orario e quello antiorario
  myStepper.step(-gradi); //richiama la funzione dei giri in senso anti orario
  delay(5000); // ritardo fra il girop antiorario e ricomincia il loop

}
#include <Stepper.h> // libreria dedicata
Stepper myStepper(2048, 11, 9, 10, 8); // 2048 si riferisce agli step necessari per fare un giro a 360 e i pin su cui è collegato lo stepper
float gradi = 360;
int16_t step;

void setup() {
  myStepper.setSpeed(10); //velocità dello step
}
void loop() {
  
  step = map(gradi, 0, 360, 0, 2048); // faccio la conversione dei 2048 step in gradi, nella parte di sinistra ho i gradi e nalla parte destra gli step

  myStepper.step(step); //richiama la funzione dei giri in senso orario
  delay(1000); // ritardo fra il giro orario e quello antiorario
  myStepper.step(-step); //richiama la funzione dei giri in senso anti orario
  delay(5000); // ritardo fra il girop antiorario e ricomincia il loop
  if (gradi == 360) 
      gradi = 180;
  else if (gradi == 180) 
      gradi = 60;
}

Prova così.
Fammi sapere come va.

Ciao.

Poi continua sempre a 60°?...
Forse dovrebbe ricominciare da 360°?

ciao,
grazie mille.
L'ho caricato e il primo loop funziona correttamente ma non riprende il loop dai giri a 360 gradi ma continua a loop con i 60 gradi per far ricominciare il loop dai 360 gradi devo spegnerlo e riaccenderlo come se non ricominciasse a leggere le istruzioni dal 360 grazi

si continua sempre con 60 e pure secondo me dovrebbe iniziare da 360

Bene ... allora fai un piccolo sforzo, ti studi bene quanto Maurotec ti ha scritto e aggiungi TU il modo per attendere e ritornare ai 360° all'interno del loop() :wink:

Guglielmo

pensavo ci si aiutasse, avendo basi economiche tutto quello che so sull'informatica è già frutto di studio in fai da te.
Grazie mille

Dai un pesce a un uomo e lo nutrirai per un giorno. Insegnagli a pescare e lo nutrirai per tutta la vita.

Se non trovi da solo la soluzione studiando, domani sarai di nuovo qui a chuedere altre piccole modifiche che, con un minimo d'impegno e un po' di studio (ribadisco, il punto 16.1 del REGOLAMENTO forrnisce ottimi link e il titolo di un bel libro) sarai in grado di fare perfettamente da solo :wink:

Guglielmo

1 Like

Dove lo vedi scritto che deve ricominciare da 360°. Io quello che volevi ti ho dato.

Comunque è banale, basta aggiungere else if(... e non serve neanche scrivere ma copiare l'ultimo else if e il 180 diventa 60 e il 60 diventa 360.

Ciao.

1 Like

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.