I just received my PN532 elechouse and wanted to test it.
First I follow this pdf: https://dangerousthings.com/wp-content/uploads/PN532_Manual_V3-1.pdf
Hardware
PN532: I put the switch like this: I2C 1 / 0 (P3)
I plug it as show on page 5 :
5V
GND
Pin 20 /SDA
Pin 21/SCL
Software
As show on page 5 I download this:
PN532
PN532_HSU
PN532_I2C
PN532_SPI
From here: GitHub - elechouse/PN532: NFC library for Arduino using PN532
Ans also NDEF
Then I choose the example : iso14443a_uid
And change this
#if 0
#include <SPI.h>
#include <PN532_SPI.h>
#include "PN532.h"PN532_SPI pn532spi(SPI, 10);
PN532 nfc(pn532spi);
#elif 1
#include <PN532_HSU.h>
#include <PN532.h>PN532_HSU pn532hsu(Serial1);
PN532 nfc(pn532hsu);
#else
#include <Wire.h>
#include <PN532_I2C.h>
#include <PN532.h>
#include <NfcAdapter.h>PN532_I2C pn532i2c(Wire);
PN532 nfc(pn532i2c);
#endif
To this:
#if 0
#include <SPI.h>
#include <PN532_SPI.h>
#include "PN532.h"PN532_SPI pn532spi(SPI, 10);
PN532 nfc(pn532spi);
#elif 0
#include <PN532_HSU.h>
#include <PN532.h>PN532_HSU pn532hsu(Serial1);
PN532 nfc(pn532hsu);
#else
#include <Wire.h>
#include <PN532_I2C.h>
#include <PN532.h>
#include <NfcAdapter.h>PN532_I2C pn532i2c(Wire);
PN532 nfc(pn532i2c);
#endif
In order to test I2C but the only I have is this:
Hello!
Didn't find PN53x board
Original code:
/**************************************************************************/
/*!
This example will attempt to connect to an ISO14443A
card or tag and retrieve some basic information about it
that can be used to determine what type of card it is.Note that you need the baud rate to be 115200 because we need to print
out the data and read from the card at the same time!To enable debug message, define DEBUG in PN532/PN532_debug.h
*/
/**************************************************************************/#if 0
#include <SPI.h>
#include <PN532_SPI.h>
#include "PN532.h"PN532_SPI pn532spi(SPI, 10);
PN532 nfc(pn532spi);
#elif 1
#include <PN532_HSU.h>
#include <PN532.h>PN532_HSU pn532hsu(Serial1);
PN532 nfc(pn532hsu);
#else
#include <Wire.h>
#include <PN532_I2C.h>
#include <PN532.h>
#include <NfcAdapter.h>PN532_I2C pn532i2c(Wire);
PN532 nfc(pn532i2c);
#endifvoid setup(void) {
Serial.begin(115200);
Serial.println("Hello!");nfc.begin();
uint32_t versiondata = nfc.getFirmwareVersion();
if (! versiondata) {
Serial.print("Didn't find PN53x board");
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 the max number of retry attempts to read from a card
// This prevents us from waiting forever for a card, which is
// the default behaviour of the PN532.
nfc.setPassiveActivationRetries(0xFF);// configure board to read RFID tags
nfc.SAMConfig();Serial.println("Waiting for an ISO14443A card");
}void loop(void) {
boolean success;
uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // Buffer to store the returned UID
uint8_t uidLength; // Length of the UID (4 or 7 bytes depending on ISO14443A card type)// Wait for an ISO14443A type cards (Mifare, etc.). When one is found
// 'uid' will be populated with the UID, and uidLength will indicate
// if the uid is 4 bytes (Mifare Classic) or 7 bytes (Mifare Ultralight)
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*, HEX);*
- }*
- Serial.println("");*
- // Wait 1 second before continuing*
- delay(1000);*
- }*
- else*
- {*
- // PN532 probably timed out waiting for a card*
- Serial.println("Timed out waiting for a card");*
- }*
}[/quote]
**PS:
I manage to detect it by following this code with an arduino nano from a friend who share it with me : Читаем номера rfid nfc карт меток с помощью модуля с чипом PN532, 13.56 MHz | Аппаратная платформа Arduino
But I can only detect the PN532 with this lib, I want to test read/write and it's not my nano.