Normal digital clock use RTC chip or manual setting.
Problem is RTC needs drift and reset.
But here Arduino Based GPS Digital Clock Circuit solves the problem.
GPS talk with satellite and always give exact time.
Arduino read GPS time and show on LCD.
So clock is never wrong, as it always auto update from sky.
Circuit Coding:
#include <LiquidCrystal.h>
#include <TinyGPS.h>
LiquidCrystal lcd(7,6,5,4,3,2);
TinyGPS gps;
void setup(){
lcd.begin(16,2);
Serial.begin(9600);
}
void loop(){
while(Serial.available()>0){
if(gps.encode(Serial.read())){
int hour, minute, second;
unsigned long date, time;
gps.get_datetime(&date,&time,0);
hour = (time/1000000);
minute = (time%1000000)/10000;
second = (time%10000)/100;
lcd.setCursor(0,0);
lcd.print("Time: ");
lcd.print(hour);
lcd.print(":");
lcd.print(minute);
lcd.print(":");
lcd.print(second);
}
}
}
Coding Explanation:
- LiquidCrystal library control LCD.
- TinyGPS library decode GPS data.
- Serial begin connect Arduino with GPS.
- gps.get_datetime give UTC date and time.
- Time data gets separated into hour minute second.
- LCD print values on display.
Circuit Working:
Parts List:
Component | Quantity |
---|---|
Arduino Uno | 1 |
GPS Module | 1 |
LCD Display 16×2 | 1 |
Potentiometer 1k | 1 |
Circuit working is quite simple.
Arduino controls the full process.
GPS module sends data from satellite to Arduino.
GPS receive signal from satellite.
It send NMEA data string to Arduino.
Arduino read using serial.
TinyGPS decode and extract date and time.
Arduino print hour minute second on LCD.
Output is digital clock which is always correct with GPS.
Formulas:
Formula for GPS Digital Clock Circuit is shown below:
Time = UTC from GPS satellites.
hour = time/1000000
minute = (time%1000000)/10000
second = (time%10000)/100
Example if time = 15230500
hour = 15
minute = 23
second = 05
How to Build:
To build a Arduino Based GPS Digital Clock Circuit follow the below mentioned connection steps:
- Take all the parts as per the circuit diagram above.
- GPS Module pin GND goes to Arduino GND.
- GPS Vcc pin go to Arduino 5V.
- GPS Tx pin go to Arduino Rx pin 0.
- GPS Rx pin is not used.
- LCD pin 1 GND pin go to GND of Arduino.
- LCD pin 2 VCC go to +5V Arduino.
- LCD pin 3 Contrast go to middle pin of 1k pot VR1, one end go to 5V and other to GND.
- LCD pin 4 RS connect to Arduino D7.
- LCD pin 5 RW connect to GND of Arduino.
- LCD pin 6 EN connect to Arduino D6.
- LCD pin 11 D4 connect to Arduino D5.
- LCD pin 12 D5 connect to Arduino D4.
- LCD pin 13 D6 connect to Arduino D3.
- LCD pin 14 D7 connect to Arduino D2.
- LCD pin 15 LED+ connect to +5V.
- LCD pin 16 LED- go to GND of Arduino.
Conclusion:
Arduino Based GPS Digital Clock Circuit project is simple and accurate.
No RTC module is required.
Clock gets auto adjust from satellite.
Circuit is useful for time based projects.
It is low cost and easy to build.