Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Project Documentation

Arduino UNO Based RFID Access Control with I2C LCD Feedback and Keypad Input

Image of Arduino UNO Based RFID Access Control with I2C LCD Feedback and Keypad Input

Circuit Documentation

Summary

This circuit integrates an Arduino UNO with an I2C LCD 16x2 Screen, an RFID-RC522 module, a 3xAA Battery pack, and a 4x4 Membrane Matrix Keypad. The Arduino UNO serves as the central microcontroller, interfacing with the LCD for display purposes, the RFID module for scanning RFID tags, and the keypad for user input. The battery pack provides power to the Arduino, which in turn powers the RFID module and the LCD screen. Communication between the Arduino and the LCD is facilitated via the I2C protocol, while the RFID module is connected through SPI and additional GPIO pins. The keypad is interfaced using multiple digital I/O pins on the Arduino.

Component List

Arduino UNO

  • Microcontroller board based on the ATmega328P
  • Features digital I/O pins, analog input pins, and various power pins
  • Utilized for controlling the overall functionality of the circuit

I2C LCD 16x2 Screen

  • Alphanumeric liquid crystal display with 16 characters by 2 lines
  • Communicates with the Arduino via the I2C protocol
  • Used for displaying information to the user

RFID-RC522

  • RFID reader/writer module operating at 13.56 MHz
  • Interfaces with the Arduino through SPI for tag reading and writing
  • Employed for identification and authentication purposes

3xAA Battery

  • Power source consisting of three AA batteries in series
  • Provides power to the Arduino and subsequently to other components

4x4 Membrane Matrix Keypad

  • Input device with 16 buttons arranged in a 4x4 grid
  • Connected to the Arduino through digital pins for user input

Wiring Details

Arduino UNO

  • 3.3V to RFID-RC522 VCC (3.3V)
  • 5V to I2C LCD VCC (5V)
  • GND to RFID-RC522 GND, I2C LCD GND, and 3xAA Battery GND
  • Vin to 3xAA Battery VCC
  • SCL to I2C LCD SCL
  • SDA to I2C LCD SDA
  • D13 to RFID-RC522 SCK
  • D12 to RFID-RC522 MISO
  • D11 to RFID-RC522 MOSI
  • D10 to RFID-RC522 RST
  • D9 to RFID-RC522 SDA and Keypad C4
  • D8 to Keypad C3
  • D7 to Keypad C2
  • D6 to Keypad C1
  • D5 to Keypad R4
  • D4 to Keypad R3
  • D3 to Keypad R2
  • D2 to Keypad R1

I2C LCD 16x2 Screen

  • SCL to Arduino UNO SCL
  • SDA to Arduino UNO SDA
  • VCC (5V) to Arduino UNO 5V
  • GND to Arduino UNO GND

RFID-RC522

  • VCC (3.3V) to Arduino UNO 3.3V
  • RST to Arduino UNO D10
  • GND to Arduino UNO GND
  • IRQ (Not connected)
  • MISO to Arduino UNO D12
  • MOSI to Arduino UNO D11
  • SCK to Arduino UNO D13
  • SDA to Arduino UNO D9

3xAA Battery

  • VCC to Arduino UNO Vin
  • GND to Arduino UNO GND

4X4 Membrane Matrix Keypad

  • R1 to Arduino UNO D2
  • R2 to Arduino UNO D3
  • R3 to Arduino UNO D4
  • R4 to Arduino UNO D5
  • C1 to Arduino UNO D6
  • C2 to Arduino UNO D7
  • C3 to Arduino UNO D8
  • C4 to Arduino UNO D9

Documented Code

Arduino UNO Code (sketch.ino)

#include <Key.h>
#include <Keypad.h>

void setup() {
  // Initialization code here
}

void loop() {
  // Main code here
}

I2C LCD 16x2 Screen Code

The I2C LCD screen is controlled by the Arduino UNO via the I2C protocol. The specific initialization and control code for the LCD is not provided in the input but would typically involve setting up the I2C communication and sending commands to control the display.

RFID-RC522 Code

The RFID-RC522 module is interfaced with the Arduino UNO using SPI. The provided code does not include specific commands for the RFID operations, but the setup would involve initializing the SPI interface and implementing the protocol for reading and writing RFID tags.

3xAA Battery Code

The battery pack does not require code as it is a power source.

4X4 Membrane Matrix Keypad Code

The keypad is interfaced with the Arduino UNO using digital I/O pins. The provided code does not include specific routines for detecting key presses, but typically a matrix scanning algorithm would be implemented to determine which key is pressed.

(Note: The provided code snippets are placeholders and do not represent the complete functionality required to operate the components. Additional code would be needed to fully utilize the capabilities of each component in the circuit.)