/*
Читаем номера rfid nfc карт меток с помощью модуля с чипом PN532, 13.56 MHz
based on
//@file nfc_mifare_mf1s50_reader.ino
//@author www.elechouse.com
//@brief example of reading mf1s50 card for NFC_MODULE
*/
/** include library */
#include "nfc.h"
/** define a nfc class */
NFC_Module nfc;
const byte ledRed = 7;
const byte ledGreen = 8;
const byte ledBlue = 9;
byte currentLed = ledRed;
const byte led13 = 13;
// the setup routine runs once when you press reset:
void setup() {
Serial.begin(57600);
nfc.begin();
pinMode(ledBlue, OUTPUT);
pinMode(ledGreen, OUTPUT);
pinMode(ledRed, OUTPUT);
//pinMode(led13, INPUT);
Serial.println("MF1S50 Reader Demo From Elechouse!");
uint32_t versiondata = nfc.get_version();
if (! versiondata) {
Serial.print("Didn't find PN53x board");
delay(500);
setup(); // try once more
return;//while (1); // halt
}
// Got ok data, print it out!
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);
/** Set normal mode, and disable SAM */
nfc.SAMConfiguration();
}
// the loop routine runs over and over again forever:
void loop() {
u8 buf[32],sta;
/** Polling the mifar card, buf[0] is the length of the UID */
sta = nfc.InListPassiveTarget(buf);
digitalWrite(ledBlue, LOW);
digitalWrite(ledGreen, LOW);
digitalWrite(ledRed, LOW);
digitalWrite(led13, HIGH);
/** check state and UID length */
if(sta)
{
digitalWrite(led13, LOW); // погашен когда карта рядом с ридером
/** he card may be Mifare Classic card, try to read the block */
/** this sketch was written by toc at arduino ru */
// в нулевом элементе массива имеем длину номера карты
Serial.print("UUID length:");
Serial.print(buf[0], DEC);
Serial.println();
Serial.print("UUID:");
nfc.puthex(buf+1, buf[0]);
Serial.println();
// номер карты начинается с 1-ого элемента
// различаю мои карты по второму байту номера
byte someByte = buf[2];
// в соответствии с приложенной картой - мигаю лампочками
// порядок строк как на видео (4 билета, белая карта, брелок) youtu.be/e0huL_LpFj4
if(someByte==0x95) blinkLed(ledRed,2);
else if(someByte==0x72) blinkLed(ledGreen,3);
else if(someByte==0x86) blinkLed(ledBlue,4);
else if(someByte==0xA6) blinkLed(ledRed,5);
else if(someByte==0x78) blinkLed(ledGreen,6);
else if(someByte==0x10) blinkLed(ledBlue,7);
}
}
void blinkLed(int pled, int cnt)
{
while(cnt--)
{
digitalWrite(pled, HIGH);
delay(50);
digitalWrite(pled, LOW);
delay(300);
}
}
Здравствуйте, я новичок в работе с языками программирования и с самой платформой Arduino, у меня возникла пара вопросов, возможно ли подключить обычный (формат не имеет значения) weigand 26 считыватель к Arduino Mega?
На руках есть считыватели любых форматов, HID iClass, Prox2, Indala, EM, Mifare, все что угодно, нет опыта и знаний в работе с платформой, ткните плиз.
Здравствуйте, я новичок в работе с языками программирования и с самой платформой Arduino, у меня возникла пара вопросов, возможно ли подключить обычный (формат не имеет значения) weigand 26 считыватель к Arduino Mega?
На руках есть считыватели любых форматов, HID iClass, Prox2, Indala, EM, Mifare, все что угодно, нет опыта и знаний в работе с платформой, ткните плиз.
In file included from /opt/arduino-1.8.9-linux64/arduino-1.8.9/hardware/arduino/avr/cores/arduino/Arduino.h:233:0,
from sketch/sketch_jul24a.ino.cpp:1:
/opt/arduino-1.8.9-linux64/arduino-1.8.9/hardware/arduino/avr/cores/arduino/USBAPI.h:30:24: note: previous declaration as 'typedef short unsigned int u16'
Вроде бы прямо по английски написано : nfc.h:42:18: error: conflicting declaration. Среда с 2013 года сильно изменилась. Возьмите либо новую библиотеку либо поправте старую, выкинув из неё лишнее.
Работает хорошо. Подключён по i2c. Питается от 3.3 в.
Видео: http://www.youtube.com/watch?v=e0huL_LpFj4
Доп.инфо: http://www.elechouse.com/elechouse/index.php?main_page=product_info&cPath=90_93&products_id=2205
Скетч:
см. также http://arduino.ru/forum/otvlechennye-temy/est-lishnii-modul-dlya-raboty-s-rfid-nfc-kartami-1356-mgts
Класс. А что за музыка на озвучке ролика? Прошу прощения за офтоп
Здравствуйте, я новичок в работе с языками программирования и с самой платформой Arduino, у меня возникла пара вопросов, возможно ли подключить обычный (формат не имеет значения) weigand 26 считыватель к Arduino Mega?
На руках есть считыватели любых форматов, HID iClass, Prox2, Indala, EM, Mifare, все что угодно, нет опыта и знаний в работе с платформой, ткните плиз.
Здравствуйте, я новичок в работе с языками программирования и с самой платформой Arduino, у меня возникла пара вопросов, возможно ли подключить обычный (формат не имеет значения) weigand 26 считыватель к Arduino Mega?
На руках есть считыватели любых форматов, HID iClass, Prox2, Indala, EM, Mifare, все что угодно, нет опыта и знаний в работе с платформой, ткните плиз.
http://forum.arduino.cc/index.php/topic,17085.0.html
Rob Simonsen - Clappy
toc а обычные метки он читает, или только свои?
О! Ребята, подскажите плиз ссылками или направлением, чтобы увеличить расстояние считывания пассивных меток(карточек) до 3 метров.
Взять базовый модуль чтения меток. Усилить излучение и увеличить антенну для считывания?
Скорее всего придется городить отдельный усилитель излучения
И собирать антенну с кучей расчетов.
Всё просто не получится да?
triada13, он читает все 13,56 Мгц метки. А в некоторые может записывать.
etaon, я не знаю.
toc получается что карты метро и аэроэкспресс работают на 13,56 Мгц, а не на 125 Кгц?
Я просто почему спрашиваю, стал разглядывать плату и обнаружил отсутствие одного дросселя.
частоту можно определить по количеству витков... 13.56м и 125к разница очень большая.
количество витков где? на плате?
triada13, билеты московского метро точно работают на 13.56 МГц.
О других не знаю.
toc, ясно спасибо за разъяснения.
Подскажите что я делаю не так?
Вроде бы прямо по английски написано : nfc.h:42:18: error: conflicting declaration. Среда с 2013 года сильно изменилась. Возьмите либо новую библиотеку либо поправте старую, выкинув из неё лишнее.