Advertisement
Conssty

Untitled

Apr 8th, 2024
518
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.10 KB | Source Code | 0 0
  1. #include <DS3231.h>
  2. #include <LiquidCrystal_I2C.h>
  3. LiquidCrystal_I2C lcd(0x27, 16, 2);
  4. DS3231 rtc;
  5.  
  6. bool mode12 = false;
  7. byte theSecond = 55;
  8. byte theMinute = 01;
  9. byte theHour = 20;
  10. byte theWday = 0;
  11. byte theDate = 8;
  12. byte theMonth = 3;
  13. byte theYear = 24;
  14.  
  15. bool h12;
  16. bool hPM;
  17. bool CenturyBit;
  18. char* myWday[] = { "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" };
  19. char* myMonth[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
  20.                     "Aug", "Sep", "Oct", "Nov", "Dec" };
  21.  
  22. void setup() {
  23.   Serial.begin(9600);
  24.   lcd.init();
  25.   lcd.backlight();
  26.   rtc.setClockMode(mode12);
  27.   rtc.setSecond(theSecond);
  28.   rtc.setMinute(theMinute);
  29.   rtc.setHour(theHour);
  30.   rtc.setDoW(theWday);
  31.   rtc.setDate(theDate);
  32.   rtc.setMonth(theMonth);
  33.   rtc.setYear(theYear);
  34. }
  35.  
  36. void loop() {
  37.  
  38.   byte cnt_S = rtc.getSecond() % 2;
  39.   byte myHH = rtc.getHour(h12, hPM);
  40.   byte myMM = rtc.getMinute();
  41.   byte mySS = rtc.getSecond();
  42.   byte myDW = rtc.getDoW();
  43.   byte myDD = rtc.getDate();
  44.   byte myMT = rtc.getMonth(CenturyBit);
  45.   byte myYY = rtc.getYear();
  46.   float lcdTemp;
  47.   float rtcTemp = rtc.getTemperature();
  48.   if (rtcTemp > -9999) {
  49.     lcdTemp = rtcTemp;  // it may be OK to use the returned value
  50.   } else {
  51.     lcdTemp = 0;        // the value returned is not valid
  52.   }
  53.  
  54.   lcd.setCursor(0, 1);
  55.   for (myDW;;) {
  56.     lcd.print(myWday[myDW]);
  57.     break;
  58.   }
  59.   lcd.print(char(144));
  60.   if (myDD < 10) { lcd.print('0'); }
  61.   lcd.print(myDD);
  62.   lcd.print(char(144));
  63.   for (myMT;;) {
  64.     lcd.print(myMonth[myMT]);
  65.     break;
  66.   }
  67.   lcd.print(char(144));
  68.   lcd.print("20");
  69.   lcd.print(myYY);
  70.   lcd.setCursor(0, 0);
  71.   if (myHH < 10) { lcd.print(0); }
  72.   lcd.print(myHH);
  73.   if (cnt_S < 1) { lcd.print(':'); }
  74.   if (cnt_S > 0) { lcd.print(char(165)); }
  75.   if (myMM < 10) { lcd.print(0); }
  76.   lcd.print(myMM);
  77.   if (cnt_S < 1) { lcd.print(':'); }
  78.   if (cnt_S > 0) { lcd.print(char(165)); }
  79.   if (mySS < 10) { lcd.print(0); }
  80.   lcd.print(mySS);
  81.   if (mySS > 10) { lcd.print(char(144)); }
  82.   lcd.setCursor(9, 0);
  83.   lcd.print(lcdTemp);
  84.   lcd.print(char('C'));
  85.   lcd.print(char(223));
  86. }
  87.  
Tags: Arduino DS3231
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement