RFID-ридер на базе чипа PN532.
Технические характеристки:
Поддерживаемые типы беспроводных чипов:
Для подключения RFID-ридера к Arduino рекомендуем использовать библтотеку Adafruit_PN532 и следующее подключение выводов к плате Arduino
Подключение по I2C:
Подключение по SPI:
Пример исходного кода с применением бибилитеки Adafruit_PN532
#include // подключаем библиотеку для работы по I2C
#include // подключаем библиотеку для работы с модулем
#define PN532_IRQ (2) // указываем вывод, к которому подключен контакт IRQ
#define PN532_RESET (3) // указываем вывод, к которому подключен контакт RST
Adafruit_PN532 nfc(PN532_IRQ, PN532_RESET); // назначаем имя модулю
void setup() {
Serial.begin(115200); // инициируем передачу данных в монитор последовательного порта на скорости 115200 бод
Serial.println("Hello!"); // выводим в монитор порта текст
nfc.begin(); // инициируем работу с модулем
uint32_t versiondata = nfc.getFirmwareVersion(); // считываем версию прошивки модуля в переменную
if (! versiondata) { // если переменная пуста, то
Serial.print("Didn't find PN53x board"); // выводим текст в монитор порта
while (1); // прерываем дальнейшее выполнение блока setup
}
Serial.print("Found chip PN5"); Serial.println((versiondata >> 24) & 0xFF, HEX); // если версия прочитана, то выводим текст и версию чипа в монитор порта
Serial.print("Firmware ver. "); Serial.print((versiondata >> 16) & 0xFF, DEC); // выводим текст и версию прошивки до запятой в монитор порта
Serial.print(','); Serial.println((versiondata >> 8) & 0xFF, DEC); // выводим запятую и версию прошивки после запятой
nfc.setPassiveActivationRetries(0xFF); // указываем количество попыток на считывание карты
nfc.SAMConfig(); // настраиваем модуль на чтение RFID-меток
Serial.println("Waiting for an ISO14443A card"); // выводим текст в монитор порта
}
void loop() {
boolean success; // задаём переменную для считывания номера карты
uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // задаём переменную для хранения номера считанной карты
uint8_t uidLength; // длина номера карты (4 или 7 байт в зависимости от типа карты)
success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, &uid[0], &uidLength); // считываем первую карту для определения размера и назначения типа карты
if (success) { // если номер считан, то
Serial.println("Found a card!"); // выводим текст в монитор порта о том, что карта найдена
Serial.print("UID Length: "); Serial.print(uidLength, DEC); Serial.println(" bytes"); // выводим текст и значение длины карты в байтах
Serial.print("UID Value: "); // выводим текст в монитор порта
for (uint8_t i = 0; i < uidLength; i++) { // выводим номер карты (в зависимости от длины номера будет меняться и количество раз, которые должен выполнить цикл)
Serial.print(" 0x"); Serial.print(uid[i], HEX); // выводим текст и побитовый номер карты
}
Serial.println(""); // добавляем символ новой строки
delay(1000); // ждём 1 секунду
}
else { // если карта была не прочитана, то
Serial.println("Timed out waiting for a card"); // выводим текст в монитор порта о том, что время ожидания карты истекло
}
}
г. Москва, Пятницкое ш. д. 18, пав. 566
zakaz@compacttool.ru
8-495-752-55-22
Информация представленная на данном информационном ресурсе преследует исключительно рекламные цели и не является договором-офертой !
© Все права защищены 2015 - 2024г https://compacttool.ru