A ton 103 eme post tu en es toujours à dire ; ca marche pas sans plus d'explications ?
As tu essayé les exemples de la bibliothèque, on ne devrait pas être obligé de poser cette question.
Le machin noir que tu ajouté est illisible et tu n'as pas pu ne pas t'en rendre compte.
Lien vers le module --> on n'est pas sensé tout connaitre.
PS en général les bibliothèques fonctionnent, voir plutôt ce qui se passe entre la chaise et le clavier
68tjs:
A ton 103 eme post tu en es toujours à dire ; ca marche pas sans plus d'explications ?
As tu essayé les exemples de la bibliothèque, on ne devrait pas être obligé de poser cette question.
Le machin noir que tu ajouté est illisible et tu n'as pas pu ne pas t'en rendre compte.
Lien vers le module --> on n'est pas sensé tout connaitre.
PS en général les bibliothèques fonctionnent, voir plutôt ce qui se passe entre la chaise et le clavier
OOOOOOO, j'apprécierais que tu me parles autrement !!!
Si je poste, c'est que je n'ai pas trouvé de solution !
Si tu avais un peu de bon sens, tu te demanderais pourquoi j'ai mis un lien au dessus du "machin noir" !
J'ai résolu ce problème, j'ai changer la place des fichiers et, c'est bon. Néanmoins mon module n'est pas détécté. J'ai soudé les pins sur le module pour qu'il marche en I2C. Je le connecte comme dit dans le User Guide et je lance l'example iso... mais, le module n'est pas détécté...
Calvin-duino:
"voir plutôt ce qui se passe entre la chaise et le clavier" Je te prierai de retirer ceci !!!
Pourtant l'erreur vient bien de là!
Il faut lire les messages renvoyés par la chaîne de compilation
Le machin noir disait que la librairie n'était pas installée
Et dans ta dernière copie d'écran il y a des warnings sur des problèmes que je qualifierais de critiques pour le bon fonctionnement du programme.
Faudrait peut-être traiter les warning concernant la taille des données: un int transformé en uint8, les décalages qui dépassent la taille des données sur lesquelles ils sont appliqués.
Concernant les messages d'erreur, l'IDE te propose de les copier il suffit ensuite de les coller dans ton message au lieu de nous obliger à aller charger une image sur un site extérieur.
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 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");
}
Je suis censé avoir des lignes qui me mettent en attente de signal mais là, j'ai juste un : "Hello !"
Quelques remarques et questions d'un gars qui n'a pas encore joué avec le PN532 .....
Concernant le bout de copie d'écran indiqué au message #3 :
image tronquée qui ne permet pas de s'assurer que la librairie a été installe au bon endroit.
l'initialisation I2C est effectuée à l'adresse 0x48, le scanner I2C localise, lui, un périphérique à l'adresse 0x42 (message #10)........bizarre !!
Y-a-t-il quelque part (coté Arduino ou côté module) des résistances de pull-up indispensables au fonctionnement du bus I2C ?
Le PN532 parait avoir plusieurs modes de fonctionnement (SPI, I2C,HSU) a-t-il bien été configuré en I2C au moyens des deux petits interrupteurs visibles en haut à droite sur le module ?
Remarque : les libraires sont souvent polyvalentes (modules voisins présentant qq différences, variantes de cartes Arduino....) il est nécessaire de bien vérifier la totale adaptation du code avec le périphérique particulier. ON n'est pas tout à fait en 'plug and play'.
Passons sur votre réponse 3 qui n'est pas appropriée... 68tjs a raison, même si ici parfois on ne prend pas trop de gants pour dire ce que l'on pense, c'est dans le cadre de "qui aime bien châtie bien" - mettez cela sur le compte de la frustration de ne pas pouvoir vous aider rapidement et "move on"...
Il y a un post où j'en ai parlé et donné du code de test.. si vous remontez dans mon historique de post vous le retrouverez j'avais mis aussi une photo pour les switches
EDIT - voilà je l'ai retrouvé - je vous laisse lire pour trouver le bout de code (et voir qu'il faut les exemple en fonction du mode de communication)
Essayez en SPI
pour le mode SPI le switch 1 doit être à 0 (à gauche) et le switch 2 doit être à 1 (à droite)
Le lecteur marche mais, pas comme je le voudrais...
En effet, je voudrais avoir toutes les informations d'une carte quand je l'a passe devant. Là, j'utilise le code :
// ATTENTION DE BIEN METTRE LES 2 SWITCHES EN POSITION SPI 1 OFF ET 2 ON
#if 1 // <<--- ON MET 1 ICI PARCE QUE ON EST EN SPI, SINON METTRE 0
#include <SPI.h>
#include <PN532_SPI.h>
#include <PN532.h>
#include <NfcAdapter.h>
PN532_SPI pn532spi(SPI, 10);
NfcAdapter nfc = NfcAdapter(pn532spi);
#define SPIMODE // POUR ETRE UTILISE DANS LE SETUP
// ---------- LES AUTRES CI DESSOUS SERONT IGNOREES ----------
// conservés ici juste pour le cas où vous voudriez changer
#elif 0 // <<--- ICI ON LAISSE 0, METTEZ 1 SI EN HSU (Serial) ET CHANGEZ L'AUTRE 1 en 0
#include <PN532_HSU.h>
#include <PN532.h>
#include <NfcAdapter.h>
PN532_HSU pn532hsu(Serial3);
NfcAdapter nfc = NfcAdapter(pn532hsu);
#elif 0 // <<--- ICI ON LAISSE 0, METTEZ 1 SI EN I2C ET CHANGEZ L'AUTRE 1 en 0
#include <Wire.h>
#include <PN532_I2C.h>
#include <PN532.h>
#include <NfcAdapter.h>
PN532_I2C pn532_i2c(Wire);
NfcAdapter nfc = NfcAdapter(pn532_i2c);
#endif
// ---------- ---------- ---------- ---------- ---------- ----------
void setup(void) {
Serial.begin(115200);
Serial.println(F("LECTEUR NDEF"));
#ifdef SPIMODE
pinMode(10, OUTPUT);
pn532spi.wakeup();
#endif
nfc.begin();
}
void loop(void) {
if (nfc.tagPresent())
{
NfcTag tag = nfc.read();
Serial.println(tag.getTagType());
Serial.print(F("UID: ")); Serial.println(tag.getUidString());
if (tag.hasNdefMessage()) // every tag won't have a message
{
NdefMessage message = tag.getNdefMessage();
Serial.print(F("\nThis NFC Tag contains an NDEF Message with "));
Serial.print(message.getRecordCount());
Serial.print(F(" NDEF Record"));
if (message.getRecordCount() != 1) {
Serial.print(F("s"));
}
Serial.println(F("."));
// cycle through the records, printing some info from each
int recordCount = message.getRecordCount();
for (int i = 0; i < recordCount; i++)
{
Serial.print(F("\nNDEF Record ")); Serial.println(i + 1);
NdefRecord record = message.getRecord(i);
// NdefRecord record = message[i]; // alternate syntax
Serial.print(F(" TNF: ")); Serial.println(record.getTnf());
Serial.print(F(" Type: ")); Serial.println(record.getType()); // will be "" for TNF_EMPTY
// The TNF and Type should be used to determine how your application processes the payload
// There's no generic processing for the payload, it's returned as a byte[]
int payloadLength = record.getPayloadLength();
byte payload[payloadLength];
record.getPayload(payload);
// Print the Hex and Printable Characters
Serial.print(F(" Payload (HEX): "));
PrintHexChar(payload, payloadLength);
// Force the data into a String (might work depending on the content)
// Real code should use smarter processing
String payloadAsString = "";
for (int c = 0; c < payloadLength; c++) {
payloadAsString += (char)payload[c]; // pas eu le temps de changer, je n'aime pas les Strings!
}
Serial.print(" Payload (as String): ");
Serial.println(payloadAsString);
// id is probably blank and will return ""
String uid = record.getId();
if (uid != "") {
Serial.print(" ID: "); Serial.println(uid);
}
}
}
}
delay(3000);
}
Quand je passe le TAG ou la carte devant, j'obtiens ceci :
LECTEUR NDEF
Found chip PN532
Firmware ver. 1.6
Tag is not NDEF formatted.
Mifare Classic
UID: B2 58 8E 85
Tag is not NDEF formatted.
Mifare Classic
UID: F2 1D C5 A5
Quand à ma carte de bus, j'obtiens ceci :
LECTEUR NDEF
Found chip PN532
Firmware ver. 1.6
NFC Forum Type 2
UID: 04 36 0B BA 3F ** **
This NFC Tag contains an NDEF Message with 1 NDEF Record.
NDEF Record 1
TNF: 0
Type:
Payload (HEX):
Payload (as String):
Est'il possible d'avoir toutes les informations de la carte ? Que se passe t'il si je mets une carte bancaire ? Puis-je vaoir toutes les informations qui lui sont liés ?