Das PN532 RFID/NFC-Modul ermöglicht es einem Arduino/ESP32, mit NFC-Tags und kontaktlosen Karten zu kommunizieren. Es unterstützt typischerweise mehrere digitale Schnittstellen, meist SPI (mit SS, MOSI, MISO, SCK) und I2C (mit SCL, SDA), sowie Versorgung (VCC/GND) und Steuer-/Interrupt-Signale (RSTO/IRQ).
| Pin | Signal | Beschreibung |
|---|---|---|
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. |
| Von | Nach | Kabel |
|---|---|---|
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 |
Dieses Beispiel wurde für das arduino-uno geschrieben und kompiliergeprüft. Codey Online passt es für jedes andere unterstützte Board an.
#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);
}
}
Beschreib einfach, was du bauen willst. Codey Online schreibt den Code, zeichnet den Schaltplan, kompiliert alles und flasht dein Board direkt aus dem Browser.
Kostenlos starten