Je viens de faire essai. Le nombre de 50 paliers de lumière semble suffisant. L'augmentation du nombre de mesures est bien LA solution. Avec 50 mesures et 1 mesure par seconde, la variation est beaucoup plus douce.
Voici le code:
Alors ?Code:; dimmerauto start0: #picaxe 08M2 #no_data ; noms variables et ports symbol led =C.2 symbol LDR =C.4 symbol lum =b1 symbol lect =b2 symbol cpt =b3 symbol cpt2 =b4 symbol somme =w12 symbol rapcycl =w13 ; initialisation lum=49 ;50 valeurs de 0 à 49 max = 49 allumage max au depart pwmout pwmdiv4, led, 255, rapcycl ;pwm env 1000hz 100% rapcycl=1023 ; boucle pricipale do lookup lum,(10,14,16,20,24,26,28,30,33,36,39,42,45,50,55,60,65,70,75,80,90,110,110,125,140,155,170,185,200,220,240,260,280,300,330,360,400,450,500,550,600,650,700,750,800,850,900,950,1000,1023),rapcycl pwmduty led, rapcycl ;reglage lumiere loop start1: ;lecture de la lumiere ambiante par moyenne glissante sur 50 mesures en 50 s do for cpt=30 to 79 ;boucle sur 50 valeurs pause 1000 ;1 mesure toutes les secondes readadc LDR, lect ;lecture valeur (ADC7) bptr=cpt ;indexe tableau circulaire de 0 a 49, memorisation en ram 30 a 79 @bptr=lect ;copie valeur lue dans tableau somme=0 ;RAZ somme for cpt2=30 to 79 ;un autre compteur circulaire de 0 a 49 bptr=cpt2 ;indexe tableau somme=somme+@bptr ;somme des valeurs tableau, max=255 x 10 = 2550 next lum=somme/255 ;moyenne sur 30 mesures et 50 paliers: 255*30 =7650 = 50 x 153 next ;moyenne sur 50 mesures et 50 paliers 255* 50= 12750 =50 * 255 loop
MM
-----