· #include <Servo.h>
· #include <SPI.h>
· #include <MFRC522.h> // библиотека "RFID".
· #define SS_PIN 10
· #define RST_PIN 9
· MFRC522 mfrc522(SS_PIN, RST_PIN);
· unsigned long uidDec, uidDecTemp; // для хранения номера метки в десятичном формате
· Servo servo;
· void setup() {
· Serial.begin(9600);
· Serial.println("Waiting for card...");
· SPI.begin(); // инициализация SPI / Init SPI bus.
· mfrc522.PCD_Init(); // инициализация MFRC522 / Init MFRC522 card.
· servo.attach(6);
· servo.write(0); // устанавливаем серву в закрытое состояние
· }
· 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("Card UID: ");
· Serial.println(uidDec); // Выводим UID метки в консоль.
· if (uidDec == 3763966293) // Сравниваем Uid метки, если он равен заданному, то серва открывает.
· {
· tone(5, 200, 500); // Делаем звуковой сигнал, Открытие
· servo.write(90); // Поворачиваем серву на угол 90 градусов(Отпираем какой либо механизм: задвижку, поворачиваем ключ и т.д.)
· delay(3000); // пауза 3 сек и механизм запирается.
· tone(5, 500, 500); // Делаем звуковой сигнал, Закрытие
· }
· servo.write(0); // устанавливаем серву в закрытое состояние