Tasto menu.

Buongiorno,come faccio a inserire un pulsante menu per modificare un valore di una variabile comune?

wingames: Buongiorno,come faccio a inserire un pulsante menu per modificare un valore di una variabile comune?

Devi comprare un pulsante e collegarlo con 2 fili poi ci scrivi sopra in piccolo "menu" con un pennarello indelebile.

pablos: Devi comprare un pulsante e collegarlo con 2 fili poi ci scrivi sopra in piccolo "menu" con un pennarello indelebile.

E i fili possono essere disegnati anche con il pennarello volendo.

@Winga posta più info! Sketch che usi, cosa vuoi fare con questo pulsante spiegato in maniera chiara! Che cos'è sto menu? Su un display? O è quello del ristorante? :) Ciao!

Molte volte è difficile per me spiegare cosa vorrei realizzare con Arduino ,allora vi allego un semplice esempio
questo esempio stampa su un lcd quante volte vengono premuti il pulsante 1 e il pulsante 2, se vengono premuti contemporaneamente entrambi i pulsanti si azzerano i due contatori,
come avete notato i contatori aumentano di 1 ad ogni pressione del pulsante.
Ecco cosa vorrei fare aggiungendo un terzo pulsante chiamandolo menù : premendo questo tasto entro in modalità programmazione per cambiare il valore di un pulsante ad esempio ,quando viene premuto il pulsante 1 aumenta il contatore di 10 ecc…

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


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(" www.wingames.it ");
  delay(3000); lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Valori:");
  lcd.setCursor(0, 1);
  lcd.print("P1=");
  lcd.setCursor(10, 1); 
  lcd.print("P2=");  
}

void loop() {

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

Ti sei dimenticato un PinMode

Comunque non capisco cosa significhi, entrare in programmazione... vuoi che quando tu prema questo terzo pulsante il contatore al posto di aumentare di 1 premendo il pulsante 1, premendo lo stesso aumenti di 10?

No , non è questo che vorrei fare.Il tasto menù servirà all'utente finale per cambiare il valore di un impulso. A dimenticavo in questo esempio che ho postato il pulsante menù non lo ho ancora inserito.

wingames: No , non è questo che vorrei fare.Il tasto menù servirà all'utente finale per cambiare il valore di un impulso. A dimenticavo in questo esempio che ho postato il pulsante menù non lo ho ancora inserito.

Manca comunque il

pinMode(in2,INPUT);

Un pulsante assume o un valore basso o alto. Non puoi cambiare il suo valore. Se invece vuoi che per esempio premendo quel pulsante tu voglia aumentare al posto di cambiare di 1 il contatore cambi di 10 allora si può fare. Però non riesco a capire bene la tua richiesta, forse sono io che non ci arrivo.

Comunque questo b=b+1; si può scrivere pure così b++;

E questo che vorrei fare ma e l’utente finale deve poter scegliere senza programmare con ide.

<Se invece vuoi che per esempio premendo quel pulsante tu voglia aumentare al posto di cambiare di 1 il contatore cambi di 10 allora si può fare.>

Beh allora mi viene in mente di fare in un modo. Dichiari una variabile chiamata ad esempio "numero scelto" che la fai partire da 1. E poi tramite il terzo pulsante cambi il valore di quella variabile. Negli if che invece hai adesso fai tipo b=b+numeroscelto; Non so se mi hai seguito. ;)

Ho capito cosa mi hai consigliato di fare ,ma il mio obbiettivo e quello di realizzare un vero e proprio menù. il mio progetto e costruire con arduino una scheda per cambiamonete queste schede hanno un menù dove puoi impostare molte cose come il tipo di moneta ,quanti impulsi deve generare a ogni moneta inserita ecc..

Beh devi comunque partire da una cosa come ti ho consigliato io. Poi aggiungi tutte le accortezze del caso.

Deve mettere più -void setup -void loop- nel codice ? Potresti consigliarmi qualche esempio di codice.

Per fare “elegantemente” i menu con i vari sottomenu, in Megatopic c’è un apposita, collauda e manutenuta, libreria … QUESTA
… trovo quindi abbastanza inutile cercare ogni volta di reinventare l’acqua calda !!!

Poi … vedi tu … ::slight_smile:

Guglielmo

Per fare "elegantemente" i menu con i vari sottomenu, in Megatopic c'è un apposita, collauda, libreria ... QUESTA

wingames: Deve mettere più -void setup -void loop- nel codice ?

Dopo 114 post ... ancora questo tipo di dubbi ? :o

Credo che lo abbiamo ripetuto centinaia di volte che in un programma ci può essere uno ed un solo loop() ed uno ed un solo setup() ...

loop() e setup() sono i nomi di due funzioni richiamate dal "main()", che, seppur a te nascosto dall'IDE, esiste ... e NON puoi mettere due funzioni con lo stesso nome !

Guglielmo

Ha ragione Guglielmo. Usa quella libreria, se era una cosa semplice come quella che credevo allora si poteva fare senza, ma tu vuoi qualcosa di più. Comunque spero che abbia scherzato riguardo a loop e setup, se no sarà difficile andare avanti se ti mancano le basi delle basi. Ciao!

Grazie ,spero di arricchire il mio programmino.

Molte volte è difficile per me spiegare cosa vorrei realizzare con Arduino ,allora vi allego un semplice esempio questo esempio stampa su un lcd quante volte vengono premuti il pulsante 1 e il pulsante 2, se vengono premuti contemporaneamente entrambi i pulsanti si azzerano i due contatori, come avete notato i contatori aumentano di 1 ad ogni pressione del pulsante. Ecco cosa vorrei fare aggiungendo un terzo pulsante chiamandolo menù : premendo questo tasto entro in modalità programmazione per cambiare il valore di un pulsante ad esempio ,quando viene premuto il pulsante 1 aumenta il contatore di 10 ecc....

A me sembra spiegato chiaramente, ovviamente sarebbe stato più chiaro e conciso se avessi detto che il tuo programma deve essere condizionato da un certo numero di parametri utente.

Un parametro utente ha di base due proprietà: Nome e Valore. In effetti la librerie che ti hanno consigliato gestisce tra i vari elementi del menu anche i parametri.

Altre proprietà di un parametro: - flag di formato visuale - valore massimo statico - valore minimo statico - valore massimo da parametro utente - valore minimo da parametro utente - livello di accesso

e molti altri se ne possono inventare.

Ciao.