Apertura cancello.

Salve a tutti! mi sono appena iscritto :o Inizio subito dicendo che sono solo alle basi e scopiazzando qua e la, leggendo su e giù sto imparando molte cose sulla programmazzione di arduino e dei microcontrollori.

Vengo al dunque.

Visto che dalle mie parti, mettere una chiave per l'apertura del cancello automatico non è cosa saggia, vorrei usare arduino con 2 RFID-Rc522 (uno all'interno e uno all'esterno) ho buttato giu una sorta di programma che funzionicchia, anzi funziona, l'unico mio problema è con l'LCD. Riesco a farlo funzionare ma si blocca sull'azione che ha appena effettutato e non torna al principio.

Esempio:

l'LCD è impostato su "INGRESSO NON CONSENTITO" quando avvicino la chiave chiude il contatto relè ma rimane sulla scritta " BENVENUTO" e non ritorna ad "INGRESSO NON CONSENTITO"

come faccio a farlo resettare all'inizio del programma dopo che ha chiuso il contatto? ho provato ad usare il watchdog impostato a 4sec ma non ha dato i risultati sperati.

vi ringrazio anticipatamente.

Ma cosa centrerebbe il watchdog??? Potresti iniziare postando il codice utilizzato, non credi?

ecco a voi

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 6
#define RST_PIN 7
 
MFRC522 mfrc522(SS_PIN, RST_PIN);   // creazione istanza MFRC522 .
 
long previousMillis = 0;
long interval = 10;
 
int rele = 5;  //pin relè
 
String uidRFID[] = {"codeRFID_B","codeRFID_B","codeRFID_C","codeRFID_D"};
 
 
void setup() {
      lcd.init();
     lcd.clear();
     lcd.backlight();
     lcd.begin(16, 2);
     lcd.print("    INGRESSO");
     lcd.setCursor(0,1);
     lcd.print(" NON CONSENTITO");
     
        
        Serial.begin(9600); // comunicazione monitor seriale
    SPI.begin();        // bus SPI
    mfrc522.PCD_Init(); // Init MFRC522 card
        pinMode(rele, OUTPUT);
    Serial.println("Ingresso Casa");
        Serial.println("RFID registrati n° --> "+String(sizeof(uidRFID)/sizeof(String)));
        Serial.println("In attesa di lettura...");
     
}
 
void loop() {
 
  unsigned long currentMillis = millis();
    
  if(currentMillis - previousMillis > interval) {
    previousMillis = currentMillis; 
     
      // Look for new cards
    if ( ! mfrc522.PICC_IsNewCardPresent()) {
        return;
    }
 
    // Select one of the cards
    if ( ! mfrc522.PICC_ReadCardSerial()) {
        return;
    }
 
String uid_s = "";
 
if (!mfrc522.PICC_IsNewCardPresent() && !mfrc522.PICC_ReadCardSerial()) {
   
    for (byte i = 0; i < mfrc522.uid.size; i++) {
         
        String uid_a = String(mfrc522.uid.uidByte[i] < 0x10 ? "0" : "");
        String uid_b = String(mfrc522.uid.uidByte[i], HEX);
           
        uid_s = uid_s+uid_a+uid_b;
          
 
    }
  }
   
  Serial.print("RFID UID rivelato --> ");
  Serial.println(uid_s);
  Serial.println("");
  boolean controllo = false;
  for (int i = 0; i < sizeof(uidRFID)/sizeof(String); i++){
   
    if(uidRFID[i] == uid_s){
      
            Serial.println("Accesso consentito");
            lcd.clear();
            lcd.print (" BENVENUTO ");
            lcd.setCursor(0,1);
            openDoor();
           controllo = true;
                         break;
             
      
            }
    }
      
   if(!controllo){
   lcd.clear();
   lcd.print("     ACCESSO");
   lcd.setCursor(0,1);
   lcd.print("     VIETATO");
   Serial.println("Accesso vietato");
   delay(1000);
   }
    
   Serial.println();
   Serial.println("In attesa di lettura...");
    
  }
}
 
void openDoor(){
 
  digitalWrite(rele, HIGH);
  Serial.println("Relè ON");
  delay(2000);
  digitalWrite(rele, LOW);
  Serial.println("Relè OFF");
  
}

Butted83: Salve a tutti! mi sono appena iscritto :o

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni e a leggere il regolamento se non lo hai già fatto: Regolamento Qui una serie di link utili, non inerenti al tuo problema: - qui una serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - qui le pinout delle varie schede by xxxPighi: Pinout - qui una serie di link [u]generali[/u] utili: Link Utili

risolto grazie :)