Questo è il programma:
#include <SPI.h>
#include <MFRC522.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 14
/* Viene creata una istanza della RFID libreria */
MFRC522 RC522(SDA_DIO, RESET_DIO);
String codiceAutorizzato = "00000";
//pressione
int pressurePin = A5;
int force;
int LEDpin = 18;
//keypad
#include <Servo.h>
#include <Keypad.h>
Servo ServoMotor;
char* password = "456";
int position = 0;
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
byte rowPins[ROWS] = { 8, 7, 6, 5 };
byte colPins[COLS] = { 4, 3, 2 };
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup() {
Serial.begin(9600);
SPI.begin();
RC522.PCD_Init();
Serial.println("Setup");
pinMode(ledVerde, OUTPUT);
pinMode(LEDpin, OUTPUT);
ServoMotor.attach(15);
LockedPosition(true);
}
void loop() {
loopA();
loopB();
loopC();
}
void loopA() {
force = analogRead(pressurePin);
if (force < 50 )
{
digitalWrite(LEDpin, HIGH);
}
else
{
digitalWrite(LEDpin, LOW);
}
}
void loopB() {
char key = keypad.getKey();
if (key == '*' || key == '#')
{
position = 0;
LockedPosition(true);
}
if (key == password[position])
{
position ++;
}
if (position == 3)
{
LockedPosition(false);
}
delay(100);
}
void LockedPosition(int locked)
{
if (locked)
{
ServoMotor.write(42);
}
else
{
ServoMotor.write(130);
}
}
void loopC() {
/* Temporary loop counter */
byte i;
// Se viene letta una tessera
if (RC522.PICC_IsNewCardPresent())
{
// Viene letto il suo codice
RC522.PICC_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.uid.uidByte[i], HEX);
codiceLetto.toUpperCase();
}
Serial.println(codiceLetto);
if (verificaCodice(codiceLetto)) {
Serial.println("Tessera autorizzata");
accendiLed(ledVerde);
}
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);
}
}
Questo è l'errore:
if (verificaCodice(codiceLetto)) {
'verificaCodice' was not declared in this scope