Go Down

Topic: Project 001 Solari flip clock (Read 1 time) previous topic - next topic


Here is my first project:

I own this Solari flip clock but it is a secondary clock, not a stand alone. So it needs a signal to drive the electric motor.
This motor drive the minute dot, all the remaining flip number and text is driven by gear and mechanic.

Each 2 minutes, a position sensor is on, so I drive the motor for the first minute (about 400ms) and wait for the sensor information for the other minute.

I have an Uno and a shield with a relay to drive the 220V motor.

Code: [Select]
Horloge "suiveuse" à palettes type Solari, un fin de course passe
à 1 toutes les 2 secondes, son information sert à recaler
le pilotage du moteur.

Pilotage d'un relais 5V pour le moteur, avec transistor NPN 2N2222
voie 2 puis résistance de 10k sur Base,
bobine entre + et Collecteur
Emetteur au 0V
diode 1N4001 anti retour en parallèle sur bobine relais
Moteur de l'horloge 220V sur le contact NO du relais

int relais = 2;// pilotage du moteur de l'horloge
int fdc = 3; //fin de course toutes les 2 minutes
int long valeur;
unsigned long tempsactuel;
int long decalage;
int long correction = 0;

void setup(){
  pinMode(relais, OUTPUT);// voie 2 en sortie
  pinMode(fdc, INPUT);// voie 3 en entrée
// test  Serial.begin(9600);

void loop() {
  // première minute
    digitalWrite(relais, HIGH);  // relais piloté
  delay(400); // temps nécessaire pour faire un demi tour
  digitalWrite(relais, LOW); // relais au repos
  delay(59600 + correction); // attente pour faire une minute
// test     Serial.println("une minute");
  // deuxième minute avec utilisation du fin de course
   digitalWrite(relais, HIGH);  // relais piloté
   valeur=0;  // attente du fin de course
     valeur = digitalRead (fdc);
   digitalWrite(relais, LOW); // relais au repos
   // recalage sur l'horologe "millis"
   decalage = millis()-tempsactuel;
   if (decalage<120000){  //si il ne s'est pas écoulé 2 minutes
   delay(120000 - decalage); // attente pour complèter
   correction = 0; // pas de correction sur la première minute
   else{  // si il s'est écoulé plus de 2 minutes
   correction = 120000 -decalage; //correction nécessaire sur la première minute
   if (correction <-59600 ){ // ne peut dépasser cette valeur
     correction =-59600; // pour éviter un "delay" négatif
// test   Serial.println(millis() % 60000);
// test   Serial.println(decalage);

  // test  Serial.println(correction);

As it is only for demo purpose, I don't care about the "49 days limit" for the millis.

Stone age was not finished due to a lack of stones


j have a 5 cifra slave, you sell the implusion minutes?


j have a clock solari model udine 5 cifra slave, you sell the implusion to run it without the master clock?

Go Up

Quick Reply

With Quick-Reply you can write a post when viewing a topic without loading a new page. You can still use bulletin board code and smileys as you would in a normal post.

Warning: this topic has not been posted in for at least 120 days.
Unless you're sure you want to reply, please consider starting a new topic.

Note: this post will not display until it's been approved by a moderator.

shortcuts: alt+s submit/post or alt+p preview