Fonction Loop

Dans une fonction boucle on répète et répète sans sortir de la boucle, donc comment combiner deux boucles??

Il ne faut pas généraliser.
La boucle infinie est spéciale au fonctionnement du microcontroleur.
Si elle n'existait pas le programme se déroulerait, irait jusqu'à la fin de la mémoire et s’arrêterait.
Il faudrait appuyer sur le bouton Reset pour le relancer.

Revenons au cas général.
Dans une boucle il y a obligatoirement une condition :
Exemple :
while( machin == 0)
{
}
On reste dans la boucle tant que machin reste égal à 0, dès que machin n'est plus égal à 0 on sort de la boucle.

Imaginons que tu ai un bouton poussoir et que tu lises son état.
etat_bouton = digitalRead(pin_bouton );

On va utiliser une condition if pour modifier la valeur de la variable machin en fonction de l'état du bouton.

machin = 0; // initialisation
while (machin == 0)
{
  etat_bouton = digitalRead(pin_bouton);  // lecture du bouton
  if (etat_bouton == 0)    // quand le bouton est appuyé on lit un état bas égal à 0 volt.
   {
      machin = 1 ; // on change la valeur de machin
   }
}

Maintenant tant que tu n'appuis pas sur bouton tu reste dans la boucle et dès que tu aura appuyé sur le bouton tu sortira de la boucle.

Ça c'est TON programme, la boucle infinie dans laquelle tourne la fonction appelée loop() c'est le problème de l'IDE tu n'as pas a t'en occuper tant que tu programme avec l'IDE..