Controllo accessi RFID Tastierino

Il controllo accessi rfid tastierino è un progetto che tanti makers desiderano realizzare e Adriano ha realizzato e voluto condividere con tutti noi.

controllo accessi rfid tastierino

Come spesso accade il Venerdì è la giornata dedicata in cui descrivo i progetti che non realizzo personalmente ma che altri appassionati e makers desiderano condividere usando il blog.

Diciamo che il venerdì è la giornata della vetrina su progetti tuoi un giorno in cui puoi mostrare a tutti cosa hai realizzato.

Oggi il progetto che riporto è di Adriano Guscetti: Controllo accessi RFID Tastierino, lascio la descrizione all’autore:

Il programma permette di autorizzare tramite lettura di una chiave elettronica (RFID) e l’inserimento di una password inserita tramite una tastiera 4 righe e 4 colonne, l’accesso a qualsivoglia entrata o apparecchio.

I dati di chi è autorizzato a entrare sono memorizzati direttamente nello sketch nella funzione PadroneChiave.

Scegliendo il tasto D si interrompe l’immissione

Scegliendo il tasto * si cancella l’ultima immissione

Scegliendo il tasto # si conferma l’immissione prima della lunghezza massima (7 caratteri)

I tasti A, B e C non hanno nessuna funzione.

Cosa ti server per il Controllo accessi RFID Tastierino

Il materiale necessario a realizzare il controllo accessi rfid tastierino 4×4 è il seguente:

  • Arduino Mega 2560
  • Scheda RFID-RC522
  • Tastierino 4×4
  • Buzzer
  • LCD 4×20

Il collegamento di questi componenti non è complesso tuttavia è necessario che tu faccia attenzione a non confondere i pin dell’arduino mega 2560, puoi seguire lo schema inviato da Adriano:

controllo accessi rfid tastierino

avrai già notato a quali pin collegare i componenti, tuttavia Adriano ha voluto specificarli nella descrizione del progetto e li riporto per completezza:

  • La scheda RFID-RC522 devi collegarla ai pin: RST   5, MISO  50, MOSI  51, SCK   52, SDA   53
  • Il tastierino 4×4 devi collegarlo ai pin dal 34 al 41: pin 37, 36, 35, 34 rispettivamente riga0, riga1, riga2 e riga3; pin 41, 40, 39, 38 rispettivamente alle colonne: colonna0, colonna1 , colonna2 e colonna3
  • Il buzzer collegalo al pin 7
  • LCD 4×20 collegato ai pin 22 RS, 23 E, 24 DB4, 25 DB5, 26 DB6, 27 DB7

Lo sketch di Adriano

Ecco lo sketch che Adriano ha realizzato per il controllo accessi rfid tastierino 4×4:

/*
Adriano Guscetti marzo 2014
Il programma permette di autorizzare tramite lettura di una chiave elettronica (RFID)e l'inserimento di una 
password inserita tramite una tastiera 4 righe e 4 colonne, l'accesso a qualsivoglia entrata o apparecchio.
I dati di chi è autorizzato a entrare sono memorizzati direttamente nello sketch nella Void PadroneChiave.
Scegliendo il tasto D si interrompe l'immissione
Scegliendo il tasto * si cancella l'ultima immissione
Scegliendo il tasto # si conferma l'immissione prima della lunghezza massima (7 caratteri)
I tasti A, B e C non hanno nessuna funzione.

Arduino Mega 2560
Scheda RFID-RC522 allacciata ai seguenti Pin:
RST   5
MISO  50
MOSI  51
SCK   52
SDA   53
Tastierino 4x4 allacciato ai Pin 34 - 41 (vedi impostazioni sotto)
Buzzer al Pin 7
LCD 4x20 allacciato ai Pin 22 - 27 (vedi impostazioni sotto)
*/
String stringa;
String codice;
String nome;
int IDCarta;
int ID;
int caratterimax;
int errore;
int i=0;
int numero;
int cifra;
int spazio;
int PinEntrata =30;

//RFID
#include <SPI.h>
#include <MFRC522.h>
//Viene creata l'istanza dell'oggetto MFRC522 chiamata mfrc522 in cui sono indicati i pin del RFID collegati alle uscite digitali di Arduino
#define SS_PIN 53
#define RST_PIN 5
MFRC522 mfrc522(SS_PIN, RST_PIN);        // Crea istanza MFRC522.

