remy81 Inserito: 2 dicembre 2017 Segnala Inserito: 2 dicembre 2017 Salve a tutti, da poco ho acquistato lo starter kit di Arduino e sto provando a fare un circuito per aprire la porta con la carta, (RC522), le due carte che mi sono state date con il kit riesce a leggere i codici, adesso vi faccio vedere il programma (ovviamente copiato) sperando che possiate aiutarmi, vorrei inserire due led che mi facciano accendere la luce verde quando il codice è abilitato e una luce rossa quando la carta non è valida, grazie. ho gia' collegato due led alle uscite 3 e 4. #include <SPI.h> #include <MFRC522.h> constexpr uint8_t RST_PIN = 9; // Configurable, see typical pin layout above constexpr uint8_t SS_PIN = 10; // Configurable, see typical pin layout above MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class MFRC522::MIFARE_Key key; // Init array that will store new NUID byte nuidPICC[4]; void setup() { Serial.begin(9600); SPI.begin(); // Init SPI bus rfid.PCD_Init(); // Init MFRC522 for (byte i = 0; i < 6; i++) { key.keyByte = 0xFF; } Serial.println(F("This code scan the MIFARE Classsic NUID.")); Serial.print(F("Using the following key:")); printHex(key.keyByte, MFRC522::MF_KEY_SIZE); } void loop() { // Look for new cards if ( ! rfid.PICC_IsNewCardPresent()) return; // Verify if the NUID has been readed if ( ! rfid.PICC_ReadCardSerial()) return; Serial.print(F("PICC type: ")); MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); Serial.println(rfid.PICC_GetTypeName(piccType)); // Check is the PICC of Classic MIFARE type if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI && piccType != MFRC522::PICC_TYPE_MIFARE_1K && piccType != MFRC522::PICC_TYPE_MIFARE_4K) { Serial.println(F("Your tag is not of type MIFARE Classic.")); return; } if (rfid.uid.uidByte[0] != nuidPICC[0] || rfid.uid.uidByte[1] != nuidPICC[1] || rfid.uid.uidByte[2] != nuidPICC[2] || rfid.uid.uidByte[3] != nuidPICC[3] ) { Serial.println(F("A new card has been detected.")); // Store NUID into nuidPICC array for (byte i = 0; i < 4; i++) { nuidPICC = rfid.uid.uidByte; } Serial.println(F("The NUID tag is:")); Serial.print(F("In hex: ")); printHex(rfid.uid.uidByte, rfid.uid.size); Serial.println(); Serial.print(F("In dec: ")); printDec(rfid.uid.uidByte, rfid.uid.size); Serial.println(); } else Serial.println(F("Card read previously.")); // Halt PICC rfid.PICC_HaltA(); // Stop encryption on PCD rfid.PCD_StopCrypto1(); } /** * Helper routine to dump a byte array as hex values to Serial. */ void printHex(byte *buffer, byte bufferSize) { for (byte i = 0; i < bufferSize; i++) { Serial.print(buffer < 0x10 ? " 0" : " "); Serial.print(buffer, HEX); } } /** * Helper routine to dump a byte array as dec values to Serial. */ void printDec(byte *buffer, byte bufferSize) { for (byte i = 0; i < bufferSize; i++) { Serial.print(buffer < 0x10 ? " 0" : " "); Serial.print(buffer, DEC); } }
Livio Orsini Inserita: 3 dicembre 2017 Segnala Inserita: 3 dicembre 2017 Scusami per la mia curiosità. ma questo è il tuo primo approccio ad arduino?
remy81 Inserita: 3 dicembre 2017 Autore Segnala Inserita: 3 dicembre 2017 Buongiorno Livio, si è da poco che ho comprato arduino, comunque ho trovato uno sketch finalmente che ha risolto i miei problemi e funziona perfettamente, grazie tante per il tuo aiuto.
Livio Orsini Inserita: 3 dicembre 2017 Segnala Inserita: 3 dicembre 2017 Ne deduco che tu non sappai programmare o quasi; sarebbe meglio se invece di cimentarti con problemi troppo complessi per le tue conoscenze, copiando programmi che non capisci, tu ti dedicassi almeno all'apprendimento dei fondamentali, magari seguendo uno dei tanti tutorials su arduino che si trovano in rete. Solo dopo aver acquisito un minimo di conoscienza potrai dedicarti a risolvere certe problematiche, ltrimenti ti trovi a lavorare come una scimmia che ripete senza sapere quello che fa.
remy81 Inserita: 3 dicembre 2017 Autore Segnala Inserita: 3 dicembre 2017 Lo so lo so, sto facendo anche quello, solo che mi piaceva l'idea.
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora