Wiki Info
Vuoi reagire a questo messaggio? Crea un account in pochi click o accedi per continuare.
Ricerca Avanzata
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
Ultimi argomenti attivi
» Comunicazione termine servizio Arduino BT Control
Da Admin Mar Mag 10, 2022 12:55 pm

» Robot aspirapolvere per Alexa: Dreame D9
Da Admin Mar Feb 09, 2021 9:42 am

» Come costruire un robot smart con Arduino
Da Admin Mar Nov 17, 2020 12:15 pm

» TOPPS Trading Cards Match Attax Champsion League/Europa League 2020/21
Da Admin Mar Nov 10, 2020 3:21 pm

» Guida per utilizzare Arduino BT Control v1.2
Da Admin Gio Lug 09, 2020 12:01 pm

» Recensione Umidigi A3 Pro - Smartphone sotto i 100€
Da Admin Gio Apr 04, 2019 12:22 pm

» [Arduino] aiuto programma
Da Glak Mar Mar 12, 2019 9:30 am

» ERRORE NELLA COMPILAZIONE NEXTION
Da papat Mar Feb 26, 2019 7:11 am

» Comandare la Smart TV con Alexa senza broadlink (gratis)
Da Admin Mar Feb 19, 2019 4:31 pm

I postatori più attivi del mese
Nessun utente


Sketch arduino: come posso modificarlo? (RFID)

2 partecipanti

Andare in basso

arduino - Sketch arduino: come posso modificarlo? (RFID) Empty Sketch arduino: come posso modificarlo? (RFID)

Messaggio Da Alessandro2003 Lun Mar 27, 2017 4:07 pm

ciao a tutti, rieccomi dopo un po con un ennesimo problema di programmazione....
lo sketch ora lo metto, ma spiego un attimo la vicenda:
ho trovato su internet uno sketch per poter utilizzare il ricevitore con la sua tessera RFID.
lo sketch in se funziona, l'ho provato e va alla grande, ma vorrei modificarlo.
lo sketch prevede l'accensione per qualche secondo di un led verde se la tessera è registrata, viceversa se non lo è, l'attivazione di un led rosso sempre per pochi secondi.
preciso subito la mia idea: 
volevo fare in modo che, nel caso di tessera NON valida si accenda il led rosso per qualche secondo(come da sketch semplice), e invece nel caso di tessera VALIDA si accenda il led verde fisso, fin che  non ripasso nuovamente la tessera per spegnere il led.
Spero di essere stato abbastanza chiaro Very Happy aspetto un aiuto con ansia Sad

SKETCH:
Codice:
/*
Questo programma permette effettuare la lettura di una tessera magnetica e stabilire se quest'ultima
è stata autorizzata.
PINOUT:
 
RC522 MODULE    Uno/Nano   
SDA            D10
SCK            D13
MOSI            D11
MISO            D12
IRQ            N/A
GND            GND
RST            D9
3.3V            3.3V
Autore Giacomo Bellazzi
Versione 1.0
*/
 
#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
#define delayLed 2000
#define ledVerde 3
#define ledRosso 4
/* Viene creata una istanza della RFID libreria */
RFID RC522(SDA_DIO, RESET_DIO);
 
String codiceAutorizzato = "9692D94895";

 
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);
}
Alessandro2003
Alessandro2003
Livello due
Livello due

Messaggi Messaggi : 41
Crediti Crediti : 57
Reputazione Reputazione : 0
Data d'iscrizione Data d'iscrizione : 26.07.16
Età Età : 21
Località Località : milano

Torna in alto Andare in basso

arduino - Sketch arduino: come posso modificarlo? (RFID) Empty Re: Sketch arduino: come posso modificarlo? (RFID)

Messaggio Da Alessandro2003 Lun Mar 27, 2017 5:01 pm

aggiorno lo sketch:
vorrei attivare il relè al passaggio della tessera valida e mantenerlo attivo fino ad un ulteriore passaggio della tessera appunto per disattivarlo. GRAZIE Very Happy Very Happy


Codice:
sketch
/*
Con questo sketch è possibile fare accendere un led o commutare un relè
al passaggio di una tessera magnetica sul lettore RFID.
Se la tessera viene riconosciuta si accende un led verde e commuta il relè,
altrimenti un led rosso per indicarci l`inaccessibilità.

Autore Salvatore Fancello

PINOUT:

RC522 MODULO Uno/Nano
SDA D10
SCK D13
MOSI D11
MISO D12
IRQ N/A
GND GND
RST D9
3.3V 3.3V

led verde al Pin 3
Led rosso al Pin 4
Relè al Pin 2
*/

