Come Gestire l'Overflow di millis() su Arduino

  Рет қаралды 3,151

paolo aliverti

paolo aliverti

Ай бұрын

Come Gestire l'Overflow di millis() su Arduino
Hai mai riscontrato problemi con la funzione millis() su Arduino? In questo video, esploriamo in dettaglio il problema dell'overflow di millis() e come gestirlo efficacemente nei tuoi progetti. La funzione millis() è una delle più utilizzate per misurare il tempo trascorso, ma dopo circa 50 giorni di funzionamento continuo, il contatore si azzera, causando potenziali malfunzionamenti nei tuoi sketch.
- Cos'è la funzione millis() e come funziona.
- Perché e quando si verifica l'overflow di millis().
- Come rilevare e gestire l'overflow per assicurare che i tuoi progetti Arduino continuino a funzionare correttamente.
- Esempi pratici di codice per implementare soluzioni robuste.
codici:
Video 84x - Playlist Arduino
Abbonati a questo canale per accedere a contenuti e corsi esclusivi
/ @zeppelinmaker
Info abbonamenti: www.zeppelinmaker.it/abboname...
Canale Telegram: t.me/zeppelinmaker
Forum/Gruppo Telegram: t.me/forumzeppelinmaker
Codice: github.com/zmaker/arduino_coo...
Shop Libri e Componenti: www.amazon.it/shop/paoloaliverti
Libri:
- "Arduino trucchi e segreti" - amzn.to/2zvM2S8
- "Il manuale di Arduino" (va bene per chi inizia): amzn.to/2WQLzlw
- "Progettare con Arduino": amzn.to/3mMfKXZ
Puoi scaricare gratuitamente i miei libri:
- "Il manuale di Arduino - gumroad.com/l/arduino
- "Il cookbook di Arduino": gumroad.com/l/arduinocookbook
Altre informazioni e sul libri mio sito: - www.zeppelinmaker.it/libri/
Indice dei video:
www.zeppelinmaker.it/arduino100/
La playlist elettronica: bit.ly/2ICzhGS
La playlist su Arduino: bit.ly/2SNTKf4
La playlist coding sul: bit.ly/2B1uuL2
Come cercare tra i miei video:
• Canale KZbin di Paol...
Che cosa uso come lavagna digitale? OpenBoard (www.openboard.ch). + tavoletta wacom (amzn.to/3t2Fynd)
• Che strumenti utilizzo...
- Per offrirmi un caffè: www.zeppelinmaker.it/vuoi-off...
- Vuoi chiedere un video su un argomento particolare? www.zeppelinmaker.it/vuoi-chie...
ATTENZIONE: Per ovvi motivi di tempo non posso correggere o analizzare gli sketch e schemi che postate nei commenti o che inviate via mail. Cerco di rispondere a tutte le domande e le richieste sensate ma sono veramente troppe: abbiate pazienza!
#arduino

