Le module PN532 RFID/NFC permet à un Arduino/ESP32 de communiquer avec des tags NFC et des cartes sans contact. Il prend généralement en charge plusieurs interfaces numériques, souvent SPI (avec SS, MOSI, MISO, SCK) et I2C (avec SCL, SDA), ainsi que l’alimentation (VCC/GND) et des signaux de contrôle/interruption (RSTO/IRQ).
| Broche | Signal | Description |
|---|---|---|
RSTO |
reset | PN532 reset line for resetting the NFC controller. |
IRQ |
interrupt | Interrupt request output from the PN532 to signal events to the host. |
GND |
ground | Ground reference for the PN532 module and host interface. |
VCC |
power | Main power input for the PN532 module. |
SS |
chip-select | SPI slave-select input for enabling PN532 SPI communication. |
MOSI |
MOSI | SPI data input from the host MCU to the PN532. |
MISO |
MISO | SPI data output from the PN532 to the host MCU. |
SCK |
SCK | SPI clock input from the host MCU for PN532 SPI mode. |
SCL |
SCL | I2C clock line for PN532 communication. |
SDA |
SDA | I2C data line for PN532 communication. |
VCC.1 |
power | Power input for the I2C-side header of the PN532 module. |
GND.1 |
ground | Ground reference for the I2C-side header. |
| De | Vers | Fil |
|---|---|---|
board:5V |
x1:VCC.1 |
red |
board:GND |
x1:GND.1 |
black |
board:A4 |
x1:SDA |
green |
board:A5 |
x1:SCL |
blue |
board:D2 |
x1:IRQ |
yellow |
board:D3 |
x1:RSTO |
purple |
Cet exemple a été écrit et vérifié à la compilation pour le arduino-uno. Codey Online l'adapte pour vous à toute autre carte prise en charge.
#include <Wire.h>
#include <Adafruit_PN532.h>
// Arduino Uno pins used by this example:
// IRQ -> D2
// RSTO -> D3
Adafruit_PN532 nfc(2, 3);
void setup() {
Serial.begin(115200);
while (!Serial) {
;
}
Serial.println("PN532 NFC reader starting...");
nfc.begin();
uint32_t versiondata = nfc.getFirmwareVersion();
if (!versiondata) {
Serial.println("Didn't find PN532 board");
while (1) {
delay(10);
}
}
Serial.print("Found PN532 chip, firmware version: ");
Serial.print((versiondata >> 24) & 0xFF, HEX);
Serial.print('.');
Serial.println((versiondata >> 16) & 0xFF, HEX);
nfc.SAMConfig();
Serial.println("Waiting for an ISO14443A card/tag...");
}
void loop() {
uint8_t uid[7];
uint8_t uidLength;
bool success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength, 1000);
if (success) {
Serial.print("Found tag UID: ");
for (uint8_t i = 0; i < uidLength; i++) {
if (uid[i] < 0x10) Serial.print('0');
Serial.print(uid[i], HEX);
if (i < uidLength - 1) Serial.print(':');
}
Serial.println();
delay(1000);
}
}
Décrivez ce que vous voulez créer. Codey Online écrit le code, dessine le schéma de câblage, le compile et flashe votre carte directement depuis le navigateur.
Commencez gratuitement