Arduino UNO met een DS3231 RTC
5 berichten
• Pagina 1 van 1
- wbleijenberg
- Berichten: 2
- Geregistreerd: 11 Jan 2017, 20:27
Arduino UNO met een DS3231 RTC
Beste mensen,
Ik ben helemaal nieuw op het gebied van Arduino en het programmeren daarvan.
Graag zou ik willen dat mijn DS3231 met een Arduino UNO op een LCD 16X2 (4kabels) de tijd aangeeft.
Ik heb al van alles zitten te puzzelen maar ik kom er niet uit.
Heeft iemand voor mij een sketch die lekker werkt of waarbij ik om de tijd goed te zetten gebruik kan maken van push buttons?
Met vriendelijke groet,
Willem
Ik ben helemaal nieuw op het gebied van Arduino en het programmeren daarvan.
Graag zou ik willen dat mijn DS3231 met een Arduino UNO op een LCD 16X2 (4kabels) de tijd aangeeft.
Ik heb al van alles zitten te puzzelen maar ik kom er niet uit.
Heeft iemand voor mij een sketch die lekker werkt of waarbij ik om de tijd goed te zetten gebruik kan maken van push buttons?
Met vriendelijke groet,
Willem
Advertisement
Re: Arduino UNO met een DS3231 RTC
Kun je de tijd opvragen en op de seriële monitor laten zien ?
Kun je iets op het display zetten, bijvoorbeeld "Hallo" ?
Tot zover is het standaard.
Om met knoppen de tijd goed te zetten vergt nogal wat programmeerwerk. Ik weet helaas geen voorbeeld. Meestal wordt de compiler tijd gebruikt om een eerste start te maken.
Kun je iets op het display zetten, bijvoorbeeld "Hallo" ?
Tot zover is het standaard.
Om met knoppen de tijd goed te zetten vergt nogal wat programmeerwerk. Ik weet helaas geen voorbeeld. Meestal wordt de compiler tijd gebruikt om een eerste start te maken.
- Code: Alles selecteren
if(!rtc.initialized())
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
Re: Arduino UNO met een DS3231 RTC
Met wat aanpassingen kan je misschien dit gebruiken
https://create.arduino.cc/projecthub/seeyouu/lcd-with-ds3231-real-time-clock-module-402344
https://create.arduino.cc/projecthub/seeyouu/lcd-with-ds3231-real-time-clock-module-402344
Met vriendelijke groet Arjan
- wbleijenberg
- Berichten: 2
- Geregistreerd: 11 Jan 2017, 20:27
Re: Arduino UNO met een DS3231 RTC
Hallo;
Ben inmiddels al weer een stuk verder.
Van de DS3231 heb ik SDA op A5 aangesloten en de SCL op A4
Ik gebruik ook een 20X4 LCD op basis van I2C, deze zijn gewoon op de Arduino UNO aangesloten
Hieronder staat mijn code.
Ben inmiddels al weer een stuk verder.
Van de DS3231 heb ik SDA op A5 aangesloten en de SCL op A4
Ik gebruik ook een 20X4 LCD op basis van I2C, deze zijn gewoon op de Arduino UNO aangesloten
Hieronder staat mijn code.
- Code: Alles selecteren
// Date and time functions using a DS3231 RTC connected via I2C and Wire lib
#include <Wire.h>
#include "RTClib.h"
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Addr, En, Rw, Rs, d4, d5, d6, d7, backlighpin, polarity
RTC_DS3231 rtc;
char daysOfTheWeek[7][12] = {"Zondag:", "Maandag:", "Dinsadg:", "Woensdag:", "Donderdag:", "Vrijdag:", "Zaterdag:"};
//=====================
void setup () {
lcd.begin(16, 2);
//=====================
#ifndef ESP8266
while (!Serial); // for Leonardo/Micro/Zero
#endif
Serial.begin(9600);
delay(3000); // wait for console opening
if (! rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC lost power, lets set the time!");
// following line sets the RTC to the date & time this sketch was compiled
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
// This line sets the RTC with an explicit date & time, for example to set
// January 21, 2014 at 3am you would call:
// rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}
}
void loop () {
DateTime now = rtc.now();
//==========
lcd.setCursor(0, 0);
lcd.print("Datum:");
//==========
lcd.setCursor(13, 0);
lcd.print(now.year(), DEC);
Serial.print(now.year(), DEC);
Serial.print('/');
lcd.setCursor(11, 0);
lcd.print(now.month(), DEC);
Serial.print(now.month(), DEC);
Serial.print('/');
lcd.setCursor(7, 0);
lcd.print(now.day(), DEC);
Serial.print(now.day(), DEC);
//==========
lcd.setCursor(0, 1);
lcd.print(daysOfTheWeek[now.dayOfTheWeek()]);
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()]);
lcd.setCursor(10, 1);
lcd.print(now.hour(), DEC);
Serial.print(") ");
Serial.print(now.hour(), DEC);
lcd.setCursor(13, 1);
lcd.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
lcd.setCursor(16, 1);
lcd.print(now.second(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.print(" since midnight 1/1/1970 = ");
Serial.print(now.unixtime());
Serial.print("s = ");
Serial.print(now.unixtime() / 86400L);
Serial.println("d");
// calculate a date which is 7 days and 30 seconds into the future
DateTime future (now + TimeSpan(7,12,30,6));
Serial.print(" now + 7d + 30s: ");
Serial.print(future.year(), DEC);
Serial.print('/');
Serial.print(future.month(), DEC);
Serial.print('/');
Serial.print(future.day(), DEC);
Serial.print(' ');
Serial.print(future.hour(), DEC);
Serial.print(':');
Serial.print(future.minute(), DEC);
Serial.print(':');
Serial.print(future.second(), DEC);
Serial.println();
Serial.println();
delay(1000);
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: Arduino UNO met een DS3231 RTC
de functie sprintf() zou wel eens de moeite kunnen zijn om het aantal regels code met meer dan 50% te reduceren
5 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 3 gasten