Perchè nel display non compare lettera "D" ? ma compare la "A"?

 // include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

// set up a constant for the tilt switchPin
const int switchPin1 = 8;
const int switchPin2 = 9;
// variable to hold the value of the switchPin
int switchState1 = 0;
int switchState2 = 0;
int ritardo;
// a variable to choose which reply from the crystal ball

void setup()
{
  // set up the number of columns and rows on the LCD
  lcd.begin(16, 2);
 // set up the switch pin as an input
  pinMode(switchPin1, INPUT);
  pinMode(switchPin2, INPUT);
  // Print a message to the LCD.
  }
void loop() 
{
  // check the status of the switch
  switchState1 = digitalRead(switchPin1);
  switchState2 = digitalRead(switchPin2);
  // compare the switchState to its previous state
  if (switchState1==HIGH)
   if (switchState2==HIGH)
  {
 // set the cursor to column 0, line 0
      lcd.setCursor(0, 0);
      // print some text
      lcd.print("A");
      // move the cursor to the second line
  }
  if (switchState1==HIGH)
   if (switchState2==LOW) 
     {
  // set the cursor to column 0, line 0
      lcd.setCursor(0, 0);
      // print some text
      lcd.print("B");
      // move the cursor to the second line  
}
if (switchState1==LOW)
   if (switchState2==LOW) 
     {
   // set the cursor to column 0, line 0
      lcd.setCursor(0, 0);
      // print some text
      lcd.print("C");
      // move the cursor to the second line  
        if (switchState1==LOW)
   if (switchState2==HIGH) 
     {
 // set the cursor to column 0, line 0
      lcd.setCursor(0, 0);
      // print some text
      lcd.print("D");
      // move the cursor to the second line  
}
}

Hai messo delle resistenze pullup/pulldown?
Ciao Uwe

Quindi visualizza una sequenza abca?

Quindi il problema che avevi qui con il display hai risolto ?

Fai debug su Serial monitor, aggiungi la stampa dei pin, per verificare siano come te li aspetti:

  switchState1 = digitalRead(switchPin1);
  switchState2 = digitalRead(switchPin2);
  Serial.print("sw1=");  Serial.print  (switchState1);
  Serial.print(" sw2="); Serial.println(switchState2);
  // compare the switchState to its previous state
  if (switchState1==HIGH)

Se stampa A il sw2 probabilmente NON è high. Collegamenti ?
Ma i pulsanti sono quelli che premi e poi ritornano non premuti se levi il dito o mantengono lo stato ?

uwefed:
Hai messo delle resistenze pullup/pulldown?
Ciao Uwe
[/assolutamente si 10k]

speedyant:
Quindi visualizza una sequenza abca?
[HH-A, HL-B, LL-C, LC,A ma non in secuenza, compare la lettera secondo la true table ]

nid69ita:
Quindi il problema che avevi qui con il display hai risolto ?
LCD guasto? - #18 by calandra - Hardware - Arduino Forum

Fai debug su Serial monitor, aggiungi la stampa dei pin, per verificare siano come te li aspetti:

  switchState1 = digitalRead(switchPin1);

switchState2 = digitalRead(switchPin2);
  Serial.print("sw1=");  Serial.print  (switchState1);
  Serial.print(" sw2="); Serial.println(switchState2);
  // compare the switchState to its previous state
  if (switchState1==HIGH)



Se stampa A il sw2 probabilmente NON è high. Collegamenti ?
Ma i pulsanti sono quelli che premi e poi ritornano non premuti se levi il dito o mantengono lo stato ?

nid69ita:
Quindi il problema che avevi qui con il display hai risolto ?
LCD guasto? - #18 by calandra - Hardware - Arduino Forum

Fai debug su Serial monitor, aggiungi la stampa dei pin, per verificare siano come te li aspetti:

  switchState1 = digitalRead(switchPin1);

switchState2 = digitalRead(switchPin2);
  Serial.print("sw1=");  Serial.print  (switchState1);
  Serial.print(" sw2="); Serial.println(switchState2);
  // compare the switchState to its previous state
  if (switchState1==HIGH)



Se stampa A il sw2 probabilmente NON è high. Collegamenti ?
Ma i pulsanti sono quelli che premi e poi ritornano non premuti se levi il dito o mantengono lo stato ? 



[Dunque il vcchio problema è stato risolto inserendo una R da 2.2 k a VReg, eliminando potenziometri e trim e tutto fila. per quanto riguarda la tua risposta ho pensato anchio ai collegamenti e ppure la basetta è sta STRACOLLAUDATA]

Quello che hai postato NON compila, le parentesi graffe non sono corrette.
Usa CTRL+T nell 'IDE che te lo indenta meglio e vedrai che le graffe sono messe male

...
  // compare the switchState to its previous state
  lcd.setCursor(0, 0);
  if (switchState1==HIGH)
  { if (switchState2==HIGH)
    { lcd.print("A");     
    }
    else  // if (switchState2==LOW) 
    { lcd.print("B");
    }
  }  
  else   //if (switchState1==LOW)
  { if (switchState2==LOW) 
    { lcd.print("C");
    }
    else // if (switchState2==HIGH) 
    { lcd.print("D");
    }
  }
}  // end loop

nid69ita:
Quello che hai postato NON compila, le parentesi graffe non sono corrette.
Usa CTRL+T nell 'IDE che te lo indenta meglio e vedrai che le graffe sono messe male

...

// compare the switchState to its previous state
  lcd.setCursor(0, 0);
  if (switchState1==HIGH)
  { if (switchState2==HIGH)
    { lcd.print("A");   
    }
    else  // if (switchState2==LOW)
    { lcd.print("B");
    }
  } 
  else  //if (switchState1==LOW)
  { if (switchState2==LOW)
    { lcd.print("C");
    }
    else // if (switchState2==HIGH)
    { lcd.print("D");
    }
  }
}  // end loop





[PER UNA GRAFFA! Adesso tutto ok! Grazie comunque ragazzi, mancava una graffa nell'ultima iterazione Ciau nè 
]