problema conti!

Salve a tutti, ho già postato del mio progetto cabina photoboot in sezione hardware, adesso che sto invece implementando il display lcd a due righe sto riscontrando una piccola noia, ho montato tutto con due pulsanti in modo da poter settare un determinato tempo, con uno aumenta, con l'altro diminuisce. Solo che quando oltrepasso il numero dieci, a tornare indietro passa da 90 e scala in decine..Mi spiego meglio..
1+1=2
2+1=3
3+1=4
ecc..
9+1=10
10+1=11
11-1=10
10-1=90!!!
:fearful:

ecco il codice..

#include <LiquidCrystal.h>
int in=8;
int in2=7;


int a=0;
int c=0;
int d=0;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  pinMode(in,INPUT);
  lcd.begin(16, 2);
  lcd.print("  Ciao Sergio! ");
  delay(3000); lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Setta il tempo:");
  lcd.setCursor(0, 1);
  lcd.print("Timer=");
  lcd.setCursor(9, 1); 
  lcd.print("secondi");  
}

void loop() {
  c=digitalRead(in);
  if ( c == 1){a=(a+1); delay(500);}
  d=digitalRead(in2);
  if ( d == 1){a=(a-1);delay(500);}
   if (( c == 1) & ( d == 1)){a=0; delay(500);}
  
  lcd.setCursor(7, 1);
  lcd.print(a);
 
  }

edit by mod: per favore includi il codice usando gli appositi tag

Non sbaglia a contare, semplicemente ti rimane visualizzato lo zero precedente
aggiungi una riga

lcd.setCursor(7, 1);
 lcd.print("   ");
lcd.setCursor(7, 1);
  lcd.print(a);

Oppure a seconda delle necessità lcd.clear

Per il codice non cambiare font ma usa gli appositi tag (usa il pulsante con il simbolo #) altrimenti si rischia che alcune parti vengano mal visualizzate

Bene, grazie per i consigli, appena sarò a casa proverò subito!

p.s. Grazie anche per il consiglio sul post! :slight_smile:

In C, al posto di

a=(a+1); 
a=(a-1);

puoi scrivere

a++; // incrementa a di 1
a--; // decrementa a di 1

se l'incremento o il decremento è maggiore di uno puoi usare

a += 5; // incrementa di 5
a -= 3; // decrementa di 3

PaoloP:
In C, al posto di

a=(a+1); 

a=(a-1);




puoi scrivere


a++; // incrementa a di 1
a--; // decrementa a di 1




Veroooo! :astonished: Ora ricordo di questa opzione!

se l'incremento o il decremento è maggiore di uno puoi usare


a += 5; // incrementa di 5
a -= 3; // decrementa di 3