Vai al contenuto

ritorno valore


Messaggi raccomandati

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

Link al commento
Condividi su altri siti

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

}

Link al commento
Condividi su altri siti

  • 2 settimane dopo...
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.

Link al commento
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un membro per lasciare un commento

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!

Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.

Accedi Ora

Giochi in Uscita



  • Community Hive Community Hive

    Community Hive allows you to follow your favorite communities all in one place.

    Follow on Community Hive
  • Utenti

    Non ci sono membri da mostrare

×
×
  • Crea Nuovo...