当前位置:首页 > 科学研究 > 电子编程 > 正文内容

Arduino Project 045 - RFID Servo and LED Control System

RonWang1年前 (2024-12-11)电子编程912

Arduino Programming Basic -- RFID Servo and LED Control System

Project 45 RFID Servo and LED Control System

Arduino RFID Access Control System Circuit

Arduino RFID Access Control System Schematic

RFID Servo and LED indicator Control System


/* Project 45 RFID - Access Servo and Control / Gate LED indicator 
   Circuit Design  By Ron Wang 2024 NY
 Schematic Design By Ron Wang 2024 NY
*/ 
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h> 
Servo microservo9g;
#define SS_PIN 10    // RC522 module pin definitions
#define RST_PIN 9

MFRC522 mfrc522(SS_PIN, RST_PIN);
int led_concedido = 5; // Leds indicating access granted or denied
int led_negado = 6;
char st[20];

void setup()
{
  pinMode(led_concedido, OUTPUT);
  pinMode(led_negado, OUTPUT);
  // Defines that the servo is connected to digital port 3
  microservo9g.attach(3);
  // Moves the servo to the start position (cancel closed)
  microservo9g.write(90);
 // Start the serial
  Serial.begin(9600);
  // Start SPI  Bus
  SPI.begin();
  // Start MFRC522
  mfrc522.PCD_Init();
 // Initial messages on the serial monitor
  Serial.println("Bring your card closer to the reader...");
  Serial.println();
}

void loop()
{
 // Wait for the card to approach
  if ( ! mfrc522.PICC_IsNewCardPresent())
  {
    return;
  }
 // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial())
  {
    return;
  }
 // Show UID on serial
  Serial.print("UID da tag :");
  String conteudo= "";
  byte letra;
  for (byte i = 0; i < mfrc522.uid.size; i++)
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     conteudo.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     conteudo.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  Serial.println();
  Serial.print("Mensagem : ");
  conteudo.toUpperCase();
 
  // Test if card2 has been read,you can modification the Value your RFID tag value
  if (conteudo.substring(1) == "C1 41 38 1D")  
  {
    // Raises the gate and lights the green LED
    microservo9g.write(-90);
    digitalWrite(led_concedido, HIGH);
    Serial.println("Card1 - Access granted!");
    Serial.println();
    delay(3000);
    microservo9g.write(90);
    digitalWrite(led_concedido, LOW);
    }
   
 // Test if card2 has been read
  if (conteudo.substring(1) == "C1 41 38 1D")
  {
    Serial.println(";Card2 - Access granted!!!");
    Serial.println();
    // Flashes the red LED
    for (int i= 1; i<5 ; i++)
    {
      digitalWrite(led_negado, HIGH);
      delay(200);
      digitalWrite(led_negado, LOW);
      delay(200);
    }
  }
  delay(1000);
}


版权声明:本文为原创文章,版权归donstudio所有,欢迎分享本文,转载请保留出处!

本文链接:http://www.donstudio.cn/?id=302

标签: Arduino

相关文章

Arduino Project 013 - Piezo Knock Sensor

Arduino Project 013 - Piezo Knock Sensor

A piezo disc works when an electric current is passed over the ceramic material in the disc, causing...

Arduino Project 023 - Liquid Crystal Displays - Hello World

Arduino Project 023 - Liquid Crystal Displays - Hello World

Before wiring the LCD screen to your Arduino board we suggest to solder a pin header strip to the 14...

 Arduino Project 037 - 18B20 Temperature Sensor

Arduino Project 037 - 18B20 Temperature Sensor

The DS18B20 Temperature Sensor is a digital temperature sensor capable of measuring temperatures wit...

Arduino Project 003 - LED Traffic Light

Arduino Project 003 - LED Traffic Light

You are now going to create a set of traffic lights that will change from green to red, via amber, a...

Arduino Project 023B - Liquid Crystal Displays -Blink and Cursor

Arduino Project 023B - Liquid Crystal Displays -Blink and Cursor

Before wiring the LCD screen to your Arduino board we suggest to solder a pin header strip to the 14...

Arduino Project 004 - LED Interactive Traffic Lights

Arduino Project 004 - LED Interactive Traffic Lights

This time you are going to extend the previous project to include a set of pedestrian lights and a p...