Pages: [1]   Go Down
Author Topic: impulso  (Read 361 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

saluti a tutti  Valente smiley-fat smiley-eek
Logged

ivrea (to)
Online Online
Faraday Member
**
Karma: 57
Posts: 3587
miaaao ^-^
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

my name is IGOR, not AIGOR

BZ (I)
Online Online
Brattain Member
*****
Karma: 236
Posts: 20285
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Anche secondo me é un problema di Sketch e com un Sketch scritto in modo opportuno risolvi il problema. Dacci lo sketch.
Ciao Uwe
Logged

Genova
Offline Offline
Faraday Member
**
Karma: 17
Posts: 2758
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-mr-green
Logged

Meglio imparare dalle cose inutili piuttosto che non imparare niente.   [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie OK

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 smiley-confuse

grazie per il gentile aiuto

* sequenza_prova_2.ino (3 KB - downloaded 11 times.)
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 236
Posts: 20285
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il problema é i delay() che usi.
Sostituisi i delay con un controllo del tempo trascorso con millis()
http://opensourcehardwarejunkies.com/tutorial-12-blink-an-led-without-using-the-delay-function/

Ciao Uwe
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21657
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Il problema é i delay() che usi.
Sostituisi i delay con un controllo del tempo trascorso con millis()
http://opensourcehardwarejunkies.com/tutorial-12-blink-an-led-without-using-the-delay-function/

Ciao Uwe
Suggerisco una guida in italiano  smiley-wink
http://www.leonardomiliani.com/2013/programmiamo-i-compiti-con-millis/
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

 smiley  grazie delle risposte
faccio delle prove  con millis , spero di risolvere , intanto mi studio i link che mi avete postato

saluti valente smiley-roll smiley-roll
Logged

Pages: [1]   Go Up
Jump to: