controllo ruote con sensori di prossimità

Salve ragazzi, sto realizzando un progetto che prevede dei sensori su ogni ruota che mi segnalano eventuali rigonfiamenti dello pneumatico. In situazione regolare ho un costante ritorno di tensione dei sensori, nel caso in cui uno dei 4 sensori non legge piu (quindi rileva anomalia), arduino mi deve accendere il led corrispondente alla ruota in errore e deve suonare un cicalino. Ho previsto un tasto reset che nel caso in cui non si verificano più anomalie si spegnono led e cicalino, ma solo dopo aver premuto reset. Ho collegato arduino uno ad una shield con 5 relais, il problema è che nonostante io prema il pulsante reset il relais rimane in errore. All'ingresso di ogni sensore ho inserito una resistenza da 1kohm e una resistenza a massa da 5.5kohm per avere un riferimento di potenziale. Ho perso una serata, ma non riesco a capire dove sbaglio,confido in un vostro aiuto. grazie

int antsx=0;
int antdx=0;
int postsx=0;
int postdx=0;
boolean allarme= false;

void setup() {
pinMode (antsx , INPUT);  /* pin digitale 2 ingresso sensore ant sx*/
pinMode (antdx , INPUT);  /* pin digitale 3 ingresso sensore ant dx*/
pinMode (postsx, INPUT);  /* pin digitale 4 ingresso sensore post sx*/
pinMode (postdx, INPUT);  /* pin digitale 5 ingresso sensore post dx*/
pinMode (6, OUTPUT);/* pin digitale 6 uscita buzzer*/
pinMode (7, OUTPUT);       /* pin digitale 7 uscita led ant sx */
pinMode (8, OUTPUT);       /* pin digitale 8 uscita led ant dx */     
pinMode (9, OUTPUT);       /* pin digitale 9 uscita led post sx */
pinMode (10, OUTPUT);      /* pin digitale 10 uscita led post sx */
pinMode (11, INPUT);          /* pin digitale 11 reset*/

}

void loop(){
  if ((digitalRead(2)== LOW) or (digitalRead(3)== LOW) or (digitalRead(4)== LOW) or (digitalRead(5)== LOW)){
        if (digitalRead(2)== LOW){ 
           antsx =1;
           Serial.println("antsx");
           }
          if (digitalRead(3)== LOW) {
           antdx = 1;
           }
          if (digitalRead(4) == LOW){
           postsx = 1;
           }
          if (digitalRead(5)== LOW ){
           postdx = 1;
           }
           allarme = true;
      }     
           
        if ( allarme == true){     /*suona buzzer*/
           digitalWrite((6), LOW);
           }
          if( antsx=1){            /*accende il led antsx*/
            digitalWrite((7), LOW);
            }           
          if( antdx=1){            /*accende il led antdx*/
            digitalWrite((8), LOW);
            }
          if( postsx=1){           /*accende il led postsx*/
            digitalWrite((9), LOW);
            }
          if( postdx=1){           /*accende il led postsx*/
            digitalWrite((10), LOW);
            }  
            
        if ( digitalRead(11) == HIGH){ /* quando si preme il tasto reset*/
               if (digitalRead(2)== HIGH){
                 antsx=0; 
                digitalWrite(7, HIGH);
                }
               if (digitalRead(3)== HIGH){ 
                 antdx =0;
                 digitalWrite(8, HIGH);
                 }
               if (digitalRead(4)== HIGH){ 
                 postsx =0;
                 digitalWrite(9, HIGH);
                 }
               if (digitalRead(5)== HIGH){ 
                 postdx =0;
               digitalWrite(10, HIGH);
                 } 
if ((antsx == 0) and (antdx==0) and (postsx==0) and (postdx==0)) {
  allarme=false;
}
}
Serial.println(allarme);
    }

NON TROVAVO COME FARE :|

Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare.
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

Infatti nel tuo codice appare una faccina al posto di un pezzo di codice.
Riedita il tuo post ed usa il tag code, please.

Ci sono alcuni errori: - le variabili indicanti i pin corrispondenti ai sensori delle ruote sono tutte 0; - manca il Serial.begin() nel setup

Non ho capito che schema stai usando.

si me ne sono accorto infatti ho già corretto assegnando i corrispettivi ingressi ai sensori. lo schema è semplicissimo,l’ingresso positivo del sensore va a finire ad un relais che commuta 5v all’ingresso dell’arduino,logicamente ho inserito una resistenza a massa per portare il potenziale a 0 quando non ho ingresso.

int antsx=0;
int antdx=0;
int postsx=0;
int postdx=0;
boolean allarme= false;

