Теперь перейдем к замку.Для примера мы взяли электромагнит.
Для управление электромагнитом нам понадобиться мощное реле.Для этого мы возьмем - Твердотельное реле.Твердотельное реле это - устройство на мощных полупроводниковых транзисторах, позволяющие быстро переключать мощную нагрузку без звука.
Теперь соберем схему, показанную на рисунке:
Перейдем к коду:
#include <SPI.h>
#include <MFRC522.h> // это библиотека "RFID".
/*
подключение для Arduino Uno и Mega, производится к разным Pin!
---------------------------------------------------—
* Pin layout should be as follows:
* Signal Pin Pin Pin
* Arduino Uno Arduino Mega MFRC522 board
* —--------------------------------------------------------—
* Reset 9 5 RST
* SPI SS 10 53 SDA
* SPI MOSI 11 51 MOSI
* SPI MISO 12 50 MISO
* SPI SCK 13 52 SCK
*/
// два Pin (SS и RST) допускают произвольное подключение и конфигурируются в коде.
// !(SS - он же - SDA).
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); // объект MFRC522C / reate MFRC522 instance.
unsigned long uidDec, uidDecTemp; // для отображения номера карточки в десятичном формате
void setup() {
Serial.begin(9600); // Настраиваем порт
Serial.println("Prilozhite kartu / Waiting for card...");
pinMode(13, OUTPUT);
SPI.begin(); // инициализация SPI
mfrc522.PCD_Init(); // инициализация MFRC522
}
void loop() {
// Поиск новой карточки
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Выбор карточки
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
uidDec = 0;
// Выдача серийного номера карточки.
for (byte i = 0; i < mfrc522.uid.size; i++)
{
uidDecTemp = mfrc522.uid.uidByte[i];
uidDec = uidDec*256+uidDecTemp;
}
Serial.println("Serijnyj nomer karty / Card UID: ");
Serial.println(uidDec);
// начинаем сравнивать номер прочитанной корты, с записанным номером карты.
// замените! № "422455350", на номер № вашей карты.
if (uidDec == 422455350)
{
// если номер совпал включим светодиод.
digitalWrite(13, HIGH);
// и отправим сообщение.
Serial.println("Hi Dmitry");
}
// также и с другими номерами карт.
else if (uidDec == 959884118)
{
digitalWrite(13, HIGH);
Serial.println("Hi Anna");
}
else if (uidDec == 695670870)
{
digitalWrite(13, HIGH);
Serial.println("Hi Sergey");
}
else if (uidDec == 695670614)
{
digitalWrite(13, HIGH);
Serial.println("Hi Sacha");
}
else
{
digitalWrite(13, LOW);
// если номер карты не совпал, выключим реле.
Serial.println("Neizvestnaja karta / unknown card");
}
Serial.println("=====================================");
delay(1000);
// выключаем Реле.
}
Радуемся и пользуемся.
@Элемик