Problema con scheda RFID Mifare RC522

ciao a tutti,
da pochissimo mi sono lanciato nel mondo di Arduino. Sto provando a costruire un prototipo per un progetto all'uni. Questo prototipo fa uso di un Arduino UNO R3, di un display 20x4, di una scheda Mifare RC522 di lettura per tag Rfid e di due tag classici, la scheda tipo bancomat e il portachiavi.

Ho montato il tutto seguendo lo schema che vi allego, si trova anche sul sito di Fritzing ma l'ho ordinato un pochettino per chiarirmi le idee.
Lo schermo è stato testato con l'esempio "hallo world" e funziona bene;
la scheda penso sia collegata in modo corretto visto che si accende anche un led arancione posto sopra, per sicurezza vi posto comunque una foto della scheda in funzione.

Il mio problema sta nel fatto che quando vado ad avvicinare il portachiavi e la tessera alla scheda Rfid questa sembra che non li rilevi... dovrebbero apparire le letture del codice della scheda ma non appare assolutamente nulla e i led sulla scheda non danno segno di vita....
potete aiutarmi???

Visto che i tag sono passivi (non hanno un'alimentazione proprio) potrebbe essere che le antenne del portachiavi e della scheda bancomat non sono abbastanza eccitate e quindi non hanno abbastanza corrente per tramettere il segnale? Se fosse questo la fonte del problema come potrei risolverlo.

Ringrazio anticipatamente chiunque voglia aiutarmi e scusate eventuali errori di programmazione o di assemblaggio dei componenti ma non sono ne un informatico ne un elettronico purtroppo :frowning:

Vi allego anche il codice trovato in rete e caricato sulla scheda arduino:

#include <SPI.h>
#include <RFID.h>
#include <LiquidCrystal.h>

#define SS_PIN 10
#define RST_PIN 9

RFID rfid(SS_PIN, RST_PIN); 

LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

// Setup variables:
    int serNum0;
    int serNum1;
    int serNum2;
    int serNum3;
    int serNum4;

void setup()
{ 
  Serial.begin(9600);
  lcd.begin(20, 4);
  SPI.begin(); 
  rfid.init();
  
}

void loop()
{
    
    if (rfid.isCard()) {
        if (rfid.readCardSerial()) {
            if (rfid.serNum[0] != serNum0
                || rfid.serNum[1] != serNum1
                || rfid.serNum[2] != serNum2
                || rfid.serNum[3] != serNum3
                || rfid.serNum[4] != serNum4
            ) {
                /* With a new cardnumber, show it. */
                Serial.println(" ");
                Serial.println("Card found");
                serNum0 = rfid.serNum[0];
                serNum1 = rfid.serNum[1];
                serNum2 = rfid.serNum[2];
                serNum3 = rfid.serNum[3];
                serNum4 = rfid.serNum[4];
               
                //Serial.println(" ");
                Serial.println("Cardnumber:");
                Serial.print("Dec: ");
		Serial.print(rfid.serNum[0],DEC);
                Serial.print(", ");
		Serial.print(rfid.serNum[1],DEC);
                Serial.print(", ");
		Serial.print(rfid.serNum[2],DEC);
                Serial.print(", ");
		Serial.print(rfid.serNum[3],DEC);
                Serial.print(", ");
		Serial.print(rfid.serNum[4],DEC);
                Serial.println(" ");
                        
                Serial.print("Hex: ");
		Serial.print(rfid.serNum[0],HEX);
                Serial.print(", ");
		Serial.print(rfid.serNum[1],HEX);
                Serial.print(", ");
		Serial.print(rfid.serNum[2],HEX);
                Serial.print(", ");
		Serial.print(rfid.serNum[3],HEX);
                Serial.print(", ");
		Serial.print(rfid.serNum[4],HEX);
                Serial.println(" ");

                /* Write the HEX code to the display */
                lcd.clear();                
                lcd.setCursor(0, 0);
                lcd.print("Cardno (hex):");
                lcd.setCursor(0,1);
                lcd.print(rfid.serNum[0], HEX);
                lcd.print(',');
                lcd.print(rfid.serNum[1], HEX);
                lcd.print(',');
                lcd.print(rfid.serNum[2], HEX);
                lcd.print(',');
                lcd.print(rfid.serNum[3], HEX);
                lcd.print(',');
                lcd.print(rfid.serNum[4], HEX);
             } else {
               /* If we have the same ID, just write a dot. */
               Serial.print(".");
             }
          }
    }
    
    rfid.halt();
}

salda meglio quel connettore..... il problema e' tutto li'

Brunello:
salda meglio quel connettore..... il problema e' tutto li'

+1

... quelle saldature ... fanno veramente ... lasciano moooolto a desiderare (... e sono moooolto educato perché sei nuovo XD)

Guglielmo

e sopratutto salda bene tutti i piedini.
Ciao Uwe

Vedo che siete tutti concordi sull'idea della saldatura, mi fa piacere, almeno ho un ipotesi di problema.

la metto a posto e vedo un po' come va

grazie per avermi trattato bene... avete assolutamente ragione... =(

ma dai, mica te la prenderai a male...
Sei anche uno dei pochi che prima si presenta, quindi da trattare bene
Comunque quelle saldature sono proprio fatte male e come ti hanno fatto notare, neanche tutti i pin sono saldati

prendi un saldatore Ben caldo, lo appoggi da una lato, toccando sia la piazzola che il pin sporgente
Conti fino a due e appoggi lo stagno dalla parte opposta. Un secondo che si scoglie lo stagno e togli il tutto

almeno ho un ipotesi di problema.

Comunque non e' un ipotesi, ma il problema.
Il collegamento e' corretto e lo sketch di prova funziona

No raga figuratevi se me la prendo a male, sono abituato a fare lo scudiero e ho voglia d'imparare... Umiltà forever XD

le prime saldature sul display sono venute discretamente poi ho visto che su sta scheda venivano male e si formavano subito le palline di stagno e mi sono fermato per non arrecare danni alla scheda, pensavo funzionasse anche senza le saldature... forse ho la punta del saldatore troppo larga, mah...

vedrò di recuperare, mi servirebbe solo un modo per fare un po' di pratica senza distruggere schede che mi servono

Diven87:
vedrò di recuperare, mi servirebbe solo un modo per fare un po' di pratica senza distruggere schede che mi servono

Tavola di legno, disegni a matita una griglia di 15 x 15 e ... ad ogni incrocio metti un chiodo di ferro ...
... prendi filo di rame, saldatore e stagno e saldi bene il filo di rame sulla testa di tutti i chiodi ... uno ad uno !

Parti dal primo e ... quando arrivi all'ultimo hai imparato a fare le saldature !!! XD XD XD

Provare per credere ... :wink:

Guglielmo

15x15 cm? prendo i chiodi più piccoli che trovo? vanno bene di ferro?

voi mi dite quello che devo fare e io lo faccio (cit. Pino La Lavatrice da Colorado Caffè) :grin:

Diven87:
15x15 cm? prendo i chiodi più piccoli che trovo? vanno bene di ferro?

Anche più larga, lo scopo è quello di obbligarti a fare 225 saldature ... i chiodi che siano puliti, piccoli e di ferro .. altrimenti lo stagno non ci attacca :wink:

T'assicuro che è un bell'esercizio ... :grin:

Guglielmo

P.S. : La prima volta che feci delle saldature, moooolto tempo fa, qualcuno le guardò e disse "... ma che se' fanno così le sardature", con accento piuttosto greve. Ci rimasi male e ... non hai idea di quanti chiodini ho saldato, ma alla fine ... saldavo/saldo meglio di una saldatrice ad onda XD XD XD

Grazie mille!!! finito gli esami lo farò sicuramente, è una vergogna... ancor di più se vi dico che so saldare l'acciaio.

per ora però mi devo accontentare delle mie attuali non doti.

Ho riprovato a saldare saldando tutti i pin ma nulla ragazzi, non và!!! non riconosce i due tag

vi posto una foto in modo da farvi giudicare di nuovo la bontà delle saldature

Sicuro che non faccia corto tra MOSI e SCK quella pallina di stagno ... hai verificato con un tester ?

Prova un po' a muoverle (senza strappare le piste, mi raccomando) ... se qualcuna è venuta male ed è attaccata solo grazie al flussante ... si stacca ...

Verifica, sempre con il tester, anche tutte le altre connessioni ... :wink:

Guglielmo

Saldature accettabili hanno un altro aspetto.

http://forum.arduino.cc/index.php?topic=246308.msg1762075#msg1762075

Ciao Uwe

uwefed:
Saldature accettabili hanno un altro aspetto.

pololu a4988 a scatti - #12 by uwefed - Generale - Arduino Forum

Ciao Uwe

Grazie per la dispensa... appena finisco gli esami leggo tutto :wink:

:cold_sweat: sapevo di dover comperare il tester prima o poi... domani lo compro e provo :wink:

=( =( =( =(

Niente da fare ragazzi... non funziona!!! ho provato col tester e i valori sono diversi, comunque ho staccato un po le saldature tanto per essere sicuri ma nulla, non va, non riconosce le etichette.

Avete altre idee o mi devo rassegnare al fatto che la scheda non funzioni?

gpb01:

Diven87:
vedrò di recuperare, mi servirebbe solo un modo per fare un po' di pratica senza distruggere schede che mi servono

Tavola di legno, disegni a matita una griglia di 15 x 15 e ... ad ogni incrocio metti un chiodo di ferro ...
... prendi filo di rame, saldatore e stagno e saldi bene il filo di rame sulla testa di tutti i chiodi ... uno ad uno !

Parti dal primo e ... quando arrivi all'ultimo hai imparato a fare le saldature !!! XD XD XD

Provare per credere ... :wink:

Guglielmo

Sto provando ad allenarmi sulle saldature con quest'altro sistema, basetta millefori/pin. Le volevo chiedere quale delle saldature nella foto le sembra la più idonea, in modo da continuare avendo presente una saldatura buona e non continuare a sbagliare.
A sentore mi sembra che la saldatura 9 da sinistra sia accettabile, lo dico solo perché mi ricorda qualche immagine di elettronica.

La ringrazio

Il settimo anello (sesta saldatura perché hai saltato un anello) da sinistra mi sembra molto buona :slight_smile:

Anche il nono anello (ottava saldatura, sempre considerando che hai saltato un anello) da sinistra è anch'essa buona.

Guglielmo

:wink: grazie maestro.

la saldatura che non c'è l'avevo fatta ma è saltata perché evidentemente era fatta male :slight_smile:

Ciao a tutti!

anche io mi sono cimentato nella saldatura dei connettori sulla schedina RFID-RC522.
Premesso che forse un cane sa saldare meglio di me, ho voluto fare un giro col tester per vedere se per caso avessi saldato male a tal punto da mettere in contatto due connettori.
Mi sono accorto che metto i puntali del tester su GND e RST, c'è continuità, ma sono sicuro di non aver messo in comunicazione i due contatti con lo stagno (si vede bene a occhio che non ce n'è fra i due). Com'è possibile?

EDIT: per fortuna sembra tutto nella norma. Sono riuscito a leggere qualche scheda, quindi la saldatura sembra ben fatta.