Hi
im a complete beginner to arduino stuff
im currently follow a tutorial
https://www.youtube.com/watchv=_9unR083OPY&ab_channel=MichaelKlements
to make a RFID door lock
using a RFID-RC522 and a Servo motor
im using an ELEGOO ARDUINO UNO R3
all the wiring is correct according to a given circuit diagram
the code im using is :-
`Use code tags to format code for the forum`//The DIY Life
//Michael Klements
//27 January 2020
#include <SPI.h>
#include <RFID.h>
#include <Servo.h>
RFID rfid(10, 9); //D10:pin of tag reader SDA. D9:pin of tag reader RST
unsigned char status;
unsigned char str[MAX_LEN]; //MAX_LEN is 16: size of the array
String accessGranted [2] = {"310988016", "19612012715"}; //RFID serial numbers to grant access to
int accessGrantedSize = 2; //The number of serial numbers
Servo lockServo; //Servo for locking mechanism
int lockPos = 15; //Locked position limit
int unlockPos = 75; //Unlocked position limit
boolean locked = true;
int redLEDPin = 5;
int greenLEDPin = 6;
void setup()
{
Serial.begin(9600); //Serial monitor is only required to get tag ID numbers and for troubleshooting
SPI.begin(); //Start SPI communication with reader
rfid.init(); //initialization
pinMode(redLEDPin, OUTPUT); //LED startup sequence
pinMode(greenLEDPin, OUTPUT);
digitalWrite(redLEDPin, HIGH);
delay(200);
digitalWrite(greenLEDPin, HIGH);
delay(200);
digitalWrite(redLEDPin, LOW);
delay(200);
digitalWrite(greenLEDPin, LOW);
lockServo.attach(3);
lockServo.write(lockPos); //Move servo into locked position
Serial.println("Place card/tag near reader...");
}
void loop()
{
if (rfid.findCard(PICC_REQIDL, str) == MI_OK) //Wait for a tag to be placed near the reader
{
Serial.println("Card found");
String temp = ""; //Temporary variable to store the read RFID number
if (rfid.anticoll(str) == MI_OK) //Anti-collision detection, read tag serial number
{
Serial.print("The card's ID number is : ");
for (int i = 0; i < 4; i++) //Record and display the tag serial number
{
temp = temp + (0x0F & (str[i] >> 4));
temp = temp + (0x0F & str[i]);
}
Serial.println (temp);
checkAccess (temp); //Check if the identified tag is an allowed to open tag
}
rfid.selectTag(str); //Lock card to prevent a redundant read, removing the line will make the sketch read cards continually
}
rfid.halt();
}
void checkAccess (String temp) //Function to check if an identified tag is registered to allow access
{
boolean granted = false;
for (int i=0; i <= (accessGrantedSize-1); i++) //Runs through all tag ID numbers registered in the array
{
if(accessGranted[i] == temp) //If a tag is found then open/close the lock
{
Serial.println ("Access Granted");
granted = true;
if (locked == true) //If the lock is closed then open it
{
lockServo.write(unlockPos);
locked = false;
}
else if (locked == false) //If the lock is open then close it
{
lockServo.write(lockPos);
locked = true;
}
digitalWrite(greenLEDPin, HIGH); //Green LED sequence
delay(200);
digitalWrite(greenLEDPin, LOW);
delay(200);
digitalWrite(greenLEDPin, HIGH);
delay(200);
digitalWrite(greenLEDPin, LOW);
delay(200);
}
}
if (granted == false) //If the tag is not found
{
Serial.println ("Access Denied");
digitalWrite(redLEDPin, HIGH); //Red LED sequence
delay(200);
digitalWrite(redLEDPin, LOW);
delay(200);
digitalWrite(redLEDPin, HIGH);
delay(200);
digitalWrite(redLEDPin, LOW);
delay(200);
}
}
`````````````````````````````
i dont know how to write code which is why im following a tutorial :'(
i think its an issue with the library which is giving me several errors like :-
Error: 13 INTERNAL: Library install failed: archive is not valid: multiple files found in zip file top level
Error: 13 INTERNAL: Library install failed: moving extracted archive to destination dir: library not valid
im sorry if im asking dumb questions i only started using arduino since december 2023
pls help if u can