11 мая 2017 г.

Подключение модуля RFID RC522 к Arduino NANO v3

Как подключить RFID RC522 к arduino nano v3
Статья посвящена подключению RFID модуля к Arduino NANO с выводом информации о ключе на ЖК-дисплей 16x2.







Для того, чтобы достигнуть нужного результата потребуется:

  • Arduino NANO v3
  • LCD дисплей 16x2 AC162B
  • RFID модуль RC522
  • RFID карточки
  • Переменный резистор около 50 кОм
  • Гибкий, многожильный провод
  • Паяльник, припой и флюс.
Убедившись, что всё из вышеперечисленного у Вас есть, можно переходить к следующему этапу - соединению RFID RC522 модуля к арудино nano по схеме приведённой ниже.
Как подключить RFID модуль к ардуино nano v3

После того, как RFID модуль подключен к arduino NANO, приступаем к подключению ЖК-дисплея. О том, как это сделать, можно прочесть в статье Подключение LCD AC162B к Arduino NANO. 
Только обратите внимание на то, что в данной схеме контакты D11 и D12 у нас используются RFID модулем. Поэтому 6 контакт LCD дисплея подключается к D6 arduino NANO, а контакт 4 LCD подключаем к D7.

Закончив соединение arduino NANO с RFID модулем и LCD дисплеем, переходим к загрузке скетча.

Скетч для работы arduino NANO с RFID модулем:

#include <LiquidCrystal.h> // Библиотека для работы с LCD дисплеем.
#include <SPI.h>
#include <MFRC522.h> // Библиотека для работы с RFID модулем.
#define SS_PIN 10
#define RST_PIN 9

// Настраиваем LCD дисплей.
LiquidCrystal lcd( 7, 6, 5, 4, 3, 2);

// Настраиваем RFID
MFRC522 mfrc522(SS_PIN, RST_PIN);
unsigned long uidDec, uidDecTemp;  // для храниения номера метки в десятичном формате

void setup() {
  // Инициализируем дисплей
  lcd.begin(16, 2);
  SPI.begin();  //  инициализация SPI.
  mfrc522.PCD_Init();     // инициализация RFID модуля.
  // Выводим на дисплей запись по умолчанию.
  clearscreen();
}

void loop() {

  // Поиск новой RFID метки
  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
  }
  // Выбор RFID метки
  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }
  uidDec = 0;
  // Конвертирование номера RFID метки в десятичную систему счисления.
  for (byte i = 0; i < mfrc522.uid.size; i++)
  {
    uidDecTemp = mfrc522.uid.uidByte[i];
    uidDec = uidDec * 256 + uidDecTemp;
  }
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Card:");
  lcd.setCursor(0, 1);
  lcd.print(uidDec); // Показываем на LCD номер RFID карточки.
  if (uidDec == 123456789) // Тут указываем номер нашей карточки для дальнейшего сравнения.
  {
  delay(2000);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("-== CARD OK ==-");
  lcd.setCursor(0, 1);
  lcd.print("WWW.MAKE4HOME.RU");
  }
  clearscreen();
}

// Надпись на дисплее по умолчанию.
void clearscreen() {
  delay(4000);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Wait RFID..");
  lcd.setCursor(0, 1);
  lcd.print("WWW.MAKE4HOME.RU");
}

После того как скетч загружен на arduino, можно проверить работоспособность нашего устройства.

Пример работы можно посмотреть на видео:







Понравилась статья? Поделитесь ею пожалуйста с друзьями:




Интересные материалы схожей тематики:




Что еще можно добавить к вышесказанному?