Menu

Arduino supporta il multi-threading?

Alternative e soluzioni

21 Febbraio 2025 di Alessandro Colucci
Multithreading Image

Arduino, di default, non supporta il vero multi-threading come fanno i sistemi operativi come Linux o Windows. Questo perché la maggior parte delle schede Arduino utilizza microcontrollori con processori single-core, privi di un sistema operativo per la gestione dei thread.

Tuttavia, è possibile simulare il multi-threading in diversi modi:

1. Utilizzo di millis() per il multitasking

Invece di usare delay(), è possibile utilizzare la funzione millis() per tenere traccia del tempo ed eseguire più attività in modo apparentemente parallelo. Questo approccio non blocca l'esecuzione del programma e consente di gestire più operazioni basate su intervalli di tempo.

Esempio: https://pastebin.com/SA0uScc6

2. Uso di librerie per la gestione dei task

Alcune librerie permettono di simulare il multi-threading attraverso la pianificazione delle attività. Queste librerie suddividono i compiti in piccoli frammenti ed eseguono ogni attività in sequenza.

    • Scheduler (disponibile per alcune schede Arduino come l’Arduino Due)
    • TaskScheduler, una libreria di terze parti molto diffusa per gestire attività pianificate.

Esempio con TaskScheduler: https://pastebin.com/5t78h234

3. Supporto al multi-threading su ESP32

Se stai utilizzando un ESP32, che ha due core, puoi sfruttare FreeRTOS (incluso nel framework Arduino per ESP32) per implementare un vero multi-threading. FreeRTOS permette di eseguire più task in parallelo su core separati.

Esempio con FreeRTOS su ESP32: https://pastebin.com/h6DbQF5z

Sulle piattaforme come ESP32, FreeRTOS rende possibile il vero multi-threading, migliorando significativamente la gestione delle operazioni in parallelo.

Quale soluzione fa al caso tuo? Proviamole insieme su pleasedontcode.com!

Torna al Blog Costruisci il tuo primo dispositivo

Vuoi realizzare questo progetto?

Hai appena letto Arduino supporta il multi-threading?.
E se potessi trasformarlo in un progetto funzionante in pochi minuti?

Con PleaseDontCode descrivi in linguaggio naturale cosa deve fare il tuo dispositivo: l'intelligenza artificiale genera il firmware completo, pronto da caricare su oltre 100 schede Arduino ed ESP32.

Scegli i sensori, attuatori e protocolli di comunicazione che ti servono — al codice ci pensiamo noi. Non serve esperienza di programmazione.

Costruisci il tuo primo dispositivo Gratis, senza carta di credito
Raggiungici su WhatsApp