#include <SPI.h>
#include <RFID.h>
/* Vengono definiti PIN del RFID reader*/
#define SDA_DIO 10 // Pin 53 per Arduino Mega
#define RESET_DIO 9
#define delayRead 1000 // Tempo
#define delayLed 2000
#define ledVerde 3
#define ledRosso 4
#define rele 2
/* Viene creata una istanza della RFID libreria */
RFID RC522(SDA_DIO, RESET_DIO);
// inserire tutti i codici esadecimali delle schede magnetiche riconosciute
String codiceAutorizzato1 = "FCA2333B56";
String codiceAutorizzato2 = "ESEMPIO479";
String codiceAutorizzato3 = "ESEMPIO480";

void setup()
{
Serial.begin(9600);
/* Abilita SPI*/
SPI.begin();
/* Viene inizilizzato RFID reader */
RC522.init();
Serial.println("Setup");
pinMode(ledVerde,OUTPUT);
pinMode(ledRosso,OUTPUT);
pinMode(rele,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,codiceAutorizzato1)||verificaCodice(codiceLetto,codiceAutorizzato2)
||verificaCodice(codiceLetto,codiceAutorizzato3)){
Serial.println("Tessera autorizzata");
accendiLed(ledVerde);
digitalWrite (rele, HIGH);
delay (1000); // Tempo relè in stato ON
digitalWrite (rele, LOW);
}else{
Serial.println("Tessera non autorizzata");
accendiLed(ledRosso);
}
delay(delayRead);
}
}
// Questa funzione verifica se il codice Letto è autorizzato
boolean verificaCodice(String codiceLetto, String codiceAutorizzato){
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);
}
Alessandro2003
Alessandro2003
Livello due
Livello due

Messaggi Messaggi : 41
Crediti Crediti : 57
Reputazione Reputazione : 0
Data d'iscrizione Data d'iscrizione : 26.07.16
Età Età : 21
Località Località : milano

Torna in alto Andare in basso

arduino - Sketch arduino: come posso modificarlo? (RFID) Empty Re: Sketch arduino: come posso modificarlo? (RFID)

Messaggio Da Admin Lun Mar 27, 2017 7:01 pm

Ciao Alessandro, in teoria se vuoi sostituire un led con un relè lo sketch non cambia ma si cambia semplicemente il circuito Wink
Admin
Admin
♔ Amministratore

Messaggi Messaggi : 4370
Crediti Crediti : 12173
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 26

https://wikiinfo.forumattivo.it

Torna in alto Andare in basso

arduino - Sketch arduino: come posso modificarlo? (RFID) Empty Re: Sketch arduino: come posso modificarlo? (RFID)

Messaggio Da Alessandro2003 Lun Mar 27, 2017 7:03 pm

si lo so, ma il problema è che il led rimane acceso per pochi secondi, e a me interessa che rimanga acceso finchè non ripasso con la tessera....
puoi aiutarmi??
Alessandro2003
Alessandro2003
Livello due
Livello due

Messaggi Messaggi : 41
Crediti Crediti : 57
Reputazione Reputazione : 0
Data d'iscrizione Data d'iscrizione : 26.07.16
Età Età : 21
Località Località : milano

Torna in alto Andare in basso

arduino - Sketch arduino: come posso modificarlo? (RFID) Empty Re: Sketch arduino: come posso modificarlo? (RFID)

Messaggio Da Alessandro2003 Mar Mar 28, 2017 3:00 pm

è possibile modificare lo sketch? se si come??
grazie aspetto risposta
Alessandro2003
Alessandro2003
Livello due
Livello due

Messaggi Messaggi : 41
Crediti Crediti : 57
Reputazione Reputazione : 0
Data d'iscrizione Data d'iscrizione : 26.07.16
Età Età : 21
Località Località : milano

Torna in alto Andare in basso

arduino - Sketch arduino: come posso modificarlo? (RFID) Empty Re: Sketch arduino: come posso modificarlo? (RFID)

Messaggio Da Contenuto sponsorizzato


Contenuto sponsorizzato


Torna in alto Andare in basso

Torna in alto

- Argomenti simili

 
Permessi in questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum.