problema gestione pulsante

buon giorno
sto utilizzando arduino uno con lcd 16x2.....fino a qua tutto ok....ho collegato un'interrutore al pin6...io vorrei fare apparire un testo e questo ci riesco e poi vori dirgli di fare apparire un'atro testo dopo avere premuto il pulsante.....che istruzioni devo usare?
il tasto e collegato un pin ai 5v l'altro pin va al in 6 dell'arduino e con una resistenza d 10k va verso anche gnd(-)
GRazie

E' veramente difficile comprendere quello che scrivi ..... quando esce un dizionario spiddese1-Italiano faccelo avere XD XD XD
Ti consiglio di :

  1. usare i tutorial per cose elementari, li trovi molte info
  2. cercare nelle pagine del forum prima di chiedere,
  3. cerca su google anche li trovi molte info
  4. postare uno schemino di quello che hai o quello che vorresti avere
  5. partecipare alle discussioni, poichè una volta fatta la domanda tu sparisci e non sappiamo nemmeno se le risposte le hai lette

ciao

se x voi e banale lo capisco ma ci siete passati anche voi penso prima di diventari pratici..
ho gia guardato ingiro se non non vi disturberei......
io ho solo collegato al mio arduino una un lcd 16*2 contenente nel starter kit e riesco e scriverci e altro....poi ho collegato un'interrutore nell'ingresso 6 e logicamente lo gestisco come ingresso pero non so come dire al programma visualizza il testo ad esempio premere un tasto e una volta premeuto visualizzare un altro testo.....

praticamente...........
un'esempio puo essere
nella prima righa fare comparire ciao!!(e ci sono riusciuto)
nella seconda premere un tasto.....(e ci sono riuscito)
premo il tasto
e appare scitto Marco...

e un'esempio proprio banale ma spero vi aiuti a capire
cmq se x caso fossse troppo banale x voi se mi date indirizzo di un altro forum "più banale"
non vi disturbo più

spiddy1 ... devi semplicemente definire quel pin come un pin di input :

pinMode(6, INPUT);

... dopo di che, nel tuo ciclo di loop() dovrai leggerlo :

valorePin = digitalRead(6);

...e rilevare se è HIGH o LOW.

Hai però un problema che devi conoscere ... sono i rimbalzi che un interruttore provoca. Quando tu lo apri o lo chiudi, ecco quello che succede :

.. quindi, senza una tecnica di "debouncing" leggeresti numerosi impulsi. Per questo ti è stato suggerito di leggere il tutorial sul Debouncing :wink:

Guglielmo

dai, non ti agitare

piuttosto mettici lo sketch che hai fatto, cosi' ci rendiamo conto a che punto sei arrivato

vi allego sketch

ciao.ino (1.57 KB)

... spiddy1 ... quello che hai messo è il minimo per l'LCD. Io ti ho spiegato quello che devi fare, ora mettiti li e cerca di implementarlo. Se dopo averci provato non ci riuscirai, chiedi nuovamente aiuto e ti aiuteremo ... :slight_smile:

Guglielmo

P.S. : Della serie ... "aiutati che Dio ti aiuta" ... ma non sperare che facciamo noi il lavoro per te (... poiché non impareresti assolutamente nulla :wink: )

ok quando avro tempo mi provo a cimentare
grazie

spiddy1:
ok quando avro tempo mi provo a cimentare
grazie

Una istruzione if ti permette di fare qualcosa solo se si è verificato una certa situazione.
Nei tuoi post precedenti accennavi avresti preso un kit Arduino. Lo hai preso senza un libro?
Hai un kit e fatto un pò degli esercizi più semplici ? Magari aiutato da un libro tipo questo?

ti diamo un aiutino

nel setup()

devi aggiungere, come ti ha gia' detto guglielmo

pinMode( 6 , INPUT);

serve a mettere quel pin come ingresso

poi, nel loop() , nel punto in cui vuoi controllare lo stato del pulsante

int valorePin = digitalRead(6);

che praticamente assegna alla variabile 'valorepin' lo stato in cui si trova il pulsante
Se e' premuto sara' HIGH, se non e' premuto LOW ( questo perche' hai correttamente inserito una resistenza dal Pin al GND )

Ora che hai questa variabile con il valore impostato, devi controllarla, la cosa piu' semplice e' con 'if'

if ( valorepin == HIGH ) { // controlla se il tasto e' stato premuto ed esegue se la condizione e' vera il codice tra le due graffe
lcd.setCursor(0, 1);
lcd.print("marco           ");
}
else  // altrimenti se la precedente condizione non e' vera, esegue questo ciclo
{
lcd.setCursor(0, 1);
lcd.print("non c'e'        ");
}

Scrive marco solo quando il tasto e' premuto. Ora vai avanti da solo

Ok grazie

io ho provato ma mi da
vari errori vi allego sketch

spiddy1.ino (1.72 KB)

Ovvio che ti vari errori ...
... mettiti li e correggili ... scrivendo il codice PIU' ORDINATO, controlla le parentesi e sistema le indentature !!!

Arduino -> Tools -> Auto Format

Quando quello non ti darà errore e ti metterà bene in ordine il codice ... vorrà dire che avrai sistemato gli errori di parentesi graffe che hai fatto ...

Guglielmo

OK FUNZIONA.....
PERO AL PRIMO COLPO CAMBIA LA PAROLA E POI IL DISPLAY MI MOSTRA NOMI DOPPI FA COSE STRANE..CHE SIA IL PROBLEMA CHE MI DICEVAE DEL PRESSIONE DEL TASTO?
RIALLEGO SKETCH

spiddy1.ino (1.66 KB)

Ogni volta che premi e lasci il tasto, se non fai il debouncing, è come se lo premessi e lasciassi rapidamente decine di volte ...
... ti è stato chiaramente indicato il link : http://arduino.cc/en/Tutorial/Debounce ... studialo e vedi di applicarlo ... :roll_eyes:

Per capirlo, ti può essere anche utile studiare QUESTO altro link relativo all'uso della millis() :wink:

Guglielmo

PK GRAZIE MILLE..PERDONATE LA MIA IGNORANZA X ORA
GRAZIE

Cortesemente NON scrivere tutto in MAIUSCOLO ...
... sui forum ... equivale ad URLARE ... e ... oltre a non essere bello, è anche contrario al regolamento ... :roll_eyes:

Guglielmo