• Post category:Uno
  • Post comments:0 commentaire
  • Post last modified:mars 13, 2022
  • Temps de lecture :5 min de lecture

Afficher la valeur d’un DS1302 sur écran LCD 16×2 avec Arduino *

 

 

    Prérequis :

Matériel :

  • 1 x Carte Arduino
  • 1 x Module DS1302
  • 1 x Potentiomètre 10 KΩ
  • 1 x Résistance 220 Ω
  • 1 x Ecran LCD 16×2
  • Fils de connexion
  • 1 x Breadboard

Version IDE :

Bibliothèque :

  • DS1302.h 
  • LiquidCrystal.h 

 

 

Vidéo de démonstration :

 

Schéma de câblage :

 

 

Code :

#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

#include <DS1302.h>
DS1302 rtc(10, 9, 8);
Time t;

void setup()
{
  rtc.halt(false);
  Serial.begin(9600);
  
  //Active = false Desactive = true la protection en ecriture pour mettre à jour heure et la date
  rtc.writeProtect(false);
  rtc.setDOW(FRIDAY);        // Jour a FRIDAY
  rtc.setTime(19, 10, 0);    // Heure a 15:14:00 (format sur 24 heure)
  rtc.setDate(02, 06, 2020);   // Date  au 28 juin 2020
  /////////////////////////////////////
  lcd.begin(16, 2);
  lcd.clear();
}

void loop()
{
  t = rtc.getTime();
  String date;
  String month;
  String year;
  String hour;
  String min;
  String sec;
  date = String(t.date);
  month = String(t.mon);
  year = String(t.year);
  hour = String(t.hour);
  min = String(t.min);
  sec = String(t.sec);
// Affichage de la date
  lcd.setCursor(0, 0);
  lcd.print ("Date:");
  if(t.date<10)
  {
    date = "0"+date;
    lcd.setCursor(6, 0);
    lcd.print (date+"/");
  }else
  {
    lcd.setCursor(6, 0);
    lcd.print (date+"/");
  }
  if(t.mon<10)
  {
    month = "0"+month;
    lcd.setCursor(9, 0);
    lcd.print (month+"/");
  }else
  {
    lcd.setCursor(9, 0);
    lcd.print (month+"/");
  }
  lcd.setCursor(12, 0);
  lcd.print (year);
// Affichage de l'heure
  lcd.setCursor(0, 1);
  lcd.print ("Heure:");
  if(t.hour<10)
  {
    hour = "0"+hour;
    lcd.setCursor(7, 1);
    lcd.print (hour+":");
  }else
  {
    lcd.setCursor(7, 1);
    lcd.print (hour+":");
  }
  if(t.min<10)
  {
    min = "0"+min;
    lcd.setCursor(10, 1);
    lcd.print (min+":");
  }else
  {
    lcd.setCursor(10, 1);
    lcd.print (min+":");
  }
  if(t.sec<10)
  {
    sec = "0"+sec;
    lcd.setCursor(13, 1);
    lcd.print (sec);
  }else
  {
    lcd.setCursor(13, 1);
    lcd.print (sec);
  }
  delay (1000);
}

 


 

Laisser un commentaire