/**************************************** Exemple d'écriture sur le display 12C 96 ****************************************/ #include "DCF77.h" #include "Time.h" #include #include #include #define DCF_PIN 2 // Connection pin to DCF 77 device #define DCF_INTERRUPT 0 // Interrupt number associated with pin time_t time; DCF77 DCF = DCF77 (DCF_PIN,DCF_INTERRUPT) ; #define OLED_RESET 4 Adafruit_SSD1306 display(OLED_RESET); void setup() { Serial.begin (9600) ; Serial.println ("Initialisation") ; display.begin (SSD1306_SWITCHCAPVCC, 0x3C) ; // initialise le display I2C addr 0x3C (128x32) DCF.Start () ; delay (2000) ; // 2 secondes svp display.clearDisplay () ; // clears the screen and buffer display.setTextSize (2) ; display.setTextColor (WHITE) ; display.setCursor (0,0) ; display.println ("Bonjour!") ; display.display () ; } void loop() { delay (1000) ; display.clearDisplay () ; display.setCursor (5,0) ; time_t DCFtime = DCF.getTime () ; // Nouvelle heure DCF77 valide ? if (DCFtime!=0) { display.println("Time is updated"); setTime(DCFtime); } meinberg_usb() ; digitalClockDisplay(); } void digitalClockDisplay(){ // Affichage de date et heure sur display display.setCursor (0,2) ; display.clearDisplay () ; display.setTextSize (1) ; switch(weekday()) { case 1: display.print ("lundi") ; break ; case 2: display.print ("mardi") ; break ; case 3: display.print ("mercredi") ; break ; case 4: display.print ("jeudi") ; break ; case 5: display.print ("vendredi") ; break ; case 6: display.print ("samedi") ; break ; case 7: display.print ("dimanche") ; break ; } display.print (" ") ; display.print (day()) ; display.print (" ") ; display.print (month()) ; display.print (" ") ; display.print (year()) ; display.println ("") ; display.println ("") ; display.setTextSize (2) ; display.print (" ") ; display.print (hour()) ; display_Digits (minute()) ; display_Digits (second()) ; display.println ("") ; display.display () ; } void display_Digits(int digits){ // Utilitaire d'affichage d'un nombre avec 2 chiffres sur le display display.print (":") ; if (digits < 10) display.print ('0') ; display.print(digits); } void printDigits(int digits){ // Utilitaire d'affichage d'un nombre avec 2 chiffres sur le port serie Serial.print (":") ; if(digits < 10) Serial.print ('0') ; Serial.print (digits) ; } void meinberg_usb() { // digital clock display of the time Serial.print ("D:") ; Serial.print (day()) ; Serial.print (".") ; Serial.print (month()) ; Serial.print (".") ; Serial.print (year()) ; Serial.print (";T:") ; Serial.print (weekday()) ; // Day of week Serial.print (";U:") ; Serial.print (hour()) ; Serial.print (".") ; printDigits (minute()) ; Serial.print (".") ; printDigits (second()) ; // current_bit Serial.println () ; }