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

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

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

Circuit Documentation

Summary

This document provides a detailed overview of a circuit that integrates an Arduino UNO microcontroller with several peripheral components including an RFID-RC522 module, a 3xAA battery pack, a 4x4 membrane matrix keypad, and an I2C LCD 16x2 screen. The circuit is designed to leverage the Arduino UNO's digital and analog I/O pins to interface with the peripherals for various input/output operations. The RFID-RC522 module is used for RFID reading capabilities, the keypad serves as a user input device, and the LCD screen displays information. The 3xAA battery pack powers the Arduino UNO.

Component List

Arduino UNO

  • Microcontroller board based on the ATmega328P
  • Features digital and analog I/O pins
  • Includes power supply pins and communication interfaces

RFID-RC522

  • RFID reader/writer module
  • Operates at 13.56 MHz for contactless communication
  • Utilizes SPI interface for communication with microcontroller

3xAA Battery

  • Power source for the circuit
  • Provides a nominal voltage suitable for powering the Arduino UNO

4x4 Membrane Matrix Keypad

  • Input device with 16 buttons arranged in a 4x4 grid
  • Each button press connects a row and column, detectable by the microcontroller

I2C LCD 16x2 Screen

  • Alphanumeric liquid crystal display with 16 characters by 2 lines
  • Uses I2C communication protocol for interfacing with the microcontroller

Wiring Details

Arduino UNO

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

RFID-RC522

  • VCC (3.3V) connected to Arduino UNO 3.3V
  • RST connected to Arduino UNO D10
  • GND connected to Arduino UNO GND
  • IRQ not connected
  • MISO connected to Arduino UNO D12
  • MOSI connected to Arduino UNO D11
  • SCK connected to Arduino UNO D13
  • SDA connected to Arduino UNO D9 (also connected to 4x4 Membrane Matrix Keypad C4)

3xAA Battery

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

4x4 Membrane Matrix Keypad

  • R1 connected to Arduino UNO D2
  • R2 connected to Arduino UNO D3
  • R3 connected to Arduino UNO D4
  • R4 connected to Arduino UNO D5
  • C1 connected to Arduino UNO D6
  • C2 connected to Arduino UNO D7
  • C3 connected to Arduino UNO D8
  • C4 connected to Arduino UNO D9 (also connected to RFID-RC522 SDA)

I2C LCD 16x2 Screen

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

Documented Code

Arduino UNO Code (sketch.ino)

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

void setup() {
  // Initialization code here
}

void loop() {
  // Main code to run repeatedly
}

RFID-RC522 Code (sketch.ino)

void setup() {
  // Initialization code here
}

void loop() {
  // Main code to run repeatedly
}

3xAA Battery Code (sketch.ino)

void setup() {
  // Initialization code here
}

void loop() {
  // Main code to run repeatedly
}

4x4 Membrane Matrix Keypad Code (sketch.ino)

void setup() {
  // Initialization code here
}

void loop() {
  // Main code to run repeatedly
}

I2C LCD 16x2 Screen Code (sketch.ino)

void setup() {
  // Initialization code here
}

void loop() {
  // Main code to run repeatedly
}

Note: The provided code snippets are placeholders and should be replaced with the actual implementation code for each component's functionality.