Contatore avanti e indietro [Risolto]

Salve ho un problema con il contatore che non sa bene contare :smiley:
ho tutto collegato tarmite bottoni
quando faccio -1 ritornando al 00 non fa 0 ma 01 proseguendo con ( +) poi 11,21 aumenta le decimali ecc non 1,2,3
ritorno cio è (-) appena sotto 10,fa 90,80 ecc arrivando 01 salta a -1
come faccio avere un contatore avanti e indietro senza avere questo problema co lo 0
Grazie

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

int a = 0;
int b = 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("IL Mio");
  delay(3000); lcd.clear();
  lcd.setCursor(6,0);
  lcd.print("CON");
  lcd.setCursor(0, 0);
  lcd.print("Oriz.");
  lcd.setCursor(11, 0);
  lcd.print("Vert."); 
}

void loop() {

  c=digitalRead(in);
  if ( c== 1){b=b+1; delay(500);}
  c=digitalRead(in3);
  if ( c== 1){b=b-1; delay(500);}
  d=digitalRead(in2);
  if ( d== 1){a=a+1;delay(500);}
  
 
 
  lcd.setCursor(0, 1);
  lcd.print(a);
  lcd.setCursor(11, 1); 
  lcd.print(b); 
 
}

Forse ti rimane "sporco" il video, vedi ancora il valore precedente a video. Prova ad aggiungere la stampa di 5 o 6 spazi prima di stampare b

lcd.setCursor(11, 1); 
lcd.print("      ");  // 6 spazi
lcd.setCursor(11, 1); 
lcd.print(b);

Grazie dici cosi?
la c e riferimento o conta solo lo spazio tra “<—>”
grazie mille…

lcd.setCursor(11, 1); 
lcd.print("c   ");  // 6 spazi
lcd.setCursor(11, 1); 
lcd.print(b);

vedrò questa sera di modificare lo sketch
adesso vado al lavoro

Solo spazi

Salve ho provato ma non funziona si tira semper dietro il 0 quando è -1 non mi fa 0 ma 01,11 tornando in dietro 12,11,10,90,80 ecc ....arriva a 00 poi -1 il problema secondo me e lo 00

c=digitalRead(in);
  if ( c== 1){b=b+1; delay(500);}
  c=digitalRead(in3);
  if ( c== 1){b=b-1; delay(500);}
  d=digitalRead(in2);

puo essere quando passa da b=b +1 a b=b-1 non c'è il 0 o lo fa da solo....... Grazie

Per il computer non esiste il numero 01, c'e' solo 1, quello zero e quei 90 che in realtà è 9 è perchè rimane sporco il carattere precedente. Prova così:

  lcd.setCursor(0, 1);
  lcd.print(a); lcd.print(" ");
  lcd.setCursor(11, 1); 
  lcd.print(b); lcd.print(" ");

;) infatti funziona!!! vedevo solo che si spostava ma rimaneva o il -,0 e accumulava gli numeri creare un spazio permetteva di fare una pulizia sul lcd....a saperlo come fare :roll_eyes: Grazie nid69ita abbiamo risolto!!

Se hai voglia, puoi modificare il tuo primo post, e aggiungere al titolo, davanti, [Risolto] ;)