Horloge LCD
De Sam's Projects.
Version du 5 juillet 2012 à 08:52 par Sam (discuter | contributions)
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.
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); }