搜索代码

Lesson 99-6: Unlimited Alarms with DS3231 and Arduino

Lesson 99-6: Unlimited Alarms with DS3231 and Arduino

This code (99-6) is part of a lesson on using the DS3231 RTC clock module to use 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 alarm is triggered. Please watch the video for full details.
420-Lesson 99: Real-Time Clock DS3231 to Build LCD and LED Clock
语言: C++
/*
 * Lesson 99: LCD Clock using Arduino 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 Alarm 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 the 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 or a 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 downloaded 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 backlight 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  
}

|||您可能需要的东西

文件📁

没有可用的文件。