From 6541848330ceb02cbcc2316b4f02e6b71eeb1ca7 Mon Sep 17 00:00:00 2001 From: Marcel Date: Wed, 15 May 2024 14:19:07 +0200 Subject: [PATCH] adds libararies and example code --- libraries/pn532_spi.zip | Bin 0 -> 13404 bytes libraries/vma211_spi.zip | Bin 0 -> 7837 bytes main/main.ino | 42 +++++++++++++++++++++++++++++++++++---- 3 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 libraries/pn532_spi.zip create mode 100644 libraries/vma211_spi.zip diff --git a/libraries/pn532_spi.zip b/libraries/pn532_spi.zip new file mode 100644 index 0000000000000000000000000000000000000000..b152b4435321fbc7258e8bf5aae081286802b02f GIT binary patch literal 13404 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 LzY(4oe%}2L_mPM2 literal 0 HcmV?d00001 diff --git a/libraries/vma211_spi.zip b/libraries/vma211_spi.zip new file mode 100644 index 0000000000000000000000000000000000000000..280efe634c5b56f51abb3a4c1043c7065a8975bf GIT binary patch literal 7837 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 TL +#include +#define PN532_CS 10 + +PN532 nfc(PN532_CS); + +const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; +LiquidCrystal lcd(rs, en, d4, d5, d6, d7); + +void setup(void) { + nfc.begin(); + + uint32_t versiondata = nfc.getFirmwareVersion(); + if (! versiondata) { + while (1); // halt + } + // configure board to read RFID tags and cards + nfc.SAMConfig(); } -void loop() { - // put your main code here, to run repeatedly: +void loop(void) { + uint32_t id; + // look for MiFare type cards + id = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A); + if (id != 0) + { + + uint8_t keys[]= { 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF }; + if(nfc.authenticateBlock(1, id ,0x08,KEY_A,keys)) //authenticate block 0x08 + { + //if authentication successful + uint8_t block[16]; + //read memory block 0x08 + if(nfc.readMemoryBlock(1,0x08,block)) + { + + } + } + } + delay(1000); }