//LCD 20x4
#include <LiquidCrystal.h>
//Viene creata l'istanza dell'oggetto LiquidCrystal chiamata lcd in cui sono indicati i pin dell'LCD collegati alle uscite digitali di Arduino  
LiquidCrystal lcd(22, 23, 24, 25, 26, 27);

//Tastiera
// Definizione tastiera
#include <Keypad.h>
const byte ROWS = 4; // Quattro righe
const byte COLS = 4; // Quattro colonne
// Definizione mappa della tastiera
char keys[ROWS][COLS] = {
{'1','4','7','*'},
{'2','5','8','0'},
{'3','6','9','#'},
{'A','B','C','D'}
};
byte rowPins[ROWS] = {37, 36, 35, 34 }; // Connessione delle righe: Riga0, Riga1, Riga2 e Riga3 ai pins di Arduino.
byte colPins[COLS] = {41, 40, 39, 38 }; // Connessione delle colonne: Colonna0, Colonna1 , Colonna2 e Colonna3 ai pins di Arduino.
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); // Creazione della tastiera

void setup() 
{
  //LCD
  //imposta il numero di colonne ed il numero di righe
   lcd.begin(4, 20);
   // Visualizzo il nome dello Sketch sul display
   lcd.print("EntrataV01");
   delay(1000);

   Serial.begin(9600);        // Initializza la communicazione seriale
   SPI.begin();                // Inizializza il bus SPI
   mfrc522.PCD_Init();        // Inizializza la carta MFRC522
   pinMode(7, OUTPUT);

   pinMode(PinEntrata,OUTPUT); //PIN per attivare l'accesso
}
void loop()
{
  // Prepara la key - tutte le aree keys a FFFFFFFFFFFFh 
  MFRC522::MIFARE_Key key;
  lcd.setCursor(0,2);
  lcd.print("Annunciarsi !!!");
  for (byte i = 0; i < 6; i++) 
  {
    key.keyByte[i] = 0xFF;
  }
  //Controlla che si annunci una nuova chiave
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  //Selezionato una chiave
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }

  // Con la selezione di una chiave emette un bip !
  digitalWrite(7, HIGH);
  delay(100);
  digitalWrite(7, LOW);

  // Una nuova chiave è stata selezionata. L'UID e SAK sono in mfrc522.uid.

  //Restituisce il munero decimale dell'ID della chiave sommando i 4 blocchi di numeri
  IDCarta=0;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
    if (i==0){IDCarta=(mfrc522.uid.uidByte[i]);}
    if (i==1){IDCarta+=(mfrc522.uid.uidByte[i]);}
    if (i==2){IDCarta+=(mfrc522.uid.uidByte[i]);}
    if (i==3){IDCarta+=(mfrc522.uid.uidByte[i]);}
  }

  // Mostra il numero della chiave, questo codice sarà da eliminare!
  lcd.clear();
  lcd.setCursor(0,2);
  lcd.print(IDCarta);
  delay(2000);

  PadroneChiave(); //Verifica a chi appartiene la chiave

  lcd.clear();
  lcd.setCursor(0,0);
  lcd.setCursor(0,1);
  lcd.print("Ciao ");lcd.print(nome);
  lcd.setCursor(0,2);
  lcd.print("Codice: ");lcd.print(codice); //Questo non dovrà essere mostrato è solo per il test
  delay(2000);

  //Inserimento codice di sicurezza
  errore=3; //Numero di volte che si può sbaglire l'inserimento del codice
  caratterimax=6;//lunghezza massima caratteri della stringa n° + 1
  stringa="";
  while(stringa!=codice)
  {
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Inserisci codice");
    lcd.setCursor(0,1);
    lcd.print("max ");lcd.print(caratterimax+1);lcd.print(" caratteri");

    InserisceStringa(); //Void per la lettura del tastierino

    if(stringa=="A"){break;}
    if(stringa=="B"){break;}
    if(stringa=="C"){break;}
    if(stringa=="D"){break;}

    if(i<=3) // Il codice deve essere al minimo di 4 caratteri
    {
      lcd.clear();
      lcd.setCursor(0, 1);
      lcd.print("Codice troppo corto");
      lcd.setCursor(0, 2);
      lcd.print("minimo 4 lettere !");
      delay(2000);
      stringa="";
    } 

    if((stringa!=codice)&&(i>3))
    {
      errore--;
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Codice ERRATO !!");
      lcd.setCursor(0, 1);
      lcd.print("Riprova -"); lcd.print(errore);
      delay(2000);
      if(errore==0){break;}
      stringa=""; 
    }
  }

  if(stringa=="A")//è stato scelto il tasto A
  //La lettera A non è utilizzata
  {
    lcd.clear(); 
    lcd.setCursor(0, 0);
    lcd.print("Hai scelto > A <");
    lcd.setCursor(0, 1);
    lcd.print("Tasto non utilizzato !!!");
    delay(2000);
  }

  if(stringa=="B") //La lettera B non è utilizzata
  {
    lcd.clear(); 
    lcd.setCursor(0, 0);
    lcd.print("Hai scelto > B <");
    lcd.setCursor(0, 1);
    lcd.print("Tasto non utilizzato !!!");
    delay(2000);
  }

  if(stringa=="C")//La lettera C non è utilizzata
  {
    lcd.clear(); 
    lcd.setCursor(0, 0);
    lcd.print("Hai scelto > C <");
    lcd.setCursor(0, 1);
    lcd.print("Tasto non utilizzato !!!");
    delay(2000);
  }
  if(stringa=="D")// Scegliendo la lettera D si interrompe l'immissione
  {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Hai scelto STOP!");
    lcd.setCursor(0, 1);
    lcd.print("Devi riannunciarti !");
    delay(2000);
  }
  //Se il codice corrisponde, attiva il PIN dove si può allacciare per esempio il meccanismo d'apertura di una porta (per la durarta di 3 secondi)
  if(stringa==codice)
  {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Puoi entrare");
    digitalWrite(PinEntrata, HIGH);
    delay(3000);
    digitalWrite(PinEntrata, LOW);
  }

  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("FINE FINE FINE FINE");
  delay(2000);
}

