Check-In and Check-Out System Using Arduino Nano and LCD

by DESHBOT in Circuits > Arduino

30 Views, 0 Favorites, 0 Comments

Check-In and Check-Out System Using Arduino Nano and LCD

WhatsApp Image 2026-09-21 at 10.47.19 AM.jpeg

The objective of this project is to create a simple attendance and check-in/check-out system using an Arduino Nano, a 16×2 LCD, two push buttons, and the Serial Monitor.

The system allows a user to enter their name through the Serial Monitor and then record their check-in and check-out time using two buttons.

Supplies

des 1.jpeg
uno.jpeg
WhatsApp Image 2026-08-25 at 12.00.19 PM.jpeg

Arduino Nano

16×2 LCD Display

2 × Push Buttons (inbuild in shield )

DESHBOT Shield

Jumper Wires

USB Cable

Pin Connection


LCD

LCD PinArduino Nano

RS - A4

EN - A3

D4 - A2

D5 - A1

D6 - A0

D7 - D13

Buttons

ButtonArduino Nano

Check-In - D12

Check-Out - D10

Both buttons use the Arduino's internal pull-up resistors.

Working Principle

WhatsApp Image 2026-09-21 at 10.47.34 AM.jpeg


When the Arduino starts, the LCD displays:

CHECK IN SYSTEM
Enter Name

The user enters their name through the Serial Monitor.

For example:

Enter Name:
Dev

The Arduino saves the name and displays it on the LCD.

Check-In

When the D12 button is pressed:

  1. The user's status becomes checked in.
  2. The LCD displays CHECK IN.
  3. The current time is displayed.
  4. The name, date, and time are sent to the Serial Monitor.

Example:

Dev | CHECK IN | 21/09/2026 09:15:32

Check-Out

When the D10 button is pressed:

  1. The user's status becomes checked out.
  2. The LCD displays CHECK OUT.
  3. The current time is displayed.
  4. The name, date, and time are sent to the Serial Monitor.

Example:

Dev | CHECK OUT | 21/09/2026 17:30:15

Clock System

The project uses the Arduino's millis() function to create a software clock.

The clock keeps track of:

  1. Seconds
  2. Minutes
  3. Hours
  4. Days
  5. Months
  6. Years

The starting date and time can be changed in the code.

For example:

int year = 2026;
int month = 9;
int day = 21;

int hour = 9;
int minute = 0;
int second = 0;

Date System

The program automatically handles the number of days in each month.

It supports:

  1. 28 days in February
  2. 29 days in February during leap years
  3. 30-day months
  4. 31-day months
  5. Changing from December to January
  6. Increasing the year automatically

Day Calculation

The program calculates the day of the week using Zeller's Congruence.

The LCD displays the date together with the short day name.

Example:

21/09/2026 MON
09:15:32

Serial Monitor

The Serial Monitor is used to:

  1. Enter the user's name.
  2. Display the saved name.
  3. Display check-in records.
  4. Display check-out records.

The Serial Monitor should be set to:

Baud Rate: 9600


. Program Flow


START
↓
Initialize LCD and Buttons
↓
Enter Name Through Serial Monitor
↓
Save Name
↓
Start Clock
↓
Display Date and Time
↓
D12 Pressed?
↓ YES
CHECK IN
↓
Save/Display Date & Time
↓
D10 Pressed?
↓ YES
CHECK OUT
↓
Save/Display Date & Time
↓
Continue Clock


Downloads

Conclusion


The Arduino Check-In and Check-Out System demonstrates how an Arduino Nano can combine an LCD, push buttons, Serial Monitor, and software-based date/time calculations to create a simple attendance system.

The project also demonstrates practical use of functions, variables, if/else, switch, millis(), strings, button inputs, and date calculations in an embedded-system application.