- Lesson 99-1: Basic clock on Serial monitor using DS3231 with Arduino
- Lesson 99-2: Using Alarm with buzzer and LED with DS3231 RTC with Arduino
- Lesson 99-3: Building LCD Clock Using DS3231 with Arduino
- Lesson 99-4: Building LED 4 digit clock using Arduino and HT16K33 Display -code 1
- Lesson 99-5: Building LED 4 digit clock using Arduino and HT16K33 Display -code 2
- Lesson 99-6: Unlinmited Alarms with DS3231 and Ardino
Lesson 99: Real-Time Cloick DS3231 to build LCD and LED Clock
Lesson 99: Real-Time Cloick DS3231 to build LCD and LED Clock
Please select other codes for this lecture from the links below.
Related or required files and link to this lesson
- Download LCD Library (zip)
- I2C Scanner Arduino Code to find I2C Address
- Purchase HT16K33 4 Digit LED display from Amazon USA
- Purchase HT16K33 4 Digit LED display from Amazon Canada
- Purchase HT16K33 4 Digit LED display from all other Amazon
- Purchase HT16K33 4 Digit LED display from AliExpress
- Purchase HT16K33 4 Digit LED display from AliExpress
- Purchase LCD1602 from Amazon USA
- Purchase LCD1602 from Amazon Canada
- Purchase LCD1602 from all other Amazon
- Purchase LCD1602 from AliExpress
Part 13: Clock and Timers
This code (99-6) is part of a lesson on Usiung DS3231 RTC clock module to using the Alarm features with Arduino. Using this code we can create unlimited Alarms. We've used a push button to reset the alarm when the alrm is triggered. Please watch video for full details.
- 00:00 Introduction
- 04:11 DS3231 Datasheet
- 05:07 DS3231 Wiring
- 06:38 Simple DS3231 Clock code and library
- 10:05 DS3231 Code using Alarm
- 14:07 Running DS3231 Clock code demonstration
- 17:49 Alarm Buzzer and LED wiring for DS3231, code and demo
- 22:21 LCD Clock using DS3231
- 23:57 LCD Clock Code for Arduino
- 28:43 Building Unlimited Alarm using DS3231 clock module
- 29:38 Unlimited alarm wiring diagram
- 31:29 DS3231 using Alarm with relay and AC bulb wiring
- 31:59 DS3231 Unlimited Alarm Arduino code
- 34:38 Demonstration of Unlimited Alarm with reset push button
- 35:40 LED Clock using DS3231 and HT16K33
- 38:45 LED Clock code explained
- 50:38 LED Clock Demonstration and settings
/*
* Lesson 99: LCD Clock using Arudino and DS3231 RTC module
* Full video details: https://youtu.be/LEQfzmO9Wm0
* In this lesson we have the following codes:
* -Basic DS3231 to display on serial monitor
* -Using Larm feature of the DS3231
* -LCD Clock
* -4 Digit LED Clock
* -Unlimited Alarms using DS3231 with reset push button
*
*
* This code is part of Arduino Step by Step Course which starts here: https://youtu.be/-6qSrDUA5a8
*
* for library of this code visit http://robojax.com/
*
If you found this tutorial helpful, please support me so I can continue creating
content like this. Make a donation using PayPal by credit card https://bit.ly/donate-robojax
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.*
* This code has been download from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/
#include <DS3231.h>
DS3231 clock;
RTCDateTime robojax;
char daysOfTheWeek[7][12] = {
"Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday", "Saturday"};
char monthName[12][12] = {
"January", "February", "March",
"April", "May", "June",
"July", "August", "September",
"October", "November", "December"
};
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x3f, 16, 2);
void setup () {
// Robojax Course Lesson 99 video: https://youtu.be/LEQfzmO9Wm0
while (!Serial); // for Leonardo/Micro/Zero
Serial.begin(9600);
// Initialize DS3231
Serial.println("Initialize DS3231");;
clock.begin();
// Set sketch compiling time
clock.setDateTime(__DATE__, __TIME__);
//set manual time
//clock.setDateTime(2014, 4, 13, 19, 21, 00);
// initialize the LCD
lcd.begin();
// Turn on the blacklight and print a message.
lcd.backlight();
lcd.print("Robojax");
lcd.setCursor (0,1); // go to start of 2nd line
lcd.print("DS3231 Clock");
}
void loop () {
robojax = clock.getDateTime();
// Robojax Course Lesson 99 video: https://youtu.be/LEQfzmO9Wm0
lcd.clear();
lcd.setCursor (0,0);
lcd.print(robojax.day);
lcd.print(" ");
lcd.print(monthName[robojax.month-1]);
lcd.print(" ");
lcd.print(robojax.year);
lcd.setCursor (0,1); // go to start of 2nd line
lcd.print(robojax.hour);
lcd.print(":");
lcd.print(robojax.minute);
lcd.print(":");
lcd.print(robojax.second);
lcd.print(" ");
lcd.print(daysOfTheWeek[robojax.dayOfWeek]);
delay(300);
// Robojax Course Lesson 99 video: https://youtu.be/LEQfzmO9Wm0
}