//Inserisce una stringa tramite tastierino
void InserisceStringa()
{
  i=0;
  while(i<=caratterimax) //Lunghezza massima stringa valore variabile caratterimax + 1
  {
    char key = kpd.getKey();
    if(key) // controlla che il valore sia valido.
    {
      if(key==65){stringa="A";break;}
      if(key==66){stringa="B";break;}
      if(key==67){stringa="C";break;}
      if(key==68){stringa="D";break;}
      if(key==35){break;}//Interrompe quando si digita #
      else{stringa += key;}//Aumenta la variabile stringa con il carattere digitato
      i++;
      if(key==42){stringa=stringa.substring(0,i-2); i-=2;lcd.setCursor(i, 2);lcd.print(" ");} //Se si digita * viene cancellato l'ultima cifra
      if(i>0) //Serve a evitare spiacevoli indicazioni sul LCD se si digita * quale primo tasto
      {
        lcd.setCursor(i-1, 2);
        lcd.print(key);
        delay(200);
        lcd.setCursor(i-1, 2);
        lcd.print("*");
      }
      if(i<0){stringa=""; i=0;} //SE si è digitato * come primo tasto rimette tutto a 0
    }
  }
}

//Void per definire a chi appartiene la chiave
void PadroneChiave()
{
  if(IDCarta==538){nome="Aldo"; codice="1111111";}
  if(IDCarta==423){nome="Giovanni"; codice="2222222";}
  if(IDCarta==621){nome="Giacomo"; codice="3333333";}
}

sketch corredato dalla spiegazione che lo stesso autore ha scritto per noi:

Righe 1-11: vengono dichiarate le variabili necessarie

Riga 12: viene impostato il pin che sarà attivato quando tutte le condizioni richieste per permettere l’accesso saranno verificate.

Righe 13-17: viene impostata la scheda RFID con la libreria MFRC522.h, e definito i pin necessari pin53 > SS, pin5 > RST

Righe 18-19: viene impostato LCD con la libreria LiquidCrystal.h, e definito i pin necessari pin22 > RS, pin23 > E, pin 24 > DB4, pin25 > DB5, pin26 > DB6, pin27 > DB7,

Righe 20-31: viene impostato il tastierino 4×4 con la libreria Keypad.h, e definito i pin necessari

Riga 34: definisce il tipo di LCD

Righe 35-36: per 1 secondo si mostra sul LCD il nome dello Sketch

Righe 37-41: si inizializzano la comunicazione seriale, il bus SPI, la scheda MFRC522, il pin 7 per il Buzzer e il pin per attivare il dispositivo che permette l’accesso (Pin30)

