J'ai une question bête mais j'ose quand même : est ce que la fréquence d’exécution du code de l'arduino est différente quand il est alimenté sur le port 5V et via le port USB?
Tout bêtement, j'ai une LED qui s'allume pendant 15 secondes quand alimentée par port USB et cette durée tombe aux alentours de 3 ou 4 secondes quand alimentés par port 5V sur batterie externe.
Une idée du pourquoi?
Oui, oui, 1k c'est bien.
J'ai peut-être regardé un peu vite mais lorsque la distance est inférieure à 1m je ne vois aucun délai donc je ne vois pas ce qui conditionne les fameuses 15s ou 4s.
si vous voyez les 2 LEDs qui s'allument pour 2 secondes en cours de route c'est que la carte a rebooté...
ou si vous alimentez par l'USB avec l'ordinateur, affichez un message (sinon le Serial.begin(9600); ne sert à rien quand il n'y a pas de console connecté)
Ce n'est pas étrange, chaque couleur a une tension différente et vous mettez les résistances de la même valeur, vous devez calculer les valeurs de résistance pour chaque led pour obtenir la même consommation.
Pour le reste, tout semble bien, même si un schéma de connexion complet serait bien utile.
En ce qui concerne ce comportement, je le vois étrange, s'il s'agissait d'un problème d'alimentation, le comportement serait l'inverse, un temps plus court lors de l'alimentation par USB.
Cependant, vérifiez que le HC-SR04 reçoit correctement 5V, Je ne sais pas si à des valeurs inférieures votre fréquence de travail change. Avec le nano vous n'avez aucun problème d'alimentation, sa fréquence de fonctionnement est stable même si vous l'alimentez à 3V via la broche 5V.
Quant au code, la seule chose qui peut provoquer un retard est la fonction pulseIn(), c'est-à-dire que le HC-SR04 ne fonctionne pas correctement et cette fonction attend trop longtemps le changement de niveau. Essayez de définir un temps d'attente maximum pour voir si le comportement change, par exemple :