Arduino leonardo + RFID introdução
O exemplo a seguir faz a leitura do cartão de RFID no bloco 0x08, o bloco 0 é aleatorio e contem dados do produtor do cartão, NÃO escreva nesse bloco, ou podera inutilizar o cartão.
- #include <PN532.h>
- #define SCK 13
- #define MOSI 11
- #define SS 10
- #define MISO 12
- PN532 nfc(SCK, MISO, MOSI, SS);
- uint8_t written=0;
- void setup(void)
- {
- Serial.begin(9600);
- Serial.println("Ola!");
- nfc.begin();
- uint32_t versiondata = nfc.getFirmwareVersion();
- if (! versiondata)
- {
- Serial.print("Placa com PN53x nao encontrada");
- while (1); // para programa
- }
- // Recebeu dados, hora de imprimir!
- Serial.print("Chip PN5 encontrado"); Serial.println((versiondata>>24) & 0xFF, HEX);
- Serial.print("Versao do Firmware: "); Serial.print((versiondata>>16) & 0xFF, DEC);
- Serial.print('.'); Serial.println((versiondata>>8) & 0xFF, DEC);
- Serial.print("Suporta "); Serial.println(versiondata & 0xFF, HEX);
- // configura placa para ler RFID
- nfc.SAMConfig();
- }
- void loop(void)
- {
- uint32_t id;
- // procura por cartoes
- id = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A);
- if (id != 0)
- {
- Serial.print("Lendo cartao #");
- Serial.println(id);
- Serial.println();
- uint8_t keys[]= {0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};
- uint8_t writeBuffer[16];
- for(uint8_t ii=0;ii<16;ii++)
- {
- writeBuffer[ii]=ii; //completa o buffer com 0,1,2....F
- }
- if(nfc.authenticateBlock(1, id ,0x08,KEY_A,keys)) //autentica bloco 8 0x08
- {
- //se autenticou com sucesso
- if(written == 0) //nao escrito
- {
- written = nfc.writeMemoryBlock(1,0x08,writeBuffer); // escreve writeBuffer[] no bloco 0x08
- if(written)
- Serial.println("Escreveu com sucesso!");
- }
- uint8_t block[16];
- //faz leitura do bloco 0x08
- if(nfc.readMemoryBlock(1,0x08,block))
- {
- Serial.println("Lendo bloco 0x08:");
- //se operacao de leitura teve sucesso
- for(uint8_t i=0;i<16;i++)
- {
- //imprime bloco de memoria
- Serial.print(block[i],HEX);
- Serial.print(" ");
- }
- Serial.println();
- }
- }
- }
- delay(500);
- }
Essa é a saída da leitura:
Found 1 tags
Sens Response: 0x4
Sel Response: 0x8
0x7 0x83 0xBE 0x4ELendo cartao #126074446
Lendo bloco 0x08:
0 1 2 3 4 5 6 7 8 9 A B C D E F
Ou seja, o cartão #126074446, no bloco 0x08, escrevemos 0 1 2 3 4 5 6 7 8 9 A B C D E F
O bloco, e ordem podem ser modificadas livremente, vamos deixar esse cartão dessa forma para utilizar no próximo post
Nenhum comentário:
Postar um comentário