int sw1=8;
int sw2=9;
int sw3=10;
int sw4=11;
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
#include <Wire.h>
const int DS1307 = 0x68; // Address of DS1307 see data sheets
const char* days[] =
{“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”};
const char* months[] =
//{“January”, “February”, “March”, “April”, “May”, “June”, “July”, “August”,”September”, “October”, “November”, “December”};
{“Jan”, “Feb”, “March”, “April”, “May”, “June”, “July”, “August”,”Septem”, “Octobe”, “Novem”, “Decemb”};
// Initializes all values:
byte second = 0;
byte minute = 0;
byte hour = 0;
byte weekday = 0;
byte monthday = 0;
byte month = 0;
byte year = 0;
void setup() {
Wire.begin();
lcd.begin(16, 2);
pinMode(sw1, INPUT_PULLUP);
pinMode(sw2, INPUT_PULLUP);
pinMode(sw3, INPUT_PULLUP);
pinMode(sw4, INPUT_PULLUP);
if(digitalRead(sw1) == LOW){
delay(100);
}
Serial.begin(9600);
delay(2000); // This delay allows the MCU to read the current date and time.
Serial.print(“The current date and time is: “);
printTime();
Serial.println(“Please change to newline ending the settings on the lower right of the Serial Monitor”);
Serial.println(“Would you like to set the date and time now? Y/N”);
/*
while (!Serial.available()) delay(10);
if (Serial.read() == ‘y’ || Serial.read() == ‘Y’)
// This set of functions allows the user to change the date and time
{
Serial.read();
setTime();
Serial.print(“The current date and time is now: “);
printTime();
}
*/
Serial.println(“Thank you.”);
}
// Continuous function for converting bytes to decimals and vice versa
void loop() {
printTime();
delay(500);
chk();
}
void chk(){
if(digitalRead(sw1) == LOW){
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(“enter year setting”);
delay(500);
while(digitalRead(sw1) == LOW){delay(500); }
while(digitalRead(sw1) == HIGH){delay(500);
if(digitalRead(sw2) == LOW){
year++;
lcd.setCursor(10, 1);
lcd.print(year);
delay(300);
}
if(digitalRead(sw3) == LOW){
year–;lcd.setCursor(10, 1);
lcd.print(year);delay(300);
}}
lcd.clear(); delay(300);
///*
lcd.clear(); lcd.setCursor(0, 0);
lcd.print(“enter month”);delay(500);
while(digitalRead(sw1) == LOW){delay(500); }
while(digitalRead(sw1) == HIGH){delay(300);
if(digitalRead(sw2) == LOW){
lcd.setCursor(6, 1);
lcd.print(” “);
month++; lcd.setCursor(6, 1);
lcd.print(months[month-1]);delay(100);
}
if(digitalRead(sw3) == LOW){
month–;
lcd.setCursor(6, 1); lcd.print(” “);
lcd.setCursor(6, 1);
lcd.print(months[month-1]);delay(100);
}}
lcd.clear(); delay(300);
lcd.clear(); lcd.setCursor(0, 0);
lcd.print(“enter date”);delay(500);
while(digitalRead(sw1) == LOW){delay(500); }
while(digitalRead(sw1) == HIGH){delay(300);
if(digitalRead(sw2) == LOW){
lcd.setCursor(6, 1);
lcd.print(” “);
monthday++; lcd.setCursor(6, 1);
lcd.print(monthday);delay(100);
}
if(digitalRead(sw3) == LOW){
monthday–;
lcd.setCursor(6, 1); lcd.print(” “);
lcd.setCursor(6, 1);
lcd.print(monthday);delay(100);
}}
lcd.clear(); lcd.setCursor(0, 0);
lcd.print(“enter day”);delay(500);
while(digitalRead(sw1) == LOW){delay(500); }
while(digitalRead(sw1) == HIGH){delay(300);
if(digitalRead(sw2) == LOW){
lcd.setCursor(6, 1);
lcd.print(” “);
weekday++; lcd.setCursor(6, 1);
lcd.print(days[weekday-1]);delay(100);
}
if(digitalRead(sw3) == LOW){
weekday–;
lcd.setCursor(6, 1); lcd.print(” “);
lcd.setCursor(6, 1);
lcd.print(days[weekday-1]);delay(100);
}}
lcd.clear(); lcd.setCursor(0, 0);
lcd.print(“enter hour”);delay(500);
while(digitalRead(sw1) == LOW){delay(500); }
while(digitalRead(sw1) == HIGH){delay(300);
if(digitalRead(sw2) == LOW){
lcd.setCursor(6, 1);
lcd.print(” “);
hour++; lcd.setCursor(6, 1);
lcd.print(hour);delay(100);
}
if(digitalRead(sw3) == LOW){
hour–;
lcd.setCursor(6, 1); lcd.print(” “);
lcd.setCursor(6, 1);
lcd.print(hour);delay(100);
}}
lcd.clear(); lcd.setCursor(0, 0);
lcd.print(“enter minute”);delay(500);
while(digitalRead(sw1) == LOW){delay(500); }
while(digitalRead(sw1) == HIGH){delay(300);
if(digitalRead(sw2) == LOW){
lcd.setCursor(6, 1);
lcd.print(” “);
minute++; lcd.setCursor(6, 1);
lcd.print(minute);delay(100);
}
if(digitalRead(sw3) == LOW){
minute–;
lcd.setCursor(6, 1); lcd.print(” “);
lcd.setCursor(6, 1);
lcd.print(minute);delay(100);
}}
second=0;
//*/
// The following codes transmits the data to the RTC
Wire.beginTransmission(DS1307);
Wire.write(byte(0));
Wire.write(decToBcd(second));
Wire.write(decToBcd(minute));
Wire.write(decToBcd(hour));
Wire.write(decToBcd(weekday));
Wire.write(decToBcd(monthday));
Wire.write(decToBcd(month));
Wire.write(decToBcd(year));
Wire.write(byte(0));
Wire.endTransmission();
// Ends transmission of data
}
}
byte decToBcd(byte val) {
return ((val/10*16) + (val%10));
}
byte bcdToDec(byte val) {
return ((val/16*10) + (val%16));
}
// This set of codes is allows input of data
void setTime() {
Serial.print(“Please enter the current year, 00-99. – “);
year = readByte();
Serial.println(year);
Serial.print(“Please enter the current month, 1-12. – “);
month = readByte();
Serial.println(months[month-1]);
Serial.print(“Please enter the current day of the month, 1-31. – “);
monthday = readByte();
Serial.println(monthday);
Serial.println(“Please enter the current day of the week, 1-7.”);
Serial.print(“1 Sun | 2 Mon | 3 Tues | 4 Weds | 5 Thu | 6 Fri | 7 Sat – “);
weekday = readByte();
Serial.println(days[weekday-1]);
Serial.print(“Please enter the current hour in 24hr format, 0-23. – “);
hour = readByte();
Serial.println(hour);
Serial.print(“Please enter the current minute, 0-59. – “);
minute = readByte();
Serial.println(minute);
second = 0;
Serial.println(“The data has been entered.”);
// The following codes transmits the data to the RTC
Wire.beginTransmission(DS1307);
Wire.write(byte(0));
Wire.write(decToBcd(second));
Wire.write(decToBcd(minute));
Wire.write(decToBcd(hour));
Wire.write(decToBcd(weekday));
Wire.write(decToBcd(monthday));
Wire.write(decToBcd(month));
Wire.write(decToBcd(year));
Wire.write(byte(0));
Wire.endTransmission();
// Ends transmission of data
}
byte readByte() {
while (!Serial.available()) delay(10);
byte reading = 0;
byte incomingByte = Serial.read();
while (incomingByte != ‘\n’) {
if (incomingByte >= ‘0’ && incomingByte <= ‘9’)
reading = reading * 10 + (incomingByte – ‘0’);
else;
incomingByte = Serial.read();
}
Serial.flush();
return reading;
}
void printTime() {
char buffer[3];
const char* AMPM = 0;
readTime();
Serial.print(days[weekday-1]);
Serial.print(” “);
Serial.print(months[month-1]);
Serial.print(” “);
Serial.print(monthday);
Serial.print(“, 20”);
Serial.print(year);
Serial.print(” “);
if (hour > 12) {
hour -= 12;
AMPM = ” PM”;
}
else AMPM = ” AM”;
Serial.print(hour);
Serial.print(“y:”);
sprintf(buffer, “%02d”, minute);
Serial.print(buffer);
Serial.println(AMPM);
lcd.setCursor(0, 0);
lcd.print(hour);
lcd.print(“:”);
lcd.print(buffer);
lcd.print(AMPM);
lcd.print(” “);
lcd.print(days[weekday-1]);
lcd.setCursor(0, 1);
lcd.print(monthday);
lcd.print(months[month-1]);
lcd.print(“20”);
lcd.print(year);
}
void readTime() {
Wire.beginTransmission(DS1307);
Wire.write(byte(0));
Wire.endTransmission();
Wire.requestFrom(DS1307, 7);
second = bcdToDec(Wire.read());
minute = bcdToDec(Wire.read());
hour = bcdToDec(Wire.read());
weekday = bcdToDec(Wire.read());
monthday = bcdToDec(Wire.read());
month = bcdToDec(Wire.read());
year = bcdToDec(Wire.read());
}
Wow, awesome blog format! How long have you ever been running a blog for?
you made blogging look easy. The total look of
your web site is magnificent, as neatly as the content material!
You can see similar here sklep
hеllo theгe and thank you for үour info –
І hаᴠe dеfinitely picked ᥙp anytһing
new from гight here. I dіd hߋwever expertise ѕeveral
technical issues սsing this web site, ѕince Ι experienced tⲟ reload tһe site many timeѕ previous to I
could gеt іt to load correctly. І had beеn wondering if үour web host іѕ
OK? Nοt thаt I’m complaining, but sluggish loading instances tіmеs will often affect yoᥙr placement
іn google and can damage yoᥙr һigh-quality
score іf ads and marketing ᴡith Adwords. Αnyway Ι’m adding tһis RSS to my
email and can ⅼooҝ oᥙt foг a lоt mоre of your respective fascinating content.
Ensure that уou update tһіs again soon.
my рage sbobetfix – Nestor –
F᧐r newest іnformation you hɑᴠe to visit the web and on web I found this web
pаge аs a moѕt excellent website for ⅼatest updates.
my blog post :: sbobetame
It’s enormous tһat y᧐u are getting thougһts from
thiѕ post aѕ well as from our dialogue mаde at this place.
Feel free to visit mу web page :: sbobetdoom
Ԍenerally Ӏ do not read post on blogs, however Ι ԝish to say that thіs wrіte-up
very compelled mе to takе a looк at ɑnd do it! Your writing taste һas
been surprised mе. Тhank үoս, ԛuite nice article.
Take а look at mу webpage … ecunderen
Нello it’ѕ me, I am also visiting this web site on a regular basis, this web ρage is іn fact pleasant
ɑnd tһе visitors ɑrе reallү sharing pleasant thoᥙghts.
Review my website: sbobok – http://sbobok.Com –
It’s remarkable in support of me to have
a web page, which is beneficial in favor of my knowledge.
thanks admin
Take a look at my web page: vpn special
Amazing! This blog looks just like my old one! It’s on a totally different topic but it has
pretty much the same page layout and design. Great choice of colors!
Here is my page :: vpn special code
Hello! Do you know if they make any plugins to assist with SEO?
I’m trying to get my website to rank for some targeted keywords but I’m not
seeing very good results. If you know of any please share.
Appreciate it! You can read similar text here: Auto Approve List
Hi! Do you know if they make any plugins to assist with SEO?
I’m trying to get my website to rank for some targeted keywords but I’m not seeing very
good success. If you know of any please share.
Many thanks! I saw similar blog here: AA List
Simply desire to say your article is as astonishing. The clearness to your publish is just great and i can assume you’re knowledgeable in this subject.
Well with your permission allow me to grasp your RSS feed to stay up to date with imminent post.
Thank you 1,000,000 and please keep up the enjoyable work.
My webpage … vpn special
It’s an remarkable post in favor of all the web users; they
will take benefit from it I am sure.
My site; vpn special coupon code 2024
can you buy lisinopril