.. note::
Ciao, benvenuto nella community SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
**Perché unirsi?**
- **Supporto esperto**: Risolvi problemi post-vendita e sfide tecniche con l'aiuto della nostra community e del nostro team.
- **Impara e condividi**: Scambia suggerimenti e tutorial per migliorare le tue competenze.
- **Anteprime esclusive**: Accedi in anteprima agli annunci di nuovi prodotti.
- **Sconti speciali**: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
- **Promozioni e omaggi festivi**: Partecipa a omaggi e promozioni speciali durante le festività.
👉 Pronto per esplorare e creare con noi? Clicca [|link_sf_facebook|] e unisciti oggi stesso!
.. _ar_rfid:
2.35 Modulo RFID-RC522
=========================
Panoramica
-----------------
In questa lezione imparerai a utilizzare il modulo RFID. RFID è l'acronimo
di Radio Frequency Identification. Il suo principio di funzionamento si basa
sulla comunicazione dati senza contatto tra il lettore e l'etichetta per
identificare un obiettivo. Le applicazioni RFID sono molto estese; tra quelle
più tipiche troviamo microchip per animali, immobilizzatori, controllo accessi,
gestione parcheggi, automazione delle linee di produzione e gestione dei materiali.
Componenti necessari
-------------------------
.. image:: img/Part_two_35.png
* :ref:`cpn_mega2560`
* :ref:`cpn_wires`
* :ref:`cpn_rfid`
Circuito Fritzing
----------------------
In questo esempio, inseriamo il modulo RFID nel breadboard. Colleghiamo il
3.3V del modulo RFID al 3.3V, GND a GND, RST al pin 2, SDA al pin 6, SCK al
pin 5, MOSI al pin 4, MISO al pin 3 e IRQ al pin 7.
.. image:: img/image259.png
:align: center
Schema elettrico
----------------------
.. image:: img/image260.png
:align: center
Codice
-------------
.. note::
* Puoi aprire direttamente il file ``2.35_RFID.ino`` nella cartella ``sunfounder_vincent_kit_for_arduino\code\2.35_RFID``.
* Qui viene utilizzata la libreria ``RFID1``; fai riferimento a :ref:`install_lib_man` per un tutorial sull'installazione.
.. raw:: html
Dopo aver caricato il codice sulla scheda Mega2560, puoi avvicinare la tua
scheda RFID (chiave segreta) al lettore RFID. Il modulo leggerà le informazioni
della scheda e le stamperà sul monitor seriale.
Analisi del codice
----------------------
Le funzionalità del modulo sono incluse nella libreria rfid1.h.
.. code-block:: arduino
#include
**Funzioni della libreria:**
.. code-block:: arduino
RFID1
Crea una nuova istanza della classe rfid1 che rappresenta un particolare
modulo RFID collegato al tuo Arduino.
.. code-block:: arduino
void begin(IRQ_PIN,SCK_PIN,MOSI_PIN,MISO_PIN,SDA_PIN,RST_PIN)
Configurazione dei pin.
* ``IRQ_PIN, SCK_PIN, MOSI_PIN, MISO_PIN``: i pin utilizzati per la comunicazione SPI.
* ``SDA_PIN``: adattatore dati sincrono.
* ``RST_PIN``: i pin utilizzati per il reset.
.. code-block:: arduino
void init()
Inizializza l'RFID.
.. code-block:: arduino
uchar request(uchar reqMode, uchar *TagType);
Cerca una scheda e leggi il tipo di scheda. La funzione restituirà lo
stato corrente della lettura RFID e restituirà MI_OK se il processo ha successo.
* ``reqMode``: Metodo di ricerca. PICC_REQIDL è definito con il comando 0x26 (cerca le schede che non sono in modalità di riposo nell'area dell'antenna).
* ``*TagType``: Memorizza il tipo di scheda, che può essere un valore a 4 byte (es. 0x0400).
.. code-block:: arduino
char * readCardType(uchar *TagType)
Questa funzione decodifica il numero esadecimale a quattro cifre di ``*tagType``
nel tipo specifico di scheda e restituisce una stringa. Se passato 0x0400,
verrà restituito "MFOne-S50".
.. code-block:: arduino
uchar anticoll(uchar *serNum);
Evita conflitti e leggi il numero seriale della scheda. La funzione restituirà
lo stato corrente della lettura RFID e restituirà MI_OK se il processo ha successo.
* ``*serNum``: Memorizza il numero seriale della scheda e restituisce il numero seriale a 4 byte. Il 5° byte è il byte di verifica (es. ID della scheda magnetica: 5AE4C955).
Immagine del fenomeno
------------------------
.. image:: img/Part_two_35_Code_Analysis.png
:alt: 2.35
:align: center