Go Down

Topic: problema conti! (Read 519 times) previous topic - next topic

pshot83

Aug 26, 2013, 11:41 pm Last Edit: Aug 27, 2013, 11:43 am by leo72 Reason: 1
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!!!
:smiley-eek-blue:

ecco il codice..
Code: [Select]
#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

Brunello

#1
Aug 26, 2013, 11:52 pm Last Edit: Aug 27, 2013, 11:43 am by leo72 Reason: 1
Non sbaglia a contare, semplicemente ti rimane visualizzato lo zero precedente
aggiungi una riga

Code: [Select]
lcd.setCursor(7, 1);
lcd.print("   ");
lcd.setCursor(7, 1);
 lcd.print(a);

lucaleo

Oppure a seconda delle necessità lcd.clear

nid69ita

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
my name is IGOR, not AIGOR

pshot83

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

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

PaoloP

#5
Aug 27, 2013, 09:53 am Last Edit: Aug 27, 2013, 09:55 am by PaoloP Reason: 1
In C, al posto di
Code: [Select]
a=(a+1);
a=(a-1);


puoi scrivere
Code: [Select]
a++; // incrementa a di 1
a--; // decrementa a di 1


se l'incremento o il decremento è maggiore di uno puoi usare
Code: [Select]
a += 5; // incrementa di 5
a -= 3; // decrementa di 3

pshot83


In C, al posto di
Code: [Select]
a=(a+1);
a=(a-1);


puoi scrivere
Code: [Select]
a++; // incrementa a di 1
a--; // decrementa a di 1


Veroooo! :smiley-eek: Ora ricordo di questa opzione!

se l'incremento o il decremento è maggiore di uno puoi usare
Code: [Select]
a += 5; // incrementa di 5
a -= 3; // decrementa di 3


Go Up