Page 1 sur 1

[Arduino] Envoyer des resultats sur un ecran

Publié : 26 juin 2013 17:56
par papy94
Arduino Serial IIC/I2C/TWI 2004 204 Character LCD Module Display : 11€

Image

Specification:
Interface: I2C
I2C Address: 0x27
Pin Definition : GND、VCC、SDA、SCL
Back lit (Blue with White char color)
Supply voltage: 5V
PCB Size : 98mm×60mm
Contrast Adjust : Potentiomètre



Reprise du code Arduino sait memoriser l'heureet ajout des lignes pour envoyer l'heure sur le LCD

Image
Image

le code

Code : Tout sélectionner

//Arduino 1.0.5 Tiny RTC I2C et LCD 20x4

#include <Wire.h>
#include "RTClib.h"
RTC_DS1307 RTC;

#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4);  // set the LCD address to 0x27 20 caracteres et 4 lignes ecran
//SCL(jaune) = A5
//SDA(vert)  = A4
//Alim en 5V
//Masse


void setup () {
  Serial.begin(9600); //Initialiser le port serie
  Wire.begin();       //Initialiser la bibliotheque Wire
  RTC.begin();        //Initialiser le module RTC
  //Verifier si le module RTC fonctionne, sinon nous envoyons Erreur
  if (! RTC.isrunning()) {
    Serial.println("RTC ne fonctionne pas!");
    //Enlever le commentaire de la ligne suivante, pour mettre le module a l'heure du PC
    //RTC.adjust(DateTime(__DATE__, __TIME__));
  }

  lcd.init();          // Initialiser le lcd
  lcd.init();
  lcd.backlight() ;     
  lcd.setCursor(1,0); 
  lcd.print("Jour =");   //position 0,ligne 0
  lcd.setCursor(1,1); 
  lcd.print("Date =");   //position 0,ligne 1
  lcd.setCursor(0,2); 
  lcd.print("Heure =");  //position 0,ligne 2
  lcd.setCursor(4,3); 
  lcd.print(".....");    //position 4,ligne 3
}
void loop () {
  DateTime now = RTC.now();
  if (now.day() < 10){Serial.print("0");}
  Serial.print(now.day(), DEC);Serial.print('/'); //Imprimer Jour et barre

  if (now.month() < 10){Serial.print("0");}
  Serial.print(now.month(), DEC);Serial.print('/'); //Imprimer mois et barre

  Serial.print(now.year(), DEC);Serial.print(' '); //Imprimer annee et espace

  if (now.hour() < 10){Serial.print("0");}
  Serial.print(now.hour(), DEC);  Serial.print(':'); //Imprimer heure et :

  if (now.minute() < 10){Serial.print("0");}
  Serial.print(now.minute(), DEC);Serial.print(':');//Imprimer minute et :

  if (now.second() < 10){Serial.print("0");}
  Serial.print(now.second(), DEC);Serial.println(); //Imprimer seconde et saut de ligne

  delay(5000);  //Delay de 5s entre les envoies ecran
  EnvoiDate ();
}

void EnvoiDate() {
  DateTime now = RTC.now();
  lcd.setCursor(8,0); //Envoi LCD Jour
  switch (now.dayOfWeek()) {
  case 1:
   lcd.print("Lundi"); 
   break;
  case 2:
   lcd.print("Mardi");
   break; 
  case 3:
   lcd.print("Mercredi");
   break;  
  case 4:
   lcd.print("Jeudi");
   break;  
  case 5:
   lcd.print("Vendredi ");
   break;  
  case 6:
   lcd.print("Samedi");
   break;  
  case 7:
   lcd.print("Dimanche");
   break;  
 }
  
  lcd.setCursor(8,1); //Envoi LCD Jour et barre
  if (now.day() < 10){lcd.print("0");}  lcd.print(now.day(),DEC);  lcd.setCursor(10,1);  lcd.print('/');   

  lcd.setCursor(11,1); //Envoi LCD mois et barre
  if (now.month() < 10){lcd.print("0");}  lcd.print(now.month(),DEC);  lcd.setCursor(13,1);  lcd.print('/');

  lcd.setCursor(14,1);//Envoi LCD annee
  lcd.print(now.year(),DEC);

  lcd.setCursor(8,2); //Envoi LCD heure et :
  if (now.hour() < 10){lcd.print("0");}  lcd.print(now.hour(),DEC);  lcd.setCursor(10,2);  lcd.print(':');  

  lcd.setCursor(11,2);//Envoi LCD minute et :
  if (now.minute() < 10){lcd.print("0");}  lcd.print(now.minute(),DEC);  lcd.setCursor(13,2);  lcd.print(':');   

  lcd.setCursor(14,2);//Envoi LCD second
  if (now.second() < 10){lcd.print("0");}  lcd.print(now.second(),DEC); 
}