Pages: [1]   Go Down
Author Topic: problema conti!  (Read 466 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 30
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
#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
« Last Edit: August 27, 2013, 04:43:18 am by leo72 » Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 79
Posts: 2168
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Code:
lcd.setCursor(7, 1);
 lcd.print("   ");
lcd.setCursor(7, 1);
  lcd.print(a);
« Last Edit: August 27, 2013, 04:43:29 am by leo72 » Logged

Offline Offline
Sr. Member
****
Karma: 4
Posts: 396
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oppure a seconda delle necessità lcd.clear
Logged

ivrea (to)
Offline Offline
Faraday Member
**
Karma: 87
Posts: 5017
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

my name is IGOR, not AIGOR

Offline Offline
Newbie
*
Karma: 0
Posts: 30
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

p.s. Grazie anche per il consiglio sul post! smiley
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 114
Posts: 7205
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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

se l'incremento o il decremento è maggiore di uno puoi usare
Code:
a += 5; // incrementa di 5
a -= 3; // decrementa di 3
« Last Edit: August 27, 2013, 02:55:00 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Newbie
*
Karma: 0
Posts: 30
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

puoi scrivere
Code:
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:
a += 5; // incrementa di 5
a -= 3; // decrementa di 3
Logged

Pages: [1]   Go Up
Jump to: