How Do I Do Multiple Things at Once?
Arduino runs one loop. The trick is to avoid delay and use separate timers for each task.
Basic pattern
unsigned long ledTimer = 0;
unsigned long sensorTimer = 0;
void loop() {
if (millis() - ledTimer >= 500) {
ledTimer = millis();
// toggle LED
}
if (millis() - sensorTimer >= 100) {
sensorTimer = millis();
// read sensor
}
}Each timer is independent, so tasks run on their own schedule.
Bottom line
Use one timer per task and avoid delay.
Related: Why should I avoid delay()? · How do I make a timer? · How do I debounce a button?