Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //include necessary library
- #include <WiFi.h> // WiFi library for network
- #include <TimeLib.h> // Time library for time
- #include <NtpClientLib.h> // NTP Client library fot network time
- //define pin in/out
- #define b 0 //b segment
- #define a 2 //a segment
- #define f 4 //f segment
- #define g 5 //g segment
- #define c 12 //c segment
- #define d 13 //d segment
- #define e 14 //e segment
- #define d1 15 //1st digit
- #define d2 16 //2nd digit
- #define d3 17 //3rd digit
- #define d4 18 //4th digit
- //declaring variables and constants
- const char* ssid = "Your_WiFi_SSID"; // wifi SSD
- const char* password = "WiFi_Password"; // wifi password
- String NTPServer = "NTP_Server"; // NTP server address
- int8_t minutesTimeZone = 0;
- int8_t timeZone = 1; // timezone in central europe (hour)
- String hour1, hour2, minute1, minute2, timer, number;
- byte digit = 1; //digit (display counter)
- void setup() {
- Serial.begin(115200); //initilaising serial port for debug
- WiFi.begin(ssid, password); //initialize WiFi
- Serial.print("Connecting to Wifi:"); //show connecting status on debug port
- while (WiFi.status() != WL_CONNECTED) {
- delay(500);
- Serial.print(".");
- }
- Serial.print("Connected!!!");
- NTP.begin (NTPServer, timeZone, true, minutesTimeZone); // initialize NTP
- NTP.setInterval (1200); // sync interval
- //set pin to output
- pinMode(a, OUTPUT);
- pinMode(b, OUTPUT);
- pinMode(c, OUTPUT);
- pinMode(d, OUTPUT);
- pinMode(e, OUTPUT);
- pinMode(f, OUTPUT);
- pinMode(g, OUTPUT);
- pinMode(d1, OUTPUT);
- pinMode(d2, OUTPUT);
- pinMode(d3, OUTPUT);
- pinMode(d4, OUTPUT);
- }
- void loop () //entering to loop
- {
- timer = NTP.getTimeDateString (); //get current time
- hour1 = (timer.substring(0,1)); //parsing from data hour 1st digit
- hour2 = (timer.substring(1,2)); //parsing from data hour 2nd digit
- minute1 = (timer.substring(3,4)); //parsing from data minute 1st digit
- minute2 = (timer.substring(4,5)); //parsing from data minute 2nd digit
- if (digit == 1) //if digit(display) is 1, then set 1st digit active other inactive
- {
- digitalWrite(d1,HIGH);
- digitalWrite(d2,LOW);
- digitalWrite(d3,LOW);
- digitalWrite(d4,LOW);
- number = hour1;
- displaydigit(); //call seven segment driver
- }
- if (digit == 2) //if digit(display) is 2, then set 2nd digit active other inactive
- {
- digitalWrite(d1,LOW);
- digitalWrite(d2,HIGH);
- digitalWrite(d3,LOW);
- digitalWrite(d4,LOW);
- number = hour2;
- displaydigit(); //call seven segment driver
- }
- if (digit == 3) //if digit(display) is 3, then set 3rd digit active other inactive
- {
- digitalWrite(d1,LOW);
- digitalWrite(d2,LOW);
- digitalWrite(d3,HIGH);
- digitalWrite(d4,LOW);
- number = minute1;
- displaydigit(); //call seven segment driver
- }
- if (digit == 4) //if digit(display) is 4, then set 4nd digit active other inactive
- {
- digitalWrite(d1,LOW);
- digitalWrite(d2,LOW);
- digitalWrite(d3,LOW);
- digitalWrite(d4,HIGH);
- number = minute2;
- displaydigit(); //call seven segment driver
- digit=0; //reset digit(display) counter
- }
- digit = digit+1; //increasing digit(display)counter
- }
- void displaydigit() //seven segment driver
- {
- if (number == "0" & digit == 1 ) //no displaying 0(zero) if first digit is 0 (expample: morning 08:42)
- {
- digitalWrite(a,LOW);
- digitalWrite(b,LOW);
- digitalWrite(c,LOW);
- digitalWrite(d,LOW);
- digitalWrite(e,LOW);
- digitalWrite(f,LOW);
- digitalWrite(g,LOW);
- }
- if (number == "0" & digit > 1 ) //else display 0(zero)
- {
- digitalWrite(a,HIGH);
- digitalWrite(b,HIGH);
- digitalWrite(c,HIGH);
- digitalWrite(d,HIGH);
- digitalWrite(e,HIGH);
- digitalWrite(f,HIGH);
- digitalWrite(g,LOW);
- }
- if (number == "1")
- {
- digitalWrite(a,LOW);
- digitalWrite(b,HIGH);
- digitalWrite(c,HIGH);
- digitalWrite(d,LOW);
- digitalWrite(e,LOW);
- digitalWrite(f,LOW);
- digitalWrite(g,LOW);
- }
- if (number == "2")
- {
- digitalWrite(a,HIGH);
- digitalWrite(b,HIGH);
- digitalWrite(c,LOW);
- digitalWrite(d,HIGH);
- digitalWrite(e,HIGH);
- digitalWrite(f,LOW);
- digitalWrite(g,HIGH);
- }
- if (number == "3")
- {
- digitalWrite(a,HIGH);
- digitalWrite(b,HIGH);
- digitalWrite(c,HIGH);
- digitalWrite(d,HIGH);
- digitalWrite(e,LOW);
- digitalWrite(f,LOW);
- digitalWrite(g,HIGH);
- }
- if (number == "4")
- {
- digitalWrite(a,LOW);
- digitalWrite(b,HIGH);
- digitalWrite(c,HIGH);
- digitalWrite(d,LOW);
- digitalWrite(e,LOW);
- digitalWrite(f,HIGH);
- digitalWrite(g,HIGH);
- }
- if (number == "5")
- {
- digitalWrite(a,HIGH);
- digitalWrite(b,LOW);
- digitalWrite(c,HIGH);
- digitalWrite(d,HIGH);
- digitalWrite(e,LOW);
- digitalWrite(f,HIGH);
- digitalWrite(g,HIGH);
- }
- if (number == "6")
- {
- digitalWrite(a,HIGH);
- digitalWrite(b,LOW);
- digitalWrite(c,HIGH);
- digitalWrite(d,HIGH);
- digitalWrite(e,HIGH);
- digitalWrite(f,HIGH);
- digitalWrite(g,HIGH);
- }
- if (number == "7")
- {
- digitalWrite(a,HIGH);
- digitalWrite(b,HIGH);
- digitalWrite(c,HIGH);
- digitalWrite(d,LOW);
- digitalWrite(e,LOW);
- digitalWrite(f,LOW);
- digitalWrite(g,LOW);
- }
- if (number == "8")
- {
- digitalWrite(a,HIGH);
- digitalWrite(b,HIGH);
- digitalWrite(c,HIGH);
- digitalWrite(d,HIGH);
- digitalWrite(e,HIGH);
- digitalWrite(f,HIGH);
- digitalWrite(g,HIGH);
- }
- if (number == "9")
- {
- digitalWrite(a,HIGH);
- digitalWrite(b,HIGH);
- digitalWrite(c,HIGH);
- digitalWrite(d,HIGH);
- digitalWrite(e,LOW);
- digitalWrite(f,HIGH);
- digitalWrite(g,HIGH);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement