• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Homemade Circuit Projects

Get free circuit help 24/7

  • 1000+ Circuits
  • Privacy Policy
  • About Us
  • Contact
  • Disclaimer
  • Videos – Circuit Test Results
You are here: Home / Arduino Engineering Projects / Digital Clock Circuit Using 16×2 LCD Display

Digital Clock Circuit Using 16×2 LCD Display

Last Updated on August 9, 2019 by Swagatam

The post explains how to make a simple digital clock using Arduino and a 16 x 2 LCD display.

Introduction

As an electronics enthusiast at a stage we would have thought, how to make a digital clock, especially who are interested in the field of digital electronics. In this article we are going to see how to make a digital clock and the design is so simple that a noob in Arduino can accomplish the project without any head ache.

This digital clock has just two main components, the Arduino and LCD display. The Arduino is the brain of the clock, which does mathematical and logical functions to updates the clock every second.

Prototype Image:

wire connection between the LCD and Arduino

The LCD screen is a standard 16 pin interfaced display. It has 16 rows and 2 columns, this means it can display 16 ASCII character in a row and it has two columns and that’s why it is called 16x2 display.

The wire connection between the LCD and Arduino is standard and we can find the similar kind of connections in most of the other Arduino-LCD based projects.

The potentiometer is used to adjust the contrast of the display.

The user must set this optimally so that the user can see the displayed digits/characters properly under all light situations.

There is backlight which enables the user to see the display during dark situation. The arduino can be powered externally from DC jack from 7 volt to 12 volt.

Circuit diagram:

potentiometer is used to adjust the contrast of the display.

ARDUINO PROGRAM CODE:

//-------- Program developed by R.GIRISH-------//
#include <LiquidCrystal.h>
LiquidCrystal lcd(12,11,5,4,3,2);
int h=12;
int m;
int s;
int flag;
int TIME;
const int hs=8;
const int ms=9;
int state1;
int state2;
void setup()
{
lcd.begin(16,2);
}
void loop()
{
lcd.setCursor(0,0);
s=s+1;
lcd.print("TIME:" );
lcd.print(h);
lcd.print(":");
lcd.print(m);
lcd.print(":");
lcd.print(s);
if(flag<12) lcd.print(" AM");
if(flag==12) lcd.print(" PM");
if(flag>12) lcd.print(" PM");
if(flag==24) flag=0;
delay(1000);
lcd.clear();
if(s==60) {
s=0;
m=m+1;
}
if(m==60)
{
m=0;
h=h+1;
flag=flag+1;
}
if(h==13)
{
h=1;
}
lcd.setCursor(0,1);
lcd.print("HAVE A NICE DAY");
//-----------Time setting----------//
state1=digitalRead(hs);
if(state1==1)
{
h=h+1;
flag=flag+1;
if(flag<12) lcd.print(" AM");
if(flag==12) lcd.print(" PM");
if(flag>12) lcd.print(" PM");
if(flag==24) flag=0;
if(h==13) h=1;
}
state2=digitalRead(ms);
if(state2==1) {
s=0;
m=m+1;
}
}
//-------- Program developed by R.GIRISH-------//

NOTE: The above program is verified and error free. In case you got any warning or error, please add the LiquidCrystal library manually.

Time setting:

There are two push button one for setting hours and another for setting for minutes. Pressing either one will increment the corresponding digits. For setting hours press hrs the button till the correct time displays, similarly for minutes.

NOTE:

· While setting time the keep the button depressed till the desired time reaches. Pressing the button momentarily may not change the time.

· Each digit gets incremented only second after second, this is because the whole loop of the program delayed for 1 second.

· The seconds’ digit goes from 01 to 60 and loops again and won’t display “00” as traditional digital clock does.




Previous: Solar Inverter for 1.5 Ton Air Conditioner
Next: Simple Vertical Axis Wind Turbine Generator Circuit

About Swagatam

I am an electronic engineer (dipIETE ), hobbyist, inventor, schematic/PCB designer, manufacturer. I am also the founder of the website: https://www.homemade-circuits.com/, where I love sharing my innovative circuit ideas and tutorials.
If you have any circuit related query, you may interact through comments, I'll be most happy to help!