Righe 45-47: prepara la scheda RFID, fa apparire sul LCD la scritta  “Annunciarsi !!!” e aspetta che qualcuno passi una chiave vicino al ricevitore.

Righe 48-59: seleziona la chiave e memorizza i dati tramite la libreria MFRC522.h in mfrc522.uid

Righe 60-62: al passaggio di una chiave viene attivato per 1 decimo di secondo il pin del Buzzer in modo da confermare con un avviso sonoro che la chiave è stata letta.

Rigge 63-70: per una facilità di gestione dei numeri delle chiavi, si trasformano i primi 4 Byte del ID della carta in un numero decimale che viene attribuito alla variabile IDCarta.

Righe 71-74: solo per la versione di prova !!! sarà da cancellare nella versione definitiva mostra sul LCD il numero della chiave

Riga 75: tramite la funzione PadroneChiave verifica a chi appartiene la chiave. In questa versione i dati sono memorizzati direttamente nella funzione, si potrà a volontà trovare altri metodi di memorizzazione

Righe 76-82: saluta il padrone della chiave e indica il codice (anche il codice dovrà essere nascosto in una versione definitiva)

Righe 83-85: si definiscono i parametri per l’inserimento della Password, come il numero delle volte che può essere inserita sbagliata (variabile errore) e la lunghezza massima (variabile caratterimax), impostando le variabili che saranno utilizzate per l’inserimento (variabile stringa).

Riga 86: inizia il ciclo d’inserimento codice

Righe 87-92: fa apparire sul LCD l’invito a inserire il codice e spiega quanto può essere lungo

Riga 93: rimanda alla funzione per l’inserimento della stringa di caratteri (spiegazione alle righe 175 – 198)

Righe 94-97: se si digita A, B, C o D sul tastierino, si esce dal ciclo d’inserimento del codice

Righe 98-107: controlla che il codice sia di almeno 4 caratteri, se non lo è, viene comunicato sul LCD per 2 secondi

Righe 108-119: se il codice non corrisponde lo comunica per 2 secondi sul LCD con l’indicazione di quanti tentativi d’inserimento rimangono

Riga 120: termine del ciclo d’inserimento codice

Righe 121-156: routine scelta tasti A,B,C o D, al momento viene solo indicato su LCD che il tasto scelto non è utilizzato.

Righe 157-165: se il codice corrisponde con quanto inserito, viene attivato per 3 secondi  il pin che avvia il dispositivo per permette l’accesso (Pin30)

Righe 166-169: indica per 2 secondi sul LCD che si è terminato

Riga 170: fine ciclo d’inserimento codice

Riga 171: funzione per inserire una stringa tramite tastierino

Righe 172-183: se viene digitato A, B, C, D e #,  si esce dalla funzione.

Riga 184: aumenta la variabile stringa con il numero digitato

Righe 185-186: se si digita * cancella l’ultimo numero digitato

Righe 187-194: visualizza su LCD un * al posto del numero digitato

Riga 195: serve a rimettere le variabili alla situazione iniziale, nel caso sia stato digitato * quale primo  tasto e evitare spostamenti del “cursore” nel LCD

Riga 198: termine della funzione

Righe 199-204: funzione per la lettura dei dati legati alle chiavi che hanno diritto d’accesso. In questo esempio sono salvati direttamente nella funzione, ma potrebbe essere una qualsiasi funzione che legge dati da dispositivi vari, per esempio una scheda SD.

Buon controllo accessi rfid !!!

Cortesemente, prima di inserire i commenti leggi il regolamento

Permanent link to this article: http://www.mauroalfieri.it/elettronica/controllo-accessi-rfid-tastierino.html

32 comments

