salve a tutti
sono nuovo , forse non e' il posto giusto per postare la mia domanda ma mi scuserete
ho un problema nel compilare lo sketch , con la funzione if(digitalRead(tasto_D)==LOW) devo andare a leggere se un pulsante e' stato premuto oppure no' ,il mio problema e' che 'l'impulso sul tasto D non e' prolungato abbastanza e
non avviene proprio quando e' eseguita quella riga del programma , quindi il tasto D e' stato premuto , ma non viene letto dalla funzione di cui sopra .Chiedo come posso fare ,a , far vedere che il tasto e' stato premuto ,anche se non proprio nell'istante giusto ?
vale a dire posso memorizzare l'avvenuta pressione del tasto D , affinche' il programma possa leggerla quando arriva in quel punto ?
non so' se sono riuscito a spiegarmi , ma il tasto_D ,premuto momentaneo , possa diventare permanente fino all'esecuzione della riga in cui viene letto.
sicuramente e' una cosa semplice ma non riesco a cavarci le gambe , sono autodidatta ,senza basi di programmazione
Posta il programma che hai fatto. Mi sembra strano che tu sia più veloce della macchina.
Se premi un tasto lo fai molto lentamente rispetto alla macchina. A meno che hai un codice molto lento oppure hai messo la lettura nel posto sbagliato.
Già anche a me pare strano quando dovresti avere qualche migliaia di cicli/sec, se usi dei delay() può succedere, ma ci sono alternative, se proprio è impossibile ovviare allora ci sono gli interrupt come ultima spiaggia
il problema e' questo : al punto IF io devo spengere relay 1 se il tasto D e' stato premuto dopo relay 4 ,in qualsiasi momento anche solo una volta o piu' volte di seguito durante il delay 5000.
adesso funziona solo se, alla fine del delay5000 il tasto D VIENE TROVATO premuto , (LOW) .
siccome sono alle prime armi ,ho scelto io IF ma ho provato anche WHILE ma senza successo , ora non so' piu' cosa scrivere al posto di IF
ho postato lo sketch ,sequenza -prova-2 .spero si ved ^_^a :~