Problème de communication Python-Arduino

Dans tes while, je pense qu'il faudrait mettre un if (Serial.available()) avant le parseInt() sinon, le parse sort au bout d'un certain temps et tu récupères zéro au lieu de ta donnée(voir ici)

Autre chose, dans la mesure où loop est une boucle infinie, je pense que la structure de ton programme n'est pas très judicieuse avec ces 2 while qui forment des boucles bloquantes.