Effectivement, ce serait pas mal. Comme un effet "mémoire" du dernier réglage de l'intensité avant une coupure de courant.
Pourquoi garder les conditions précédentes, si elles ont changé ?
Bon ben voilà un truc vite fait à coups de copier coller, à essayer:
On fait une mesure de luminosité et on charge les mémoires de la moyenne glissante avec cette valeur pour une initialisation rapide. Ensuite, viennent les "mises à jour".
MMCode:#picaxe 08M2 #no_data ; noms variables et ports symbol led =C.2 symbol LDR =C.4 symbol lum =w11 symbol lect =b2 symbol cpt =b3 symbol cpt2 =b4 symbol somme =w12 symbol rapcycl =w13 ; initialisation pwmout pwmdiv4, led, 255, 1023 ;pwm env 1000hz 100% rapcycl=1023 ;lecture de la lumiere ambiante par moyenne glissante sur 50 mesures en 50 s readadc LDR, lect ;lecture valeur ADC lum=lect *50 /255 ;moyenne lecture sur 50 valeurs 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 for cpt=30 to 79 ;init mémmoires RAM bptr=cpt @bptr=lect next do ; boucle pricipale for cpt=30 to 79 ;boucle sur 50 valeurs pause 1000 ;1 mesure toutes les secondes readadc LDR, lect ;lecture valeur ADC 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 50 mesures et 50 paliers: 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 next loop
Dernière modification par mag1 ; 23/01/2019 à 22h25.
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Bonjour,
Elle sera où cette LDR ? Le cordon fait quand même plus de 40cm.... on verra aux essais.
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Pour l'instant, j'ai laissé toute la longueur de fil disponible. Dès que tout sera au point, je raccourcirai juste ce qu'il faut, soit une 20aine de cms.
Je n'ai pas encore arrêté le positionnement. Éloigné de la luminosité du compteur et du phare pour que ça n'intefère pas dans le fonctionnement.
Si je ne m'égare pas, dans le code actuel les valeurs de 10 à 1023 utilisent de 0 à 100% de la plage de mesure de la LDR !?!
Pour la valeur de départ à 10, j'ai essayé dans le noir et le niveau de luminosité est bien, ni trop faible, ni trop forte.
Par contre pour la valeur max, soit 1023, est-il possible de l'utiliser à, par exemple, 50% de la plage de mesure de la LDR (ou plus ou moins)?
En fait ce serait dans le but de pouvoir obtenir l'éclairage max sans être en pleine luminosité
Bonjour,Pour l'instant, j'ai laissé toute la longueur de fil disponible. Dès que tout sera au point, je raccourcirai juste ce qu'il faut, soit une 20aine de cms.
Je n'ai pas encore arrêté le positionnement. Éloigné de la luminosité du compteur et du phare pour que ça n'intefère pas dans le fonctionnement.
Si je ne m'égare pas, dans le code actuel les valeurs de 10 à 1023 utilisent de 0 à 100% de la plage de mesure de la LDR !?!
Pour la valeur de départ à 10, j'ai essayé dans le noir et le niveau de luminosité est bien, ni trop faible, ni trop forte.
Par contre pour la valeur max, soit 1023, est-il possible de l'utiliser à, par exemple, 50% de la plage de mesure de la LDR (ou plus ou moins)?
En fait ce serait dans le but de pouvoir obtenir l'éclairage max sans être en pleine luminosité
0 correspond à 0% il n'y a pas d’éclairage, 1023 correspond à 100%, le max.
Donc avec 10, on voit que les leds éclairent déjà, ce n'est pas du tout linéaire.
L’intérêt justement est de pouvoir moduler la courbe à sa convenance.
La liste des valeurs du lookup est tout à fait au pif
N'hésite pas à faire des essais pour trouver ce qui te convient. En dilatant la partie qui t'intéresse.
La moyenne se fait sur 50 valeurs de 0 à 255, on y met ce qu'on veut.
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Si je comprends bien ce que tu m'expliques, avec par exemple 20 valeurs, ça peut donner ce résultat?
10,20,30,40,50,60,80,100,200,4 00,700,1023,1023,1023,1023,102 3,1023,1023,1023,1023
Oui, on peut faire ça, mais c'est dommage, sur 20 valeurs, il n'y en a la moitié bloquée à 1023, d'où une perte de définition.
Résumé:
La valeur d'éclairement lue par l'ADC est transformée en un nombre de 0 à 255 (pour info, la commande readadc10 transforme cette valeur lue en un nombre de 0 à 1023).
On fait la moyenne glissante sur 20 ou 50 valeurs.
En fonction du résultat, on choisit un RC dans la liste du lookup.
Si en fait, on décide que les valeurs au dessus de 150 donneront l'éclairage max 100% (donc 1023), on n'est pas obligé de passer par le lookup, on teste, et au dessus de 150, on fixe le RC à 100%.
Les valeurs au dessous de 150, (et plus 250) peuvent alors occuper les 20 (ou 50) valeurs du lookup avec un pas plus fin pour des transitions encore moins visibles.
A méditer
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
les 20 valeurs, c'était juste pour exemple. Pour le reste, je vais tester
Une vidéo pour que tu vois ce que ça donne pour l'instant https://www.dailymotion.com/video/x71bmzv
Bonsoir,les 20 valeurs, c'était juste pour exemple. Pour le reste, je vais tester
Une vidéo pour que tu vois ce que ça donne pour l'instant https://www.dailymotion.com/video/x71bmzv
Merci, mais le principal est de savoir ce qui te convient.
il faut établir la correspondance souhaitée entre l'éclairage extérieur et l'éclairage des leds, après, c'est facile.
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Certes, mais la moindre des choses est de montrer le résultat de ce à quoi tu participes. Enfin, c'est ma façon de voir les choses.
Au tout début, j'avais fait un relevé de mesures avec la LDR, pour voir à partir de quel niveau de luminosité extérieure je pouvais avoir une luminosité des leds au maximum.
Je suppose que mettre en relation cette mesure en ohm ne se fait pas juste avec une simple règle de trois!
Bonjour,Certes, mais la moindre des choses est de montrer le résultat de ce à quoi tu participes. Enfin, c'est ma façon de voir les choses.
Au tout début, j'avais fait un relevé de mesures avec la LDR, pour voir à partir de quel niveau de luminosité extérieure je pouvais avoir une luminosité des leds au maximum.
Je suppose que mettre en relation cette mesure en ohm ne se fait pas juste avec une simple règle de trois!
Oui, en gros:
La valeur de résistance donnera une valeur de la tension sur l'entrée de l'ADC du µC, qui donnera une valeur entre 0 et 255
MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...
Bonjour,Si en fait, on décide que les valeurs au dessus de 150 donneront l'éclairage max 100% (donc 1023), on n'est pas obligé de passer par le lookup, on teste, et au dessus de 150, on fixe le RC à 100%.
Les valeurs au dessous de 150, (et plus 250) peuvent alors occuper les 20 (ou 50) valeurs du lookup avec un pas plus fin pour des transitions encore moins visibles.
Je cherche toujours mais n'ayant pas ta pratique, j'avoue ne pas y arriver.
Aprés la lecture de la LDR, ligne 15, c'est à ce moment là qu'il faut fixer une valeur pour le RC à 100%?
Tu dis que l'on ne passe plus par le lookup, mais on doit quand même le garder dans la boucle principale pour la variation quand on est en dessous de la valeur max du RC ?!?
Bonjour,Bonjour,
Je cherche toujours mais n'ayant pas ta pratique, j'avoue ne pas y arriver.
Aprés la lecture de la LDR, ligne 15, c'est à ce moment là qu'il faut fixer une valeur pour le RC à 100%?
Tu dis que l'on ne passe plus par le lookup, mais on doit quand même le garder dans la boucle principale pour la variation quand on est en dessous de la valeur max du RC ?!?
C'est pourtant tout à fait çà.
Après le calcul de la moyenne glissante, on fait un test, pour les valeurs au dessus de 150 (par ex), on fixe le RC à 100% (1023).
Pour les valeurs en dessous, on les étale dans les valeurs du look up, la dernière étant 1023 pour le raccordement et on aura une meilleur progressivité.
A+ MM
Si il y a des erreurs ci dessus, c'est que je n'ai pas eu le temps de les corriger...