🛒
0 товар.
0 руб.
Логотип

Интернет-магазин «Неглупый Дом»

☰
ИИ-консультант Wildberries OZON Яндекс Маркет
Поиск по сайту
Гугл таблица с ассортиментом

🎫 Проект: RFID-индикатор доступа на RC522 и RGB-светодиоде

RFID-модуль RC522 и RGB-светодиод

RC522 сверяет UID карты со списком в скетче — RGB-светодиод вспыхивает зелёным при совпадении и красным, если карты нет в списке.

Как это работает

RC522 читает уникальный номер (UID) каждой подносимой карты или брелока по RFID. Плата сравнивает этот UID байт за байтом со списком разрешённых в скетче — если все байты совпали, загорается зелёный, иначе красный. Сам модуль работает по протоколу SPI и, в отличие от большинства датчиков из таких наборов, питается строго от 3.3V, а не от 5V.

Пошаговая сборка

Разводка модулей у разных производителей отличается — если на вашей плате контакты называются иначе, сориентируйтесь по маркировке.

  1. RC522 (SPI): SDA → D10, SCK → D13, MOSI → D11, MISO → D12, RST → D9, 3.3V → 3.3V (не на 5V!), GND → GND.
  2. RGB-светодиод: R → D5, G → D6 через резисторы 220-330 Ом.
  3. Установите библиотеку MFRC522 через менеджер библиотек Arduino IDE.
  4. Узнайте настоящий UID своих карт через пример DumpInfo из этой же библиотеки, прежде чем прописывать его в `allowedUID`.

Скетч

// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить.

#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN);
const int redPin = 5;
const int greenPin = 6;
byte allowedUID[4] = {0xDE, 0xAD, 0xBE, 0xEF}; // замените на UID своей карты

void setup() {
  Serial.begin(9600);
  SPI.begin();
  rfid.PCD_Init();
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
}

void loop() {
  if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) {
    bool match = true;
    for (byte i = 0; i < 4; i++) {
      if (rfid.uid.uidByte[i] != allowedUID[i]) match = false;
    }
    Serial.println(match ? "Доступ разрешён" : "Карта не распознана");
    digitalWrite(greenPin, match ? HIGH : LOW);
    digitalWrite(redPin, match ? LOW : HIGH);
    delay(1500);
    digitalWrite(greenPin, LOW);
    digitalWrite(redPin, LOW);
    rfid.PICC_HaltA();
  }
}
                

Реальный UID своей карты можно узнать через Serial-монитор при первом поднесении — есть в примере DumpInfo библиотеки MFRC522.

Частые проблемы

Как улучшить проект

Товары по теме

Ещё модули для Arduino: Электронные модули.

← 🔨 сигнализация удара/разбития на…🔐 кодовый замок с хранением PIN … →

🎁 Купить весь комплект со скидкой 10%

Все 2 товара сразу: 176 ₽ 158 ₽ (экономия 18 ₽)

Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.

Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.

Корзина

Поиск


Пример: понижающий или DC-DC или mini360 или aw-023 или арт. OZ/WB/YA