Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Conteggio che torna indietro dopo determinata soglia

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteWALTERmwp, Foto Utentexyz

0
voti

[1] Conteggio che torna indietro dopo determinata soglia

Messaggioda Foto Utentepapa10 » 1 mag 2018, 20:29

Ho uno sketch che conta sino all'infinito.Vorrei invece che ad un determinato numero da me stabilito,torna a contare indietro.Un aiuto? Grazie
Codice: Seleziona tutto
#include <LCD.h>



#include <Wire.h>
#include <LiquidCrystal_I2C.h>

// Most of the backpacks like the one shown are at 0x27 or at 0x3f.
#define I2C_ADDR     0x27 // <--Change to match your display

LiquidCrystal_I2C lcd(I2C_ADDR,2,1,0,4,5,6,7,3,POSITIVE);

int n = 0;


void setup ( )
{
  lcd.begin ( 20, 4 ); // <--Change to match your display
  lcd.setBacklight(1);
  lcd.print("ciao");
  lcd.print(", Gianni");
  delay(600);
  lcd.setCursor(0,1);
  lcd.print(" sto contando");
  delay(600);
  lcd.setCursor(0,3);
  lcd.print("conto bene");}
void loop ()
{
  lcd.setCursor(3,2);
  lcd.print(n++,DEC);
  delay(500);}
 
Avatar utente
Foto Utentepapa10
71 1 3 4
Frequentatore
Frequentatore
 
Messaggi: 248
Iscritto il: 20 ott 2011, 17:11

0
voti

[2] Re: Conteggio che torna indietro dopo determinata soglia

Messaggioda Foto Utenteboiler » 1 mag 2018, 21:19

papa10 ha scritto:Ho uno sketch che conta sino all'infinito.

Ho i miei dubbi...

Vorrei invece che ad un determinato numero da me stabilito,torna a contare indietro.Un aiuto?

Quello che vuoi fare è di una banalità incredibile. Se vuoi fare learning-by-copying, allora devi copiare ancora un po' e ci arriverai. Altrimenti prova a leggere un qualsiasi tutorial, introduzione o corso... Quello che vuoi fare si fa con un conditional statement. Il piú comune è questo:
https://www.arduino.cc/reference/en/lan ... ucture/if/

Dovrai introdurre una variabile supplementare in cui memorizzare lo stato (incrementare o decrementare).

Boiler
Avatar utente
Foto Utenteboiler
26,4k 5 9 13
G.Master EY
G.Master EY
 
Messaggi: 5599
Iscritto il: 9 nov 2011, 12:27

0
voti

[3] Re: Conteggio che torna indietro dopo determinata soglia

Messaggioda Foto Utentepapa10 » 1 mag 2018, 22:09

ho aggiunto questa riga if (n > 30)
lcd.print(n); ma mi da' numeri alti
Avatar utente
Foto Utentepapa10
71 1 3 4
Frequentatore
Frequentatore
 
Messaggi: 248
Iscritto il: 20 ott 2011, 17:11

0
voti

[4] Re: Conteggio che torna indietro dopo determinata soglia

Messaggioda Foto Utentepapa10 » 1 mag 2018, 22:58

ho aggiunto questa riga invece:if (n==31) n=1;
lcd.print (" inverto"); conta sino a 30 poi torna a ricontare da 1 e sempre sino a 30.Invece desidero che giunto a 31 decrementa 30,31,29,28,27...sino a 1.Non so cosa fare piu'
Avatar utente
Foto Utentepapa10
71 1 3 4
Frequentatore
Frequentatore
 
Messaggi: 248
Iscritto il: 20 ott 2011, 17:11

0
voti

[5] Re: Conteggio che torna indietro dopo determinata soglia

Messaggioda Foto UtenteIlGuru » 1 mag 2018, 23:27

Sono 5 anni che traffichi con arduino e ancora a sto livello sei?
\Gamma\nu\tilde{\omega}\theta\i\ \sigma\epsilon\alpha\upsilon\tau\acute{o}\nu
Avatar utente
Foto UtenteIlGuru
5.482 2 10 13
G.Master EY
G.Master EY
 
Messaggi: 1924
Iscritto il: 31 lug 2015, 23:32

0
voti

[6] Re: Conteggio che torna indietro dopo determinata soglia

Messaggioda Foto Utentepapa10 » 2 mag 2018, 7:17

quando avrai la mia eta',71 anni lo capirai.Questo e' il rispetto che si ha verso il prossimo!!Buongiorno
Avatar utente
Foto Utentepapa10
71 1 3 4
Frequentatore
Frequentatore
 
Messaggi: 248
Iscritto il: 20 ott 2011, 17:11

0
voti

[7] Re: Conteggio che torna indietro dopo determinata soglia

Messaggioda Foto UtenteIlGuru » 2 mag 2018, 9:59

Va bene, mi fido...
Un modo abbastanza semplice per realizzare quello che vorresti fare è usare due variabili, una per il conteggio ed una per memorizzare la direzione in cui contare che varrà +1 o -1
All interno del ciclo loop, se conteggio == 31 && direzione == +1 allora direzione = -1; se conteggio ==0 && direzione == -1 allora direzione = +1; conteggio = conteggio + direzione;
\Gamma\nu\tilde{\omega}\theta\i\ \sigma\epsilon\alpha\upsilon\tau\acute{o}\nu
Avatar utente
Foto UtenteIlGuru
5.482 2 10 13
G.Master EY
G.Master EY
 
