/************************************************************
 * Horloge a galvanometres
 * 
 * Horloge constituée d'un Arduino, de deux 
 * galvanometres a cadre mobile, et d'un module breakout 
 * RTC DS1307.
 * 
 * Branchements du breakout RTC DS1307:
 * Gnd --> GND
 * Vcc --> 5 V
 * Sda --> analog pin A4
 * Scl --> analog pin A5
 * 
 * Galvanometre indiquant les heures:  pin 8
 * Galvanmometre indiquant les minutes:  pin 9
 * 
 * Pour plus d'informations:
 * http://electroniqueamateur.blogspot.com/2015/10/construction-dune-horloge-avec-deux.html
 * 
 ***************************************************/


#include <Wire.h>
#include <RTClib.h>

RTC_DS1307 RTC;

void setup() {
  Wire.begin();
  RTC.begin();
}

void loop() {

  int heure, minute;

  DateTime now = RTC.now();

  heure = now.hour();

  if ((heure == 1) || (heure == 13)){
    analogWrite(9,0);
  }
  if ((heure == 2) || (heure == 14)){
    analogWrite(9,15);
  }
  if ((heure == 3) || (heure == 15)){
    analogWrite(9,30);
  }
  if ((heure == 4) || (heure == 16)){
    analogWrite(9,45);
  }
  if ((heure == 5) || (heure == 17)){
    analogWrite(9,63);
  }
  if ((heure == 6) || (heure == 18)){
    analogWrite(9,78);
  }
  if ((heure == 7) || (heure == 19)){
    analogWrite(9,93);
  }
  if ((heure == 8) || (heure == 20)){
    analogWrite(9,112);
  }
  if ((heure == 9) || (heure == 21)){
    analogWrite(9,132);
  }
  if ((heure == 10) || (heure == 22)){
    analogWrite(9,156);
  }
  if ((heure == 11) || (heure == 23)){
    analogWrite(9,190);
  }
  if ((heure == 12) || (heure == 0)){
    analogWrite(9,230);
  }


  minute = now.minute()/5;
  minute = minute * 5;  // on a arrondi par bonds de 5 minutes

  if (minute == 0){
    analogWrite(10,0);
  }
  if (minute == 5){
    analogWrite(10,10);
  }
  if (minute == 10){
    analogWrite(10,25);
  }
  if (minute == 15){
    analogWrite(10,38);
  }
  if (minute == 20){
    analogWrite(10,52);
  }
  if (minute == 25){
    analogWrite(10,65);
  }
  if (minute == 30){
    analogWrite(10,83);
  }
  if (minute == 35){
    analogWrite(10,100);
  }
  if (minute == 40){
    analogWrite(10,120);
  }
  if (minute == 45){
    analogWrite(10,145);
  }
  if (minute == 50){
    analogWrite(10,178);
  }
  if (minute == 55){
    analogWrite(10,213);
  }

  delay(500);  // y'a rien qui presse...

}