Arduino Forum

International => Italiano => Software => Topic started by: Domi02 on Jun 03, 2019, 09:50 pm

Title: Problema con delay!!
Post by: Domi02 on Jun 03, 2019, 09:50 pm
Salve a tutti, avrei un problema con arduino , ho cercato sul web ma non ho trovato quasi niente a riguardo e di quel poco che ho trovato ho capito ben poco. Il problema è se io vorrei far fare lampeggiare un led con delay (500) e nel mentre far fare un beep dal buzzer con delay differente ,Arduino normalmente mi somma tutti i delay presenti nel codice, da come ho letto arduino non riuscirebbe a fare ciò, datemi qualche chiarimento per favore o qualche manuale da studiare riguardo questo campo, Grazie mille a tutti.
Title: Re: Problema con delay!!
Post by: Claudio_FF on Jun 03, 2019, 09:56 pm
https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay (https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay)
Title: Re: Problema con delay!!
Post by: mauroplus on Jun 03, 2019, 10:00 pm
Ciao,cerca sul web led,millis,arduino ,e vedrai che nel web trovera infiniti esempi e spiegazioni per il tuo progetto.
Title: Re: Problema con delay!!
Post by: gpb01 on Jun 03, 2019, 11:43 pm
>Domi02: Devi studiarti come si usa la funzione millis() (https://www.arduino.cc/en/Reference/Millis), prima QUI (http://www.leonardomiliani.com/2012/come-gestire-loverflow-di-millis/), poi QUI (http://www.leonardomiliani.com/2013/programmiamo-i-compiti-con-millis/) e QUI (http://arduino.cc/en/Tutorial/BlinkWithoutDelay) e QUI (http://www.baldengineer.com/pushbutton-and-flashing-led-tutorial-with-millis.html) e tutti gli articoli che sono in QUESTA (https://www.baldengineer.com/arduino-millis-examples.html) pagina ... vedrai che ti sarà tutto più chiaro.

Guglielmo

P.S.: ... oltre che a quei link, prova a dare un occhiata anche QUI (http://forum.arduino.cc/index.php?topic=491944.msg3361369#msg3361369).
Title: Re: Problema con delay!!
Post by: Datman on Jun 04, 2019, 06:25 pm
Funziona così:
Devi fare un caffè, una torta e un gelato. Hai solo un orologio. Alle 14 metti il caffè sul fuoco, inforni la torta e accendi la gelatiera.
Alle 14.05 togli il caffè dal fuoco,
alle 14.40 togli il gelato dalla gelatiera
alle 14.50 sforni la torta.
Quindi, con millis():
Prendi il tempo con una variabile unsigned long  (io uso t1, t2, t3 ... all'interno di un programma):
t1=millis();
poi verifichi:
if(millis()-t1>1000) {t1= millis(); fai questo}
In questo modo, "fai questo" verrà eseguito una volta ogni secondo.
È solo un esempio; puoi fare molte altre cose. Mantieni, però, sempre la forma if(millis()-t1...) per non avere mai problemi con l'overflow.
Title: Re: Problema con delay!!
Post by: gpb01 on Jun 04, 2019, 09:23 pm
Tread ripulito da post NON inerenti il problema tecnico.

Guglielmo