J'ai un petit problème avec mon Arduino Uno r3.
J'ai un un RTC DS1307 ainsi qu'un Hitachi HD 44780 en Adafruit RGB.
J'ai déja flashé l'horloge et son affichage sur le LCD,mais ce dernier ne marche pas correctement : J'ai un système " JJ/MM/AAAA HH/MM ",sauf que quand on passe à l'heure d'après,pendant les 10 minutes qui suivent,le 9 du " 59 Minutes " reste.
Un moyen de m'aider,par hasard ?
Les secondes ne sont pas affichées car cela prendrait trop de place pour le moment.
Le programme :
// Date and time functions using a DS1307 RTC connected via I2C and Wire lib
#include <Wire.h>
#include "RTClib.h"
#include <Adafruit_MCP23017.h>
#include <Adafruit_RGBLCDShield.h>
Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
RTC_DS1307 rtc;
void setup ()
{
Serial.begin(9600);
Wire.begin();
lcd.begin(16,2);
lcd.setBacklight(0x07);
rtc.begin();
if (! rtc.isrunning()) {
Serial.println("RTC is NOT running!");
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(__DATE__, __TIME__));
}
}
void loop ()
{
DateTime now = rtc.now();
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
Serial.print(' ');
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.println();
lcd.setCursor(0, 0);
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.year(), DEC);
lcd.print(' ');
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.minute(), DEC);
//lcd.print(':');
//lcd.print(now.second(), DEC);
delay(2000);
}
JackySandvich:
J'ai un petit problème avec mon Arduino Uno r3.
J'ai un un RTC DS1307 ainsi qu'un Hitachi HD 44780 en Adafruit RGB.
J'ai déja flashé l'horloge et son affichage sur le LCD,mais ce dernier ne marche pas correctement : J'ai un système " JJ/MM/AAAA HH/MM ",sauf que quand on passe à l'heure d'après,pendant les 10 minutes qui suivent,le 9 du " 59 Minutes " reste.
Un moyen de m'aider,par hasard ?
Les secondes ne sont pas affichées car cela prendrait trop de place pour le moment.
bonjour
surement un probleme de positionnement de curseur
entre 0 et 9 minutes le LCD affiche les minutes sur une seule position sans effacer le 9 de 59 minutes
en theorie tu devrais avoir le meme probleme avec les heures entre 0 et 9
pas beau , mais juste pour test essaye
lcd.setCursor(0, 0);
lcd.print(" "); // pour test
lcd.setCursor(0, 0); // pour test
lcd.print(now.day(), DEC);
lcd.print('/');
lcd.print(now.month(), DEC);
lcd.print('/');
lcd.print(now.year(), DEC);
lcd.print(' ');
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.minute(), DEC);
//lcd.print(':');
//lcd.print(now.second(), DEC);
delay(2000);
}
Tu auras le même problème avec le jour et le mois lorsqu'il seront inférieur à 10.
Tu devrais ajouter une petite fonction à laquelle tu passerais en argument le nombre à afficher et qui te retournerait une chaîne de caractères correctement formatée (ajout du zéro en tête si <10)