Bonjour, nouveau sur ce forum, j’espère exposer mon problème au bon endroit.

Avec une carte UNO , je commande trois ecletrovannes et un appareil photo pour faire des photos de collision de gouttes d'eau.
Mon programme consiste a ouvrir et fermer les electrovannes, soit simultanement ou avec un delais plus ou moins important entre chaque ouverture.
Le temps d'ouverture d'une vanne est de l'ordre de 15 millisecondes.
le scenarion classique:
a T0 ouverture V1 150ms
a T0 + 500ms ( T1) V2 150ms
a T0 + 1000ms (T2) V3 150ms
a T0 + 2000ms (T3) APN 180ms

J'ai besoin de faire varier T1, T2 et T3
Le probleme
Quand T1 < 200 ms les vannes V1 et V2 se déclenchent simultanément
De plus le systeme n'est pas stable, il est répétable un fois sur deux, quelque soit le nombre de vannes sollicitées.

Au niveau programmation, j'envoi a l' ARDUINO une sequence de commande Vanne,Delais
ex: V1,0:V2,T1:V3,T3:APN,T4
V1 est sur la pine 8 , V2 pine 9 , V3 pine 10 , APN pine 11 ( pine 0,1,2,3 du port B)

J'ai besoin d'une précision au dixième de milliseconde.
Je n'utilise pas la fonction delay(), a partir d'un T0 je compte les microsecondes
Je boucle sur toutes commandes V,T
et je déclenche les vannes quand leur T est supérieur ou égal au compteur.

Comme l'ouverture et fermeture des vannes peuvent être simultanées, j'initialise directement le port B avec les états des vannes.

Apparemment le PORTB ne commute pas assez vite quant l'ouverture de deux vannes se fait dans un delais "rapide"

En esperant que mes explications soient assez claires
je n'arrive pas a savoir si les problemes proviennent du programme, de la carte UNO ou de l'interface de commande des vannes
problemes de repetabilite et de commutation du portB
robert.