Salve a tutti. Vorrei realizzare un semplice comando di accensione di un led, tuttavia utilizzando una password su tre o quattro pulsanti(quelli standard, non il tastierino). Il collegamento hardware ce l ho in mente. Il problema è il codice. Come faccio ad usare il comando if sul controllo dei pulsanti? Nel senso, come faccio a dirgli se la sequenza è Pulsante1,Pulstante2,Pulsante3-> accendi led; else lascialo spento?
Grazie a tutti ![]()
... crei una "macchina a stati logici" che si resetta allo stato iniziale se la sequenza di pressione dei tasti NON è quella giusta.
In pratica tu sai che va eseguita una certa sequenza ... tieni in una variabile il "passo" a cui sei arrivato e quindi sai cosa ti aspetti come "passo" successivo. Se ricevi ciò che ti aspetti avanzi di un passo, altrimenti resetti e ti riporti all'inizio.
Più difficile a dirsi che a farsi ![]()
Guglielmo
Come dice Guglielmo, una variabile numerica che varrà 0 all'inizio, poi 1 quando premuto 1° tasto giusto, 2 quando premi anche il 2° giusto e così via. Se il tasto è errato, allora notifichi errore e poi la variabile la rimetti a 0.
Quando la variabile arriva a 4 il codice è giusto.
Ok signori. Seguendo i vostri consigli, l ho realizzato. Successivamente aggiungerò il codice e lo schema. Ora ho una nuova domanda: e se la sequenza non la voglio preimpostata, ma voglio inserirla manualmente nel sistema ogni ciclo? Qui le cose si complicano perchè non so come associare la variabile di un tasto alla sequenza in imput.
![]()
... cosa intendi per "inserirla manualmente" ?
Vuoi creare due possibili macro-stati del tuo sistema ... uno in cui "controlla" la sequenza ed uno in cui "apprende" una nuova sequenza ? O come pensi di inserirla ?
Guglielmo
Si esatto. Due macro stati. Uno dove gli dici qual è la sequenza che vuoi in questo ciclo e l'altro dove provi ad inserire la sequenza corretta. Il problema è che non so come inserire delle variabili che vengano associate ai tasti e che possano variare ogni volta.
Grazie mille per ora.
Gabriele
... beh ... intanto ti servirà un pin in più (con un interruttore) che metterai HIGH o LOW per indicare se il tuo sistema deve essere in "apprendi sequenza" o in "controlla sequenza", dopo di che ti basta un array di bytes dove memorizzare (... o con cui verificare) la giusta sequenza ![]()
Guglielmo