byte x=0; unsigned long tempsPresentDEL3 = 0; unsigned long tempsPresentDEL5 = 0; /* * le & après le unsigned long indique que l'argument tempsPresent * est passé par référence. Si tempsPresent est modifié dans la fonction, * la variable passée en argument sera modifiée */ void monteeEclairage(byte numeroBroche,int interval, unsigned long& tempsPresent) { if(millis()>=tempsPresent+interval){ tempsPresent= tempsPresent+interval; analogWrite(numeroBroche,x); x=x+1; } } void setup(){ pinMode(3,OUTPUT); pinMode(5,OUTPUT); } void loop(){ monteeEclairage(3, 100, tempsPresentDEL3); monteeEclairage(5, 200, tempsPresentDEL5); }