Effectuer une action toutes les 10min

Dans le micro-controleur il existe une zone indépendante de la zone des registres utilisés pour la programmation : la zone des compteurs (Timers).
Ces compteurs tournent tranquillement indépendamment de la programmation qui ne peut que les lancer, les arrêter, changer ou lire quelques registres pour des comparaisons. C'est de la pure électronique numérique câblée en dur donc non reconfigurable.

La fonction delay() bloque le programme, elle fait une vraie pause.
La fonction millis() se contente de lire l'état du compteur du timer0, ce qui ne prend qu'un tout petit nombre de cycles horloge.
Par contre c'est à toi de gérer son exploitation et pour cela voir l'exemple blink_without_delay.