Les deux capteurs sont-ils orientés de manière à ne pas se gêner ?
Note que pulsein ne correspond pas à l'envoi d'une pulsation mais à l'écoute. La syntaxe est :
pulseIn(pin, value, timeout)
Parameters:
pin: the number of the pin on which you want to read the pulse. (int)
value: type of pulse to read: either HIGH or LOW. (int)
timeout (optional): the number of microseconds to wait for the pulse to start;
default is one second (unsigned long)
Ton code est séquentiel : il fait écouter le premier capteur puis le second. Mais le timeout du premier est de 1 seconde par défaut: si rien ne revient pendant cette seconde, le code va attendre puis passer à l'écoute du second capteur. Si un signal revient au second capteur pendant l'attente du premier, rien n'est capté au final.
Je pense que tu devrais faire un code plus rapide, avec des timeout plus courts. Si tu veux détecter des obstacles à 15 cm, le timeout optimal serait le temps pour le son de parcourir 30 cm (15 cm aller et retour), soit à 300m/s ça fait 1 ms. Tu peux mettre une marge et prendre 1.5 ms soit 1500 microsecondes...