You'll also like:

  • 1.  Controlling LED Strip Light ON/OFF and Brightness with any Remote Control
  • 2.  Arduino PWM Signal Generator Circuit
  • 3.  ATmega32, Pinouts Explained
  • 4.  How to Make Arduino on Breadboard – Step by Step Instructions
  • 5.  Introduction to RGB Colour sensor TCS3200
  • 6.  Interfacing SD Card Module for Data Logging

Please Subscribe (Only if you are Genuinely Interested in our Newsletters)


 

Reader Interactions

Comments

  1. Search Related Posts for Commenting

  2. Sayantan says

    I want to add alarm features to this project .What will be the complete program code for that ?

    • Swag says

      designing customized codes will require a fee to be paid for the service

  3. Basanta Panigrahy says

    Sir can you send sketch for multi function ledchaser 12 channel

  4. Kaushik Mb says

    dude the time lags for about 10mins a day, so for a week its about an hour slow…

    • GR says

      Hi kaushik,

      The time lag is due to the ceramic based resonator in the ATmega328P, the delay function is independent of the crystal. It varies with ambient temperature, but we can compensate it by adding few millisecond to delay function, for example try delay(1050); instead of delay(1000); calculate the time lag and add few milliseconds.

      If your clock leads the time try reducing delay.

      Regards

    • Kaushik Mb says

      Thanks for the reply GR, due to the time lag problem, i purchased an RTC DS1307 IC, i still dint try with it. Hope it works well…



  5. COMMENT BOX IS MOVED AT THE TOP


Primary Sidebar

Electronic Projects Categories

  • 3-Phase Power (15)
  • 324 IC Circuits (19)
  • 4017 IC Circuits (51)
  • 4060 IC Circuits (25)
  • 555 IC Circuits (92)
  • 741 IC Circuits (18)
  • Amplifiers (49)
  • Arduino Engineering Projects (82)
  • Audio Projects (84)
  • Battery Chargers (75)
  • Car and Motorcycle (87)
  • Datasheets (45)
  • Decorative Lighting (Diwali, Christmas) (31)
  • DIY LED Projects (81)
  • Electronic Components (97)
  • Electronic Devices and Circuit Theory (35)
  • Electronics Tutorial (99)
  • Fish Aquarium (5)
  • Free Energy (34)
  • Games (2)
  • GSM Projects (9)
  • Health Related (17)
  • Heater Controllers (23)
  • Home Electrical Circuits (98)
  • Incubator Related (6)
  • Industrial Electronics (26)
  • Infrared (IR) (39)
  • Inverter Circuits (94)
  • Laser Projects (10)
  • LM317/LM338 (21)
  • LM3915 IC (24)
  • Meters and Testers (54)
  • Mini Projects (153)
  • Motor Controller (64)
  • MPPT (7)
  • Oscillator Circuits (12)
  • PIR (Passive Infrared) (8)
  • Power Electronics (33)
  • Power Supply Circuits (66)
  • Radio Circuits (9)
  • Remote Control (46)
  • Security and Alarm (56)
  • Sensors and Detectors (115)
  • SG3525 IC (5)
  • Simple Circuits (72)
  • SMPS (30)
  • Solar Controllers (60)
  • Timer and Delay Relay (51)
  • TL494 IC (5)
  • Transformerless Power Supply (8)
  • Transmitter Circuits (38)
  • Ultrasonic Projects (12)
  • Water Level Controller (45)

Follow Homemade Circuits

Facebook
Twitter
YouTube
Instagram
My Facebook-Page
Quora

Feeds

Post RSS
Comment RSS

Circuit Calculators

  • AWG to Millimeter Converter
  • Battery Back up Time Calculator
  • Capacitance Reactance Calculator
  • IC 555 Astable Calculator
  • IC 555 Monostable Calculator
  • Inductance Calculator
  • LC Resonance Calculator
  • LM317, LM338, LM396 Calculator
  • Ohm’s Law Calculator
  • Phase Angle Phase Shift Calculator
  • Power Factor (PF) Calculator
  • Reactance Calculator
  • Small Signal Transistor(BJT) and Diode Quick Datasheet
  • Transistor Astable Calculator
  • Transistor base Resistor Calculator
  • Voltage Divider Calculator
  • Wire Current Calculator
  • Zener Diode Calculator

© 2021 · Swagatam Innovations