Pardon, j'avais pas vu que tu avais changé le type de pwm2 en byte. Pour que ces codes puissent marcher, il faut le laisser en int (avec byte, si tu obtiens un résultat "négatif", ça ajoute automatiquement 256 pour revenir en positif).
Du coup, il faut de nouveau déclarer pwm2 en byte.
Une autre solution serait de gérer le cas de la nuit à part :
if(TimeMins < Sunrise - margeAube || timeMins > Sunset + margeCrepuscule){ //il fait nuit pwm2 = 0; } else { //il fait jour if(TimeMins < heureMidi ){ pwm2 = map ( time, Sunrise - margeAube, heureMidi, 0, 255); } else { pwm2 = map ( time, heureMidi, Sunset + margeCrepuscule, 255, 0); } analogWrite(5,pwm2);// PIN 5 timer 8 bits
A noter que dans cette dernière solution, pwm2 peut être indiférament int ou byte