Ho collegate tutto e anche caricato lo sketch quando vado ad avvicinare la scheda magnetica il codice che arduino legge qualche volta cambia ovvero che alcune volte legge un codice altre un altro perché??
Aiutoo??
Aiuto di che ? L'hai letto o no il regolamento ?
Punto 11: [REGOLAMENTO] Come usare questa sezione del forum - #2 by leo72 - Italiano - Arduino Forum
Come già detto ho collegato ad un arduino uno una scheda rfid-rc522 e voglio semplicemente leggere il codice della scheda magnetica per accendere un led verde se il codice corrisponde e uno rosso se la scheda non corrisponde al codice precendemente letto ma la scheda rfid legge dalla scheda magnetica una volta un codice e una volta un altro ovvero una volta corrisponde accensione led verde e un altra volte non corrisponde accensione led rosso perché?
Allora mica l'hai letta quella sezione 11.
Ed io ti ripeto che devi dare tutte le informazioni. Modelli di rfid c'e' ne sono molti, basta che vai su ebay e cerchi rfid reader ed i cinesi te ne vendono diversi con diverse librerie. E devi postare il codice.
Ora hai capito il problema del perchè nessuno ti aiuta in questo thread ? Mancano info.
E non mi dire che le info sono un altro thread perchè non è accettabile. Se è così metti almeno il link a quell'altro thread, mica possiamo spulciare il forum per cercare le tue info.
utilizzo un modulo mifare RC522 per prima cosa leggo il codice della tessera magnatica con questo sketch
#include <SPI.h>
#include <RFID.h>
/* Vengono definiti PIN del RFID reader*/
#define SDA_DIO 10 // 53 per Mega
#define RESET_DIO 9
#define delayRead 1000 // Time of delay
/* Viene creata una istanza della RFID libreria */
RFID RC522(SDA_DIO, RESET_DIO);
void setup()
{
Serial.begin(9600);
/* Abilita SPI*/
SPI.begin();
/* Viene inizilizzato RFID reader */
RC522.init();
Serial.println("Setup");
}
void loop()
{
/* Temporary loop counter */
byte i;
// Se viene letta una tessera
if (RC522.isCard())
{
// Viene letto il suo codice
RC522.readCardSerial();
String codiceLetto ="";
Serial.println("Codice delle tessera letto:");
// Viene caricato il codice della tessera, all'interno di una Stringa
for(i = 0; i <= 4; i++)
{
codiceLetto+= String (RC522.serNum[i],HEX);
codiceLetto.toUpperCase();
}
Serial.println(codiceLetto);
delay(delayRead);
Serial.println();
Serial.println();
}
}
poi come ho detto prima utillizzo quest'altro sketch per accendere dei led
#define SDA_DIO 10 // 53 per Mega
#define RESET_DIO 9
#define delayRead 1000 // Time of delay
#define delayLed 2000
#define ledVerde 3
#define ledRosso 4
/* Viene creata una istanza della RFID libreria */
RFID RC522(SDA_DIO, RESET_DIO);
String codiceAutorizzato = "EC40E03478";
void setup()
{
Serial.begin(9600);
/* Abilita SPI*/
SPI.begin();
/* Viene inizilizzato RFID reader */
RC522.init();
Serial.println("Setup");
pinMode(ledVerde,OUTPUT);
pinMode(ledRosso,OUTPUT);
}
void loop()
{
/* Temporary loop counter */
byte i;
// Se viene letta una tessera
if (RC522.isCard())
{
// Viene letto il suo codice
RC522.readCardSerial();
String codiceLetto ="";
Serial.println("Codice delle tessera letto:");
// Viene caricato il codice della tessera, all'interno di una Stringa
for(i = 0; i <= 4; i++)
{
codiceLetto+= String (RC522.serNum[i],HEX);
codiceLetto.toUpperCase();
}
Serial.println(codiceLetto);
if(verificaCodice(codiceLetto)){
Serial.println("Tessera autorizzata");
accendiLed(ledVerde);
}else{
Serial.println("Tessera non autorizzata");
accendiLed(ledRosso);
}
delay(delayRead);
}
}
// Questa funzione verifica se il codice Letto è autorizzato
boolean verificaCodice(String codiceLetto){
if(codiceLetto.equals(codiceAutorizzato)){
return true;
}else{
return false;
}
}
// Questa funzione permette di accendere un LED per un determinato periodo
void accendiLed(int ledPin){
digitalWrite(ledPin,HIGH);
delay(delayLed);
digitalWrite(ledPin,LOW);
}
i collegamenti con arduino uno per quanto riguarda l'hardware sono i seguenti
RC522 MODULE Uno/Nano
SDA D10
SCK D13
MOSI D11
MISO D12
IRQ N/A
GND GND
RST D9
3.3V 3.3V
the problem sometimes is not the code o the conection, sometimes is the tag, the rc522 can't read the tag that come along with this. so you must change the inicial settings for others (I dont know). or try to buy another tag that can be read for the rc522.