pendule inutile donc indispensable

bonjour tout le monde,
ayant un peu de temps ce matin, je me suis amusé a faire une pendule inutile, donc indispensable.
un tiny rtc v1.1
un servo moteur
un nono

le but étant d’allumer une led toutes les minutes et d’avoir une aiguille indiquant les secondes.
vraiment fait à l’arrache, mais ca fonctionne. :slight_smile:

#include <Wire.h>
#include <DS1307.h>
#include <Servo.h>

Servo myservo;  // create servo object to control a servo

int rtc[7];
byte rr[7];
int ledPin =  13;
int heure_alarm = 13;
int mn_alarm = 02;
int sec_alarm = 00;
int temps_alarm = 5000;
void setup()
{
   myservo.attach(9);
  DDRC|=_BV(2) |_BV(3);  // POWER:Vcc Gnd
  PORTC |=_BV(3);  // VCC PINC3
  pinMode(ledPin, OUTPUT);  
  Serial.begin(9600);
  RTC.get(rtc,true);
  Serial.println(rtc[6]);
  Serial.println("titi");
  if(rtc[6]<2015){
    Serial.println("lolo");
    RTC.stop();
    RTC.set(DS1307_SEC,1);
    RTC.set(DS1307_MIN,32);
    RTC.set(DS1307_HR,12);
    RTC.set(DS1307_DOW,2);
    RTC.set(DS1307_DATE,13);
    RTC.set(DS1307_MTH,10);
    RTC.set(DS1307_YR,16);
    RTC.start();
  }
  //RTC.SetOutput(LOW);
  //RTC.SetOutput(HIGH);
  //RTC.SetOutput(DS1307_SQW1HZ);
  //RTC.SetOutput(DS1307_SQW4KHZ);
  //RTC.SetOutput(DS1307_SQW8KHZ);
  RTC.SetOutput(DS1307_SQW32KHZ);
  
}

void loop()
{
  int i;
  RTC.get(rtc,true);

  delay(1000);
   myservo.write(rtc[0]);

 Serial.print(" Il est : ");
 Serial.print(rtc[2]);
  Serial.print("H");
  Serial.print(rtc[1]);
  Serial.print("mn"); 
   Serial.print(rtc[0]);
  Serial.println("s");
  Serial.print("Date : ");
   Serial.print(rtc[6]);
  Serial.print("Y");
   Serial.print(rtc[5]);
  Serial.print("Mois");
   Serial.print(rtc[4]);
  Serial.println("Jour");
    Serial.println(mn_alarm);
    
  if(rtc[2]==heure_alarm && rtc[1]==mn_alarm && rtc[0]== sec_alarm){
      unsigned long time_debut=millis();
        while( millis() - time_debut<temps_alarm){
            Serial.println("alarm");
            digitalWrite(ledPin, HIGH);
             myservo.write(rtc[0]);
          }  
       mn_alarm++;

  }else{
    digitalWrite(ledPin, LOW);
  }

 if (Serial.available() > 6) {
     for(i=0;i<7;i++){
       rr[i]=BCD2DEC(Serial.read());
     }
     Serial.println("SET TIME:");
       RTC.stop();
    RTC.set(DS1307_SEC,rr[6]);
    RTC.set(DS1307_MIN,rr[5]);
    RTC.set(DS1307_HR,rr[4]);
    RTC.set(DS1307_DOW,rr[3]);
    RTC.set(DS1307_DATE,rr[2]);
    RTC.set(DS1307_MTH,rr[1]);
    RTC.set(DS1307_YR,rr[0]);
    RTC.start();
 }
}
char BCD2DEC(char var){
  if (var>9){
     var=(var>>4)*10+(var&0x0f);
  }
  return var;
}

Bonjour infobarquee,
Tu as oublié de mettre un avertisseur sonore qui fait coinc coinc toutes les heures.
Si tu me cherches, je suis déjà loin.
@+

salut
une petite video pour voir à quoi ça ressemble ? :grin:

demain je fais le cadran pour montrer :slight_smile:

coincoinc, ca doit pouvoir se faire je pense :wink:

cela peut aussi servir pour du timelaps, des jeux, etc.....

Bonjour,
As-tu fait une vidéo depuis?