Horloge LCD

De Sam's Projects.
Aller à : Navigation, rechercher

Sommaire

Description

J’utilise tout simplement un LCD, un DS1307, et une plateforme Arduino pour créer une horloge LCD. Ayant déjà fait des tutoriels sur le LCD et le DS1307, je vais juste reprendre ces schémas.

Composants

  • Une plateforme Arduino (ici Arduino Mega)
  • Un DS1307 (avec son cristal)
  • Un LCD
  • Breadboard, …

Schémas

Vous pouvez trouver des schémas plus en détails pour le LCD et le DS1307.

LCD.jpg DS1307.jpg

Connecter le tout ensemble, bien sûr il n’y a qu’un seul Arduino.

Programme

LCD_Clock.pde

/*
Real Time Clock DS1307
*/
 
#include <WProgram.h>
#include <Wire.h>
#include <DS1307.h>
#include <LiquidCrystal.h>
 
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
int rtc[7];
 
void Set_Square_Wave(int rate){  // set the square wave output on pin 7 of the DS1307 chip
  rate = rate + 144;                         // add 0x90 (dec 144) to rate
  Wire.beginTransmission(0x68);              // write the control register
  Wire.send(0x07);                           // register address 07H)
  Wire.send(rate);                           // 90H=1Hz, 91H=4kHz, 92H=8kHz, 93H=32kHz
  Wire.endTransmission();
} 
 
void setup()
{
  Serial.begin(9600);
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("    Horaire");
  delay(2000);
// Décommenter la partie suivante et mettez vos valeurs pour initialiser l'horloge
/*
  RTC.stop();
  RTC.set(DS1307_SEC,0);    // Secondes
  RTC.set(DS1307_MIN,59);   // Minutes
  RTC.set(DS1307_HR,12);    // Heures
  RTC.set(DS1307_DOW,5);    // Jour de la semaine
  RTC.set(DS1307_DATE,23);  // Jour du mois
  RTC.set(DS1307_MTH,12);   // Mois
  RTC.set(DS1307_YR,10);    // Année
  RTC.start();
*/
 
  // Mettre une resistance de pull up entre pin 7 et Vbat
  // 0=1hz, 1=4KHz, 2=8KHz, 3=32KHz
  Set_Square_Wave(0); // 1Hz
 
}
 
void loop()
{
  RTC.get(rtc,true);
 
  for(int i=0; i<7; i++)
  {
    Serial.print(rtc[i]);
    Serial.print(" ");
  }
  Serial.println();
 
  lcd.setCursor(3,0);
  lcd.print(rtc[4]);
  lcd.print("/");
  lcd.print(rtc[5]);
  lcd.print("/");
  lcd.print(rtc[6]);
  lcd.setCursor(4,1);
  lcd.print(rtc[2]);
  lcd.print(":");
  lcd.print(rtc[1]);
  lcd.print(":");
  lcd.print(rtc[0]);
 
  delay(500);
}
Outils personnels
Espaces de noms

Variantes
Actions
Farfouillage
Liens divers
Boîte à outils