Vai al contenuto
Inviato

ciao ragazzi, sto lavorando ad un progetto con arduino. Sicuramente mi sto perdendo in un bicchiere d'acqua, ma al momento non ricordo proprio come fare (google non mi ha aiutato). arrivo al nocciolo: vorrei sapere se è possibile ritornare un valore true per un certo numero di volte.

 

codice:

 

// Questa funzione verifica se il codice Letto è autorizzato

boolean verificaCodice(String codiceLetto){

if(codiceLetto.equals(codiceAutorizzato)){

return true;

}else{

return false;

}

 

 

vorrei che il codice venga autorizzato solo per un determinato numero di volte.

 

è possibile?

grazie a tutti

Featured Replies

Inviato
Se posti l'intero codice forse si capisce cosa intendi
Inviato
  • Autore

grazie e scusa per il ritardo ma non avevo un pc con me. ecco il codice:

 

#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

#define buzzer 2

/* Viene creata una istanza della RFID libreria */

RFID RC522(SDA_DIO, RESET_DIO);

 

String codiceAutorizzato = "40A12ECB4";

 

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(buzzer, 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,HEX);

codiceLetto.toUpperCase();

}

Serial.println(codiceLetto);

if(verificaCodice(codiceLetto)){

Serial.println("Tessera autorizzata");

accendiLed(ledVerde);

}else{

Serial.println("Tessera non autorizzata");

accendiLed(ledRosso);

digitalWrite(buzzer, HIGH);

delay(1);

digitalWrite(buzzer, LOW);

delay(1);

}

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);

}

  • 2 settimane dopo...
Inviato
grazie e scusa per il ritardo ma non avevo un pc con me. ecco il codice:

 

#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

#define buzzer 2

/* Viene creata una istanza della RFID libreria */

RFID RC522(SDA_DIO, RESET_DIO);

 

String codiceAutorizzato = "40A12ECB4";

 

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(buzzer, 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,HEX);

codiceLetto.toUpperCase();

}

Serial.println(codiceLetto);

if(verificaCodice(codiceLetto)){

Serial.println("Tessera autorizzata");

accendiLed(ledVerde);

}else{

Serial.println("Tessera non autorizzata");

accendiLed(ledRosso);

digitalWrite(buzzer, HIGH);

delay(1);

digitalWrite(buzzer, LOW);

delay(1);

}

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);

}

 

Scusa il ritardo, comunque basta che imposti una variabile che conta il numero di autorizzazioni e con un confronto autorizzi o no la lettura.

Inviato
  • Autore
Figurati e grazie, ma come la imposto questa variabile? come concetto c'ero, è il codice che mi frega :p potresti farmi un esempio semplice semplice, o dirmi che per favore che metodi usare, grazie ancora

Crea un account o accedi per lasciare un commento