Ciao a tutti,
vorrei creare un programma per controllare una striscia led rgb da arduino. Tramite un potenziometro vorrei selezionare 1 dei 10 giochi di luci prestabiliti dopo di che premendo un pulsante avviare il gioco di luce selezionato e farlo ripetere fino a che non ne venga selezionato un altro.
Ecco un esempio di quello che vorrei fare:
int pulasnte = 13;
int potenziometro = 0;
void setup(){
pinMode(pulsante, INPUT);
}
void loop(){
potenziometro = analogRead(A0);
if(potenziometro < 100){
appena premo il pulsante fai partire questo gioco di luce
}
if(100 < potenziometro < 200){
appena premo il pulsante fai partire questo gioco di luce
}
if(100 < potenziometro < 300){
appena premo il pulsante fai partire questo gioco di luce
}
}
Il problema è che così non funziona, infatti riesco a selezionare il gioco di luce ma a farlo partire solo se tengo premuto il pulsante.
allora è normale che succeda ciò... il problema principale sta su come gestisci la lettura del pulsante fa un semplice if(pulsante==HIGH) non va assolutamente bene... prova a cercare un po su internet come utilizzare al meglio pulsanti su Arduino... ci sono N domande sul forum a riguardo, è tutto molto documentato
leggiti anche qualcosa su come fare un filtro antirimbalzo ... anche qui ci sono N post sul forum da cui prendere spunto
Si, infatti avevo intutito che il problema fosse in quel punto. Ma non avevo idea di che funzione utilizzare. Intanto vado a dare un occhiata in giro per il web, comunque mi farebbe anche piacere avere il vostro parere, nel caso in cui a qualcuno venisse qualche idea!
La soluzione al problema penso sia chiara ... però seguendo un po' la filosofia del forum ... si cerca di da una mano a capire dov'è il problema e non scrivere direttamente il codice corretto, ma dare spunti... così che tu ti possa fare le ossa e arrivarci tu stesso ... è molto più costruttivo e funzionale per te...
se proprio non ne vieni a capo, allora si può pensare di farti uno sketch di esempio completo
Non è che su nozioni come leggere un pin digitale sia inopportuno mostrare un esempio
Credo che uno debba ragionare con la sua testa nel trovare la soluzione, nel creare un algoritmo ecc..
Ma se ha problemi con le nozioni base del linguaggio, oltre a suggerigli una guida non vedo il motivo di non indicargli la funzione o soluzione giusta
Equilibrio è il segreto dell'universo non dargli la pappa pronta, ma neanche non evitare di dargli nessuna informazione
SukkoPera:
Anche questo non va bene:
if (a < x < b)
Va suddiviso in due condizioni legate da AND:
if (x > a && x < b)
Grazie mille, infatti anche questo mi creava non pochi problemi. Ora funziona a dovere.
Comunque ho deciso di rinunciare al pulsante per l'invio del gioco di luce in quanto mi complicava anche la parte hardware, lasciando soltanto il potenziometro per la selezione e la partenza automatica del gioco di luce.