Bonjour
J'aimerais fabrique un réveil avec un arduino mega, un module DS3231, un écran lcd et un buzzer.
En cherchent sur internet j ai trouver ce code :
#include <DS3231.h>
#include <LiquidCrystal.h>
DS3231 rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7);
void setup() {
rtc.begin();
lcd.begin(16,2);
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Time: ");
lcd.print(rtc.getTimeStr());
lcd.setCursor(0,1);
lcd.print("Date: ");
lcd.print(rtc.getDateStr());
delay(1000);
}
en l écran lcd affiche la bonne date et la bonne heure
mais je n arrive pas a faire en sorte que a une certaine heure ( ex 6h30 ) le buzzer sonne.
Avez vous une solution ? Merci.
il est possible qu'il y ait dans les exemples de la bibliothèque que tu utilises un sketch qui fait alarme. Vérifie et tu peux alors t'en inspirer.
Sinon, il y en a un ici, mais c'est peut-être une autre bibliothèque. Tu peux le lire, et l'adapter à ton cas.
merci mais je ni arrive toujours pas :-\
Bonjour,
pour le réveil faire une comparaison entre l'heure minute affiché (rtc.getTimeStr()) et heure minute choisi pour déclencher le buzer dans une autre variable. C'est ce que je ferais. J'ai jamais fait de montage Arduino en mode horloge.
Cdt.
Quelle bibliothèque utilises tu précisément ? Je veux dire, où l'as tu trouvée, quel nom vois tu dans le gestionnaire de bibliothèques, et quelles autres infos (nom du programmeur part exemple, version, etc.)?
j ai trouvais comment faire :
DS3231 rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7);
void setup() {
Serial.begin(9600);
rtc.begin();
lcd.begin(16,2);
}
void loop() {
t = rtc.getTime();
lcd.setCursor(0,0);
lcd.print("Time: ");
lcd.print(rtc.getTimeStr());
lcd.setCursor(0,1);
lcd.print("Date: ");
lcd.print(rtc.getDateStr());
delay(1000);
if (t.hour == 19 && t.min == 35 && t.sec == 00) {
Serial.print(" allarme OK ");
}
}
mais l écran lcd le fait défiler sur la première ligne :-\ :-\
et pour le code et la bibliothèque de basse je l ai trouver grasse a cette vidéo : Arduino DS3231 Real Time Clock and LCD Display - YouTube
ahhhhh
c est bon
lorsque je retire le moniteur série du code l écran lcd redevien normal
DS3231 rtc(SDA, SCL);
LiquidCrystal lcd(1, 2, 4, 5, 6, 7);
void setup() {
rtc.begin();
lcd.begin(16,2);
}
void loop() {
t = rtc.getTime();
lcd.setCursor(0,0);
lcd.print("Time: ");
lcd.print(rtc.getTimeStr());
lcd.setCursor(0,1);
lcd.print("Date: ");
lcd.print(rtc.getDateStr());
delay(1000);
if (t.hour == 19 && t.min == 33 && t.sec == 00) {
// condition
}
}
Oui, ton écran LCD utilise la pin 1 qui sert aussi à la liaison série vers le PC. Utilises en une autre si possible, par exemple la 12 (voir cet exemple)