MANUAL DE PROGRAMACIÓ AMB ARDUINO
TEMPS I ALEATORIETAT
🔹 Temps i pauses
-
⏱️ delay(ms)
-
Pausa l’execució del programa durant els mil·lisegons indicats.
-
És fàcil d’utilitzar però bloqueja l’execució, és a dir, no es fa cap altra tasca durant el retard.
-
S’utilitza en projectes senzills on no cal fer moltes coses alhora.
-
💡 Exemple en codi:

-
⏱️ millis()
-
Retorna el temps (en mil·lisegons) que fa que ha començat el programa.
-
Permet fer temporitzacions sense bloquejar l’execució.
-
Ideal per fer multitasking o controlar esdeveniments independents.
-
💡 Exemple en codi:

🔑 Claus per entendre-ho:
-
unsigned longés un tipus de variable de C++ que pot guardar nombres molt grans (de 0 fins a més de 4.000.000.000).
S'utilitza perquèmillis()retorna nombres que creixen constantment des que el programa s'executa, i al cap d’hores o dies pot arribar a valors molt grans. Si fos unint, podria donar errors per desbordament (overflow). -
El codi comprova el temps sense aturar el programa. Encara que no hi ha cap
delay(), el LED canvia cada segon. Mentrestant, podríem fer altres tasques dins el mateixloop().
🔹 Aleatorietat
Arduino també permet generar nombres aleatoris, útils per exemples creatius, jocs, o variabilitats:
-
randomSeed() → inicialitza la generació de nombres pseudoaleatoris a partir d’una “llavor” (seed). Si la llavor és sempre igual, la seqüència de nombres també serà sempre la mateixa. Per això es recomana utilitzar, per exemple, la lectura d’un pin analògic sense connexió (
analogRead(A0)), que acostuma a donar valors que varien una mica cada vegada. -
random(min,max) → genera un nombre aleatori entre min (inclusive) i max (exclusive).però segueix un patró matemàtic, genera un nombre pseudoaleatori.
💡 Exemple en codi:
