Ciao a tutti, premetto che il mio arduino Uno è stato attraversato dal 220v =( durante una prova di domotica.. Ho bruciato il processore e l'ho sostituito con uno nuovo con bootloader precaricato.. Funziona tutto tranne il lettore rfid, i collegamenti sono giusti:
- Reset 9 RST
- SPI SS 10 SDA
- SPI MOSI 11 MOSI
- SPI MISO 12 MISO
- SPI SCK 13 SCK
Anche la programmazione è giusta, o almeno dovrebbe rilevare qualcosa. Ma così non è.. Inoltre ho notato che togliendo il filo dei 3,3V che vanno al sensore il Led rimane accesso aumentando la luminosità! E' normale? Prende corrente da qualche altra parte?
Spero non si sia danneggiato. Ecco il codice
void key(){ //2.parte relativa al sensore RC522 mc522!!
slave = EEPROM.read(0);
// Rileva un tag...
if (RC522.isCard()) {
Serial.println("HO LETTO QUALCOSA");
// Legge il seriale...
if (RC522.readCardSerial()) {
sernum0 = RC522.serNum[0];
sernum1 = RC522.serNum[1];
sernum2 = RC522.serNum[2];
sernum3 = RC522.serNum[3];
sernum4 = RC522.serNum[4];
Serial.println(sernum0);
Serial.println(sernum1);
Serial.println(sernum2);
Serial.println(sernum3);
Serial.println(sernum4);
// Se il seriale letto corrisponde con il seriale Master
// attiva o disattiva la modalita Memorizzazione chiavi
// e in più visualizza l'elenco della chiavi salvate...
if (sernum0 == masnum0
&& sernum1 == masnum1
&& sernum2 == masnum2
&& sernum3 == masnum3
&& sernum4 == masnum4) {
if (cardmas==0) {
lcd.clear();
Serial.print("GESTIONE CHIAVI");
cardmas = 1;
lcd.setCursor(0, 1);
lcd.print("Chiavi slave: ");
lcd.setCursor(15, 1);
lcd.print(slave);
lcd.clear();
} else { cardmas = 0;
lcd.setCursor(0, 1);
lcd.print("Annullata ");
}
}
// Se invece il seriale letto corrisponde con uno dei tre gruppi
// di chiavi memorizzate allora attiva o disattiva l'allarme.
else if (sernum0 == EEPROM.read(1) || EEPROM.read(6) || EEPROM.read(11)
&& sernum1 == EEPROM.read(2) || EEPROM.read(7) || EEPROM.read(12)
&& sernum2 == EEPROM.read(3) || EEPROM.read(8) || EEPROM.read(13)
&& sernum3 == EEPROM.read(4) || EEPROM.read(9) || EEPROM.read(14)
&& sernum4 == EEPROM.read(5) || EEPROM.read(10) || EEPROM.read(15)) {
if (statoAllarme == 0) {
oldstatoAllarme = 1;
tone(buzzer,2500);
delay(500);
noTone(buzzer);
lcd.setCursor(0, 1);
lcd.clear();
lcd.print("Chiave Ale");
lcd.clear();
}
else {
statoAllarme = 0;
tone(buzzer,2500);
delay(500);
noTone(buzzer);
lcd.setCursor(0, 1);
lcd.clear();
lcd.print("Chiave Ale");
lcd.clear();
}
}
// Se il seriale letto è diverso dal master e nemmeno presente in memoria,
// e se è attiva la modalita Memorizzazione chiavi, salva il seriale in memoria
// come slave1, slave2 o slave3.
else if (cardmas == 1 && slave == 0) {
lcd.clear();
lcd.print("Chiave rilevata!");
EEPROM.write(0, 1);
EEPROM.write(1, sernum0);
EEPROM.write(2, sernum1);
EEPROM.write(3, sernum2);
EEPROM.write(4, sernum3);
EEPROM.write(5, sernum4);
cardmas = 0;
lcd.setCursor(0, 1);
lcd.print("Slave 1 salvata!");
}
else if (cardmas == 1 && slave == 1) {
lcd.clear();
lcd.print("Chiave rilevata!");
EEPROM.write(0, 2);
EEPROM.write(6, sernum0);
EEPROM.write(7, sernum1);
EEPROM.write(8, sernum2);
EEPROM.write(9, sernum3);
EEPROM.write(10, sernum4);
cardmas = 0;
lcd.setCursor(0, 1);
lcd.print("Slave 2 salvata!");
}
else if (cardmas == 1 && slave == 2) {
lcd.clear();
lcd.print("Chiave rilevata!");
EEPROM.write(0, 3);
EEPROM.write(11, sernum0);
EEPROM.write(12, sernum1);
EEPROM.write(13, sernum2);
EEPROM.write(14, sernum3);
EEPROM.write(15, sernum4);
cardmas = 0;
lcd.setCursor(0, 1);
lcd.print("Slave 3 salvata!");
}
}
}
}
//2.end
Grazie mille!