28. RFID icm servo

 
Afbeelding invoegen 
 
 
LET OP:
De servomotor wordt aangesloten op 5V
De RFID module wordt aangesloten op 3,3 V !!
Eerst de UID codering van key en/of card achterhalen en aanpassen in de regel content.substring.  
 
 
code:
 
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
 
#define SS_PIN 10
#define RST_PIN 9
#define LED_G 4 // GROENE LED pin
#define LED_R 5 // RODE LED PIN
#define BUZZER 2 //buzzer pin
MFRC522 mfrc522(SS_PIN, RST_PIN);   // MFRC522 rfid module.
Servo myServo; // servo object
 
void setup() 
{
  Serial.begin(9600);   
  SPI.begin();      // initialisatie van de SPI bus
  mfrc522.PCD_Init();   // initialisatie van de MFRC522 RFID module
  myServo.attach(3); // gebruikte servo aanstuur pin
  myServo.write(0); //servo startpositie 0 graden
  pinMode(LED_G, OUTPUT);
  pinMode(LED_R, OUTPUT);
  pinMode(BUZZER, OUTPUT);
  noTone(BUZZER);
  Serial.println("Leg je RFID kaart op de RFID kaart lezer...");
  Serial.println();

}
void loop() 
{
    if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  // Laat de UID Unieke Identificatiecode zien via de seriele monitor
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
 
Serial.println();
Serial.print("Message: ");
content.toUpperCase();
 
// plaats hieronder de unieke UID code van je RFID kaart. 
// Deze code kun je achterhalen via het programma Dumpinfo.
// Daarvoor moet je eerst de MC522 library downloaden via github.
    
if (content.substring(1) == "50 B6 71 E9" || content.substring(1) == "19 28 EF 28")
 
{
    Serial.println("Geautoriseerde toegang");
    Serial.println();
    delay(500);
    digitalWrite(LED_G, HIGH);
    tone(BUZZER, 500);
    delay(300);
    noTone(BUZZER);
    myServo.write(180);
    delay(5000);
    myServo.write(0);
    digitalWrite(LED_G, LOW);
  }
 
 else   {
    Serial.println("Toegang geweigerd");
    digitalWrite(LED_R, HIGH);
    tone(BUZZER, 300);
    delay(1000);
    digitalWrite(LED_R, LOW);
    noTone(BUZZER);
  }