Пікірлер: 22
@ioalessa
@ioalessa 19 күн бұрын
Tanto semplice quanto geniale!!!!! TI PREGO metti tutti questi tips in un libroooooo😭
@zeppelinmaker
@zeppelinmaker 12 күн бұрын
mi pare ce ne siano già due! Manuale di Arduino e Arduino trucchi e segreti
@princopallinus2983
@princopallinus2983 28 күн бұрын
Grazie Tante, Paolo! Ottimo punto alternativo d"interpretazione delle funzioni. 👍 Complimenti! 🤩✌️
@paolinide
@paolinide 28 күн бұрын
Semplice ed efficace, ma affatto banale. Grazie.
@lucasartorio9203
@lucasartorio9203 27 күн бұрын
Complimenti
@hbelettronica
@hbelettronica 28 күн бұрын
Grazie Sig. Paolo come al solito sempre esaustivo !👍
@mawysk8r
@mawysk8r 28 күн бұрын
Ottima spiegazione del meccanismo! Grazie mille.
@frankmiller1121
@frankmiller1121 28 күн бұрын
interessante ed utile
@danielesegata9559
@danielesegata9559 24 күн бұрын
Buongiorno Guardo con interesse i tuoi video, volevo chiedere se avendo un arduino mega con ethernet shield è possibile ottenere la stampa della seriale tramite ethernet o una pagina web? Grazie
@enricooleari9315
@enricooleari9315 23 күн бұрын
Scusa l'ignoranza ma non si potrebbe mettere un "if" che controlla il valore di "millis()" che nel caso resetta la variabile di controllo "t1"?
@luigibrunomanzini253
@luigibrunomanzini253 28 күн бұрын
Grazie !! infatti mi serve per un controllo di allarme che fa scansione di sensori nel tempo.
@_Francesco_97
@_Francesco_97 27 күн бұрын
Ciao Paolo, attenzione, come soluzione non so se risolve il poblema. Perchè se pensi alla situazione in cui (caso peggiore) t1 = 2^32 - 1 ed il millis() è appena andato in overflow (supponiamo adesso valga 2) -> nella condizione dell'if avrei ( 2 - ( 2^32 - 1) > 2000) che non è vera e non diventerà vera finchè il millis() non diventa maggiore di 2^32 - 1, il che è impossibile! Quindi in quella situazione tutto si blocca. Non sarebbe meglio se ad ogni ciclo, salvassi il valore di miilis() in una variabile es. millisGiroPrecedente e verificassi che: if ( millisGiroPrecedente > millis() ) allora --- situazione di overflow e quindi setto tutti i miei timer uguali al millis attuale Fammi sapere se torna anche te.😀 Grazie per i tuoi video, sono sempre super chiari e dettagliati. Un saluto
@bernysaudino668
@bernysaudino668 26 күн бұрын
Al posto del 2*2*....*2 n volte si potrebbe usare anche 1
@bernysaudino668
@bernysaudino668 22 күн бұрын
In alternativa si può lavorare con il codice esadecimale anziché decimale, per quanto riguarda il massimo valore di unsigned long si può usare 0xffffffff
@bernysaudino668
@bernysaudino668 22 күн бұрын
Per quanto riguarda 10 millisecondi prima 0xfffffff6
@bernysaudino668
@bernysaudino668 22 күн бұрын
Per quanto riguarda 3 millisecondi prima 0xfffffffd 5, 0xfffffffb ecc.
@nuovovideo
@nuovovideo 28 күн бұрын
dovesse andare in overflow e resettando l arduino , tornerebbe tutto a posto ? oppure l arduino non funziona piu ed ė da sostituire?
@WeaverSpider
@WeaverSpider 28 күн бұрын
resettando si ricomincia d'accapo, così anche se spegni e riaccendi; millis() misura il tempo di esecuzione dello sketch.
@you2ber252
@you2ber252 27 күн бұрын
Mo no che non si brucia! Non puoi fare niente via software per danneggiare fisicamente il chip! Questo a meno che il chip non sia mal progettato, ma non è certamente il caso di un overflow di una variabile! 🤭
@MizzardNote11s-yx1cj
@MizzardNote11s-yx1cj 28 күн бұрын
Non è un procedimento corretto poiché il "T1" non viene aggiornato oltre al fatto che si sfrutta sempre e comunque l'over flow della variabile che non su tutte le schede può funzionare... Può dare problemi di criticità
@MizzardNote11s-yx1cj
@MizzardNote11s-yx1cj 28 күн бұрын
Già nel video dove hai spiegato i timer non bloccanti avevo scritto tale esempio ancora più semplice: If(T1 != millis()){ //Code T1 = millis() }
@lucianodipaolo2428
@lucianodipaolo2428 27 күн бұрын
ciao Paolo piu' chiaro di cosi si muore
progetti IoT con App e console usando Blynk e Arduino Uno WiFi
41:02
paolo aliverti
Рет қаралды 3,6 М.
Perché il delay() di Arduino è MALE - Video 759
14:25
paolo aliverti
Рет қаралды 16 М.
Iron Chin ✅ Isaih made this look too easy
00:13
Power Slap
Рет қаралды 36 МЛН
Они так быстро убрались!
01:00
Аришнев
Рет қаралды 1,7 МЛН
Опасность фирменной зарядки Apple
00:57
SuperCrastan
Рет қаралды 11 МЛН
JSON in pillole: cos'è? a cosa serve?
10:41
paolo aliverti
Рет қаралды 6 М.
Lavastoviglie con Arduino (macchina a stati con interrupt) - Video 345
18:18
The capacitor explained simply 👌👍
14:33
RG 4 Tech
Рет қаралды 767
Everything Starts with a Note-taking System
21:23
Mischa van den Burg
Рет қаралды 220 М.
impara a usare ArduinoJSON la libreria per trattare JSON
14:25
paolo aliverti
Рет қаралды 2,9 М.
Come Netflix, ma Open Source
15:20
morrolinux
Рет қаралды 111 М.
PANNELLI SOLARI sulle Auto Elettriche - Perchè (non) li fanno?
16:28
Andrea Cars and More
Рет қаралды 113 М.
Controllo PID per motore con Arduino - Video 712
18:32
paolo aliverti
Рет қаралды 7 М.
Try these 16 Brilliant ESP32 projects!!!
11:18
ToP Projects Compilation
Рет қаралды 559 М.