Messaggi: 1924
Iscritto il: 31 lug 2015, 23:32

1
voti

[8] Re: Conteggio che torna indietro dopo determinata soglia

Messaggioda Foto Utentepgiagno » 2 mag 2018, 10:00

Vorrei capire che tipo di display hai, perché includi la libreria <LCD.h> e la libreria <LiquidCrystal_I2C.h>. La prima serve per i display che si connettono "direttamente" ad Arduino e occupano molti pin, mentre la seconda serve per i display che hanno il controllore I2C PCF8574 nella parte posteriore e che vengono controllati soltanto con due fili più Vcc e GND (4 in tutto).

Per quello che vuoi fare ti conviene usare l'istruzione "for" che trovi spiegata qui.
Se al posto di:
Codice: Seleziona tutto
  lcd.setCursor(3,2);
  lcd.print(n++,DEC);
  delay(500);}
scrivi:
Codice: Seleziona tutto
for (n=0; n<30; n++) {
  lcd.setCursor(3,2);
  lcd.print(n,DEC);
  delay(500);
}
dici ad Arduino di comportarsi così:
1 - prendi la variabile n e mettila uguale a 0
2 - posiziona il cursore del display alla riga 2 terzo carattere
3 - visualizza il valore di n
4 - aspetta mezzo secondo
5 - se n è minore di 30, incrementa n di 1 e vai al punto 2; se no esci dal ciclo
Con queste istruzioni il tuo programma conterà da 0 a 29 e poi ricomincerà, sempre da 0 a 29. I limiti del conteggio sono dentro l'istruzione "for".
Se vuoi che il programma continui contando alla rovescia, dopo il ciclo di for che conta avanti, ne devi mettere uno che conta all'indietro, così:
Codice: Seleziona tutto
for (n=29; n>0; n--) {
  lcd.setCursor(3,2);
  lcd.print(n,DEC);
  delay(500);
}
Con queste istruzioni tu dici ad Arduino di comportarsi così:
1 - prendi la variabile n e mettila uguale a 29
2 - posiziona il cursore del display alla riga 2 terzo carattere
3 - visualizza il valore di n
4 - aspetta mezzo secondo
5 - se n è maggiore di 0, decrementa n di 1 e vai al punto 2; se no esci dal ciclo
Spero di esserti stato utile.

Ciao,
P.

P.S. Da coetaneo a coetaneo: non prendertela, so' ragazzi...
Avatar utente
Foto Utentepgiagno
503 3 7
Stabilizzato
Stabilizzato
 
Messaggi: 363
Iscritto il: 5 gen 2015, 21:27

0
voti

[9] Re: Conteggio che torna indietro dopo determinata soglia

Messaggioda Foto Utentepapa10 » 2 mag 2018, 11:11

Ciao pgiagno e grazie, mi sono avvicinato ad arduino perche' lo trovo interessante e anche perche' mi impegna a tenermi su e non cadere in depressione come accade spesso a quelli della mia eta' e non perche' debba diventare programmatore.Il fatto che chieda a destra e a manca spiegazioni non e' perche' voglia la pappa bella e pronta,ma il solo pensiero di avere una risposta ed imparare nel mio piccolo qualcosa e' per me fonte di sollievo e di gratificazione.Questo e' IL VERO MOTIVO che faccio ai vari siti .Che siano ragazzi,si sa che si comportano cosi,pero' un po' di etica comportamentale non guasterebbe.Oramai ho assorbito il tutto e non e' successo nulla.Ringrazio quanti mi hanno aiutato e che lo faranno in seguito se sara' necessario.Buona giornata a tutti.
Avatar utente
Foto Utentepapa10
71 1 3 4
Frequentatore
Frequentatore
 
Messaggi: 248
Iscritto il: 20 ott 2011, 17:11

0
voti

[10] Re: Conteggio che torna indietro dopo determinata soglia

Messaggioda Foto UtenteIlGuru » 2 mag 2018, 11:55

Ti consiglio di fare pratica di programmazione in C con un qualunque compilatore gratuito come GCC e seguire uno degli nmila tutorial che si trovano in internet dove avrai modo di imparare tutto quello che c'è da sapere su cicli, strutture di controllo, algoritmi principali ecc, bastano poche settimane per farsi un idea. Una volta acquisita l idea di come si pensa un algoritmo si può applicare il concetto ad un microcontrollore che rappresenta un grado di complessità maggiore. È come se uno che non ha mai guidato una macchina facesse scuola guida su una ruspa dove si trova davanti mille leve che su una vettura non ci sono.
\Gamma\nu\tilde{\omega}\theta\i\ \sigma\epsilon\alpha\upsilon\tau\acute{o}\nu
Avatar utente
Foto UtenteIlGuru
5.482 2 10 13
G.Master EY
G.Master EY
 
Messaggi: 1924
Iscritto il: 31 lug 2015, 23:32

Prossimo

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti