Arduino Due + PN532 elechouse


i received pn532 elechouse , wanted test it.

first follow pdf: https://dangerousthings.com/wp-content/uploads/pn532_manual_v3-1.pdf


hardware
pn532: put switch this: i2c   1  /  0  (p3)
i plug show on page 5 :
5v
gnd
pin 20 /sda
pin 21/scl

software
as show on page 5 download this:
pn532
pn532_hsu
pn532_i2c
pn532_spi
from here: https://github.com/elechouse/pn532
ans ndef

then choose example : iso14443a_uid
and change this

quote
#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:

quote
#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 test i2c have this:
hello!
didn't find pn53x board


original code:

quote
/**************************************************************************/
/*!
    example attempt connect iso14443a
    card or tag , retrieve basic information it
    can used determine type of card is.   
   
    note need baud rate 115200 because need print
    out data , read card @ same time!

    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);
#endif
 
void 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 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 max number of retry attempts read card
  // prevents waiting forever card, is
  // default behaviour of pn532.
  nfc.setpassiveactivationretries(0xff);
 
  // configure board read rfid tags
  nfc.samconfig();
   
  serial.println("waiting iso14443a card");
}

void loop(void) {
  boolean success;
  uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };  // buffer store returned uid
  uint8_t uidlength;                        // length of uid (4 or 7 bytes depending on iso14443a card type)
 
  // wait iso14443a type cards (mifare, etc.).  when 1 found
  // 'uid' populated uid, , uidlength indicate
  // if uid 4 bytes (mifare classic) or 7 bytes (mifare ultralight)
  success = nfc.readpassivetargetid(pn532_mifare_iso14443a, &uid[0], &uidlength);
 
  if (success) {
    serial.println("found card!");
    serial.print("uid length: ");serial.print(uidlength, dec);serial.println(" bytes");
    serial.print("uid value: ");
    (uint8_t i=0; < uidlength; i++)
    {
      serial.print(" 0x");serial.print(uid, hex);
    }
    serial.println("");
    // wait 1 second before continuing
    delay(1000);
  }
  else
  {
    // pn532 timed out waiting card
    serial.println("timed out waiting card");
  }
}
**ps:
i manage detect following code arduino nano friend share me : http://arduino.ru/forum/proekty/chitaem-nomera-rfid-nfc-kart-metok-s-pomoshchyu-modulya-s-chipom-pn532-1356-mhz
but can detect pn532 lib, want test read/write , it's not nano.

if select hsu instead of i2c have lot of error :
http://pastebin.com/rx4hqilu


Arduino Forum > Using Arduino > Programming Questions > Arduino Due + PN532 elechouse


arduino

Comments

Popular posts from this blog

Help needed for choosing soldering station

Error Message when accessing Adobe

Fuelino for Arduino Nano - motorcycle Fuel Injection control and data logger