void setup() {
  
 Serial.begin(9600);
 pinMode (12 , INPUT);  /* pin digitale 12 ingresso sensore ant sx*/
 pinMode (3 , INPUT);  /* pin digitale 3 ingresso sensore ant dx*/
 pinMode (4, INPUT);  /* pin digitale 4 ingresso sensore post sx*/
 pinMode (5, INPUT);  /* pin digitale 5 ingresso sensore post dx*/
 pinMode (6, OUTPUT);/* pin digitale 6 uscita buzzer*/
 pinMode (12, OUTPUT);       /* pin digitale 12 uscita led ant sx */
 pinMode (8, OUTPUT);       /* pin digitale 8 uscita led ant dx */     
 pinMode (9, OUTPUT);       /* pin digitale 9 uscita led post sx */
 pinMode (10, OUTPUT);      /* pin digitale 10 uscita led post sx */
 pinMode (11, INPUT);          /* pin digitale 11 reset*/
 
 }
 
 void loop(){
   if ((digitalRead(12)== LOW) or (digitalRead(3)== LOW) or (digitalRead(4)== LOW) or (digitalRead(5)== LOW)){
     
         if (digitalRead(12)== LOW){ 
            antsx =1;
            }
           if (digitalRead(3)== LOW) {
            antdx = 1;
            }
           if (digitalRead(4) == LOW){
            postsx = 1;
            }
           if (digitalRead(5)== LOW ){
            postdx = 1;
            }
            allarme = true;
       }     
            
         if ( allarme == true){     /*suona buzzer*/
            digitalWrite((6), LOW);
            }
          else  {
             if ((digitalRead(11)==HIGH) and (antsx == 0) and (antdx==0) and (postsx==0) and (postdx==0)){    /*quando premo reset*/
                digitalWrite((6),HIGH);
               }
              }
           if( antsx=1){            /*accende il led antsx*/
             digitalWrite((7), LOW);
             }
           else  {
             if (digitalRead(11)==HIGH){    /*quando premo reset*/
            digitalWrite((7),HIGH);            /*spegne il led antsx*/   
             antsx=0; 
            }
            }           
           if( antdx=1){            /*accende il led antdx*/
             digitalWrite((8), LOW);
              }
             else  {
             if (digitalRead(11)==HIGH){   /*quando premo reset*/
               digitalWrite((8),HIGH);     /*spegne il led antdx*/
             antdx=0; 
             }
             } 
               
           if( postsx=1){           /*accende il led postsx*/
             digitalWrite((9), LOW);
             }
             else  {
             if (digitalRead(11)==HIGH){    /*quando premo reset*/
               digitalWrite((9),HIGH);      /*spegne il led postdx*/
              postsx=0;  
            }
             }
           if( postdx=1){           /*accende il led postdx*/
             digitalWrite((10), LOW);
             }  
             else  {
             if (digitalRead(11)==HIGH){    /*quando premo reset*/
               digitalWrite((10),HIGH);     /*spegne il led postdx*/
               postdx=0;
              }
             }
      Serial.println(antsx);
 
 }

Ho provato ad apportare altre modifiche, ma stampando il valore della variabile ho sempre 1 e non sò perchè. Aiutooooo

Ho risolto ragazzi.....pubblico il codice nel caso dovesse essere interessato qualcuno

int antsx=0;
int antdx=0;
int postsx=0;
int postdx=0;
boolean allarme= false;