Skip to comment form

    • federico on 25 maggio 2014 at 18:17
    • Reply

    Ciao, ottimo tutorial.
    Volevo chiederti una cosa, se puoi realizzare un tutorial dove spieghi l’utilizzo di Arduino mega con l’ ethernet shield. Non riesco a capire se dopo l’inserimento dell’ethernet su arduino mega, i pin di sotto non inclusi nn li posso utilizzare.

    Grazie in anticipo

    1. Ciao Federico,
      la ethernet shield usa i pin MOSI (D11 arduino uno r3) ,MISO (D12 arduino uno r3),CLK (D13 arduino uno r3) e CS ( D10 arduino uno r3 ) del protocollo SPI che non coincidono con i medesimi pin della MEGA ( consulta il datasheet sul sito arduino.cc )
      Dovrai fare i collegamenti con i jumper.

    • Fabio on 24 giugno 2014 at 02:17
    • Reply

    Ciao Mauro,
    come per tanti altri tutorial, ho trovato molto interessante anche questo con lettore RFID e l’ho acquistato.
    Mi sono limitato a testarlo da solo senza utilizzare anche LCD e componenti vari, aprendo uno degli esempi riportati nella cartella dentro la libreria , ma il lettore non legge alcuna tessera di quelle fornite. Mi sono assicurato che i collegamenti fossero fatti bene con la giusta corrispondenza dei pin dichiarati nel programma, e lì non ci sono errori ( ovviamente la libreria è ben importata).
    Ho notato che un led rosso etichettato D1 rimane costantemente acceso sulla scheda , ma dai video di utilizzo in rete ho visto che è normale.. Secondo te cosa ho sbagliato?
    Premetto che ho provato anche altre chiavi magnetiche acquistate, e nessuna funziona..

    Ti ringrazio per l’attenzione

    1. Ciao Fabio, la shield è identica a quella mostrata? L’hai assemblata tu? A me non resta acceso il led rosso per cui potrebbe essere un errore di assemblaggio della shield.

  1. Tutorial molto interessante e chiaro,

    mi piacerebbe testare il sistema di controllo accessi in laboratorio, dove si possono acquistare i componenti per un primo test? Esiste un Vs. e-commerce?

    Grazie anticipatamente,

    Vincenzo.

    1. Ciao Vincenzo,
      Sono un appassionato e docente ma non possiedo un é-commerce.
      Io acquisto i componenti dei miei progetti su robot-domestici.it.
      Puoi verificare sul loro store se sono disponibili tutti i prodotti.

    • Michele on 10 settembre 2015 at 09:57
    • Reply

    ciao Mauro sono Michele un appassionato di domotica vorrei un piccolo aiuto, tempo fa ho realizzato un webserver con arduino da cui comando l’apertura delle tapparelle di casa da remoto, ad funziona perfettamente però vorrei ampliare il progetto inserendo in parallelo al tutto un lettore rfid con cui gestire tale apertura e chiusura, ho provato a modificare lo stretch ma quando collego la ethernet shiel non funziona più nulla, se puoi potresti aiutarmi ?

    il mio dubbio e che sia la ethernet shield che l’ rfid usino gli stessi pin, è possibile collegare i pin dell’rfid altrove ??

    1. Ciao Michele,
      se hai utilizzato la ethernet shield arduino originale avrai senza dubbio occupato i pin 10,11,12,13 controlla che la RFID non usi i medesimi pin o il connettore ICSP in basso al centro di arduino che di fatto è connesso ai medesimi pin.

    • Nea on 29 ottobre 2015 at 17:12
    • Reply

    Ciao Mauro,
    volevo avere una delucidazione; a riga 82 viene inizializzata la comunicazione seriale (serial.begin(9600)) ma in effetti la comunicazione seriale non viene usata per tutto lo sketch.
    Mi confermi che non è necessaria?
    Te lo chiedo perchè, avendo fatto un progettino simile (rfid, display seriale, relais, keypad) ma molto meno “evoluto” dal lato sketch, su arduino nano, quella riga non l’ho inserita (avendo usato il pin D1 (TX) per il relais).
    Grazie
    Ciao

    1. Ciao Nea,
      probabilmente Adriano aveva inserito quella linea per farsi inviare dei dati sul monitor seriale ed in un seocndo momento non ha più avuto bisogno di usarla.
      Puoi eliminarla.

        • Neea on 30 ottobre 2015 at 17:24
        • Reply

        Grazie.

        1. Prego Andrea.

    • raffaele on 2 marzo 2016 at 08:15
    • Reply

    Ciao. Sto provando a caricare lo sketch. Il problema è che non me lo carica, compila lo sketch perfettamente ma poi dice sto caricando…. e non termina mai…qualsiasi altro sketch invece lo carica subito. Cosa puo essere?

    1. Ciao Raffaele,
      abilita nell’IDE il debug avanzato in fase di compilazione e upload.

    • raffaele on 2 marzo 2016 at 19:24
    • Reply

    Ciao. Fatto ma non carica lo stesso

    1. Ciao Raffaele,
      l’abilitazione non serve a risolvere il problema di caricamento ma a capire dove si blocca.
      Ti chiedo la cortesia di non incollare tutto il debug che ti esce, perché penso tu stia pensando di farlo, ma leggi e cerca di comprendere dove si ferma la compilazione e perché.

        • raffaele on 3 marzo 2016 at 19:12
        • Reply

        La compilazione non di ferma, è il caricamento che si blocca. Lo sketch viene compilato giusto…

        1. Ok Raffaele,
          se hai abilitato il debug anche in fare di upload ( quando carica ) dovresti avere un report del punto in cui si ferma.
          Il Blink, l’esempio che trovi nell’IDE, riesci a caricarlo?

    • raffaele on 2 marzo 2016 at 20:23
    • Reply

    Che libreria hai usato di mfrc522? Perche quella di github non funziona e ne ho messo un altra ma non carica anche se lo compila..puoi linkare la libreria che hai tu?

    1. Ciao Raffaele,
      lascio il commento per Adriano, autore del progetto.
      Io purtroppo non ho quella libreria.

    • sergio on 22 luglio 2016 at 01:46
    • Reply

    salve, sono propio un neofita, sto cercando di capire cpme mettere il void padrone chiave, su una sd che deve essere leta durande il void setup e tenere i dati in memoria. in modo da non avcere un accesso continuo alla memoria sd che alla lunga si rompe. Qualche anima pià che almeno mi instradi?

    1. Ciao Sergio,
      non mi è chiaro cosa tu desideri inserire nella chiavetta SD, spero non una funzione sarebbe complesso farla ri-eseguire ad arduino.
      In merito alla lettura delle info da SD ricorda che tali memorie sono soggette a malfunzionamenti dopo migliaia di scritture non di letture.

        • sergio on 30 luglio 2016 at 01:44
        • Reply

        lluminante, grazie. non ci avevo pensato, questo semplifica le cose:)

    • Sahadat on 9 aprile 2017 at 08:25
    • Reply

    Ciao mauro sto provando questo projetto pero caricando arduino mi da errore “mfrc522.PCD_Init(); “.cosa devo fare

    1. Ciao Sahadat,
      hai controllato di possedere le librerie indicate nel progetto? se leggi l’articolo c’è scritto quali ti occorrono ed una è proprio “mfrc522”

    • Toti on 13 ottobre 2017 at 11:04
    • Reply

    Scusa ma è possibile inserire un rele in tutto cio?

    1. Certo Toti,
      puoi farlo in parallelo o al posto del led.

        • Toti on 13 ottobre 2017 at 12:37
        • Reply

        E il codice come bisogna modificarlo? Non riesco purtroppo. Potresti aiutarmi per piacere?

    • Antonio on 13 ottobre 2017 at 16:43
    • Reply

    Come le hiedevo tramite mp su fb, ho alcuni problemi con delle variazioni del progetto.
    – Usare il Nano al posto del Mega2560 [dunque i collegamenti ai pin ]
    – Matrice 4×3 anzichè 4×4 (con specifica matrice inviata su fb che allego)
    {‘#’, ‘0’, ‘*’} // Define Tastiera
    {‘9’, ‘8’, ‘7’} // Define Tastiera
    {‘6’, ‘5’, ‘4’} // Define Tastiera
    {‘3’, ‘2’, ‘1’} // Define Tastiera
    – Sostituire la funzione della lettera D a quella della lettera * (non avendo lettere nel tastierino)
    spero che possa essere così gentile e disponibile da aiutarmi come ha fatto anche con gli altri
    grazie

    1. Ciao Antonio,
      lascio il tuo commento online perché Adriano, autore del progetto, possa aiutarti.
      Ti chiedo intento di verificare che:
      – i pin dell’arduino nano siano sufficienti per fare quello che ti occorre.
      – ti siano chiare tutte le linee dello sketch come spiegate nell’articolo.

        • Toti on 14 ottobre 2017 at 00:18
        • Reply

        Bene o male si ho compreso il codice. Il numero di pin non lo so. Non so se bastano.

        1. Ciao Toti,
          ho contato il numero di pin dal disegno pubblicato dall’autore:
          8 pin tastierino 22-29
          4 pin NFC 50-53 ( tipo SPI )
          1 pin NFC reset
          1 pin buzzer

          prova a verificare se sulla tua scheda sono sufficienti.
          Per modificarli non dovrai far altro che reimpostare le variabili relative ai pin

Lascia un commento

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.