---
# System prepended metadata

title: Multitasking a Arduino
tags: [Arduino, ' programació', SMX]

---

<div style="width: 45%; margin-left: auto;">

![image](https://hackmd.io/_uploads/By3ai4Bolx.png)

</div>

<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Llicència de Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />Aquesta obra està subjecta a una llicència de <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Reconeixement-CompartirIgual 4.0 Internacional de Creative Commons</a>

# Multitasking a Arduino (I).
## El problema.

Ja hem vist com fer un programa molt senzill que faci que un led faci pampallugues.
```cpp=
void setup() {
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1000);
  digitalWrite(LED_BUILTIN, LOW);
  delay(1000);
}
```

Podem modificar aquest programa per a que enlloc de encendre i apagar un LED envii un missatge pel port sèrie cada 2 segons.

```cpp=
void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println("Missatge cada 2 segons.");
  delay(2000);
}
```

Com ho faríeu per a tenir dos tipus de missatges: un cada 2 segons i un altre cada 4 segons?

---

> No aneu tan ràpid a veure la sol·lució, intenteu esbrinar-la pel vostre compte.

---

Una possible sol·lució podria ser la següent:

```cpp=
void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println("Missatge cada 2 segons.");
  delay(2000);
  Serial.println("Missatge cada 2 segons.");
  Serial.println("Missatge cada 4 segons.");
  delay(2000);
}
```

Us imagineu com seria una app que envii un missatge cada 2 segons un altre cada 3? Si us plau, no li pregunteu al xat ni busqueu la sol·lució a internet. És molt important que intenteu arribar a la sol·lució per vosaltres mateixos i només amb les comandes que hem après fins ara.