void setup() {
  Serial.begin(9600);
 pinMode (antsx , INPUT);  /* pin digitale 2 ingresso sensore ant sx*/
 pinMode (antdx , INPUT);  /* pin digitale 3 ingresso sensore ant dx*/
 pinMode (postsx, INPUT);  /* pin digitale 4 ingresso sensore post sx*/
 pinMode (postdx, INPUT);  /* pin digitale 5 ingresso sensore post dx*/
 pinMode (6, OUTPUT);/* pin digitale 6 uscita buzzer*/
 pinMode (7, OUTPUT);       /* pin digitale 7 uscita led ant sx */
 pinMode (8, OUTPUT);       /* pin digitale 8 uscita led ant dx */     
 pinMode (9, OUTPUT);       /* pin digitale 9 uscita led post sx */
 pinMode (10, OUTPUT);      /* pin digitale 10 uscita led post sx */
 pinMode (11, INPUT);          /* pin digitale 11 reset*/
 digitalWrite(6,HIGH);
 digitalWrite(7,HIGH);
 digitalWrite(8,HIGH);
 digitalWrite(9,HIGH);
 digitalWrite(10,HIGH);
 }

 void loop(){
   if ((digitalRead(12)== LOW)){    /*accende led ant sx*/
     digitalWrite(6,LOW);
     digitalWrite(7,LOW);
    }
   else  {
      if ((digitalRead(11)== HIGH) and (digitalRead(12)==HIGH)){ /*se è tutto ok premo reset e resetta*/
      digitalWrite(6,HIGH);
      digitalWrite(7,HIGH);
    }
  }
 if ((digitalRead(3)== LOW)){     /*accende il led ant dx*/
     digitalWrite(6,LOW);
     digitalWrite(8,LOW);
     antsx=1;
    }
   else  {
      if ((digitalRead(11)== HIGH) and (digitalRead(3)==HIGH)){
      digitalWrite(6,HIGH);
      digitalWrite(8,HIGH);
    }
  }
  if ((digitalRead(4)== LOW)){       /*accende il led post sx*/
     digitalWrite(6,LOW);
     digitalWrite(9,LOW);
    }
   else  {
      if ((digitalRead(11)== HIGH) and (digitalRead(4)==HIGH)){
      digitalWrite(6,HIGH);
      digitalWrite(9,HIGH);
    }
  }
  if ((digitalRead(5)== LOW)){      /*accende il led post dx*/
     digitalWrite(6,LOW);
     digitalWrite(10,LOW);
     antsx=1;
    }
   else  {
      if ((digitalRead(11)== HIGH) and (digitalRead(5)==HIGH)){
      digitalWrite(6,HIGH);
      digitalWrite(10,HIGH);
    }
  }
  }

Francamente sei un po' pasticcione: gli operatori or ed and sono quelli del BASIC mentre in C+ sono || e &&.

Ti ho rifatto lo sketch senza molti commenti, perché devi sforzarti di capire:

#define antsxpin      2
#define antdxpin      3
#define postsxpin     4
#define postdxpin     5
#define resetpin      11

#define buzzerpin     6

#define LEDantsxpin   7
#define LEDantdxpin   8
#define LEDpostsxpin  9
#define LEDpostdxpin  10

boolean antsx = false;
boolean antdx = false;
boolean postsx = false;
boolean postdx = false;
boolean reset = false;
boolean allarme = false;
boolean tacitato = false;

void setup() {
  pinMode (antsxpin, INPUT);          // pin digitale 12 ingresso sensore ant sx
  pinMode (antdxpin , INPUT);         // pin digitale 3 ingresso sensore ant dx
  pinMode (postsxpin, INPUT);         // pin digitale 4 ingresso sensore post sx
  pinMode (postdxpin, INPUT);         // pin digitale 5 ingresso sensore post dx
  pinMode (resetpin, INPUT);          // pin digitale 11 reset
  pinMode (buzzerpin, OUTPUT);        // pin digitale 6 uscita buzzer
  pinMode (LEDantsxpin, OUTPUT);      // pin digitale 12 uscita led ant sx
  pinMode (LEDantdxpin, OUTPUT);      // pin digitale 8 uscita led ant dx
  pinMode (LEDpostsxpin, OUTPUT);     // pin digitale 9 uscita led post sx
  pinMode (LEDpostdxpin, OUTPUT);     // pin digitale 10 uscita led post dx
  Serial.begin(9600);
}

void loop() {
  antsx = (digitalRead(antsxpin) == LOW);
  antdx = (digitalRead(antdxpin) == LOW);
  postsx = (digitalRead(postsxpin) == LOW);
  postdx = (digitalRead(postdxpin) == LOW);
  reset = (digitalRead(resetpin) == LOW);

  allarme = (antsx || antsx || antsx || antsx);

  if (reset) tacitato = true;
  
  if (tacitato) {
    digitalWrite(buzzerpin, HIGH);     // buzzer OFF  
    digitalWrite(LEDantsxpin, HIGH);    // LED OFF
    digitalWrite(LEDantdxpin, HIGH);    // LED OFF
    digitalWrite(LEDpostsxpin, HIGH);    // LED OFF
    digitalWrite(LEDpostdxpin, HIGH);    // LED OFF
  }
  else {
    if (allarme) digitalWrite(buzzerpin, LOW);     // buzzer ON
    if (antsx) digitalWrite(LEDantsxpin, LOW);    // LED ON
    if (antdx) digitalWrite(LEDantdxpin, LOW);
    if (postsx) digitalWrite(LEDpostsxpin, LOW);
    if (postdx) digitalWrite(LEDpostdxpin, LOW);
  }
}

bhe hai ragione...io dm portato sempre a scrivere in basic....non riesco a capire gli if...allarme é vero accendi buzzer?