Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

Arduino UNO RFID Reader with I2C LCD Display and Servo Control

View and Edit Project In Cirkit DesignerImage of Arduino UNO RFID Reader with I2C LCD Display and Servo Control

Circuit Documentation

Summary of the Circuit

This circuit is designed to interface an Arduino UNO with an RFID-RC522 module, a 20x4 LCD display with I2C interface, and a Servomotor SG90. The Arduino UNO acts as the central processing unit, controlling the RFID reader for scanning tags, displaying information on the LCD, and driving the servomotor based on the RFID tags detected. The RFID-RC522 module is used for reading RFID tags, the LCD display shows the scanned tag's UID, and the servomotor is potentially used for a physical response, such as unlocking a mechanism.

Component List

Arduino UNO

LCD Display 20x4 I2C

RFID-RC522

Servomotor SG90

Wiring Details

Arduino UNO

LCD Display 20x4 I2C

RFID-RC522

Servomotor SG90

Documented Code

/*RFID tag scan code
 * https://srituhobby.com
 */
 
#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN 9
#define SS_PIN  10
byte readCard[4];
byte a = 0;

LiquidCrystal_I2C lcd(0x27, 16, 2);
MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {
  Serial.begin(9600);
  lcd.init();
  lcd.backlight();
  while (!Serial);
  SPI.begin();
  mfrc522.PCD_Init();
  delay(4);
  mfrc522.PCD_DumpVersionToSerial();
  lcd.setCursor(2, 0);
  lcd.print("Put your card");
}

void loop() {
  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return 0;
  }
  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return 0;
  }

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Scanned UID");
  a = 0;
  Serial.println(F("Scanned PICC's UID:"));
  for ( uint8_t i = 0; i < 4; i++) {  //
    readCard[i] = mfrc522.uid.uidByte[i];
    Serial.print(readCard[i], HEX);
    Serial.print(" ");
    lcd.setCursor(a, 1);
    lcd.print(readCard[i], HEX);
    lcd.print(" ");
    delay(500);
    a += 3;
  }
  Serial.println("");
  mfrc522.PICC_HaltA();
  return 1;
}

The code provided is for the Arduino UNO and is responsible for initializing the RFID-RC522 module and the LCD display. It continuously checks for new RFID tags. When a tag is detected, it reads the UID and displays it on the LCD. The code also sends the UID to the serial monitor for debugging purposes.