Bonjour à tous,
J'ai programmé un 16F876 en C pour piloter en PWM 1 LED RVB dans le but de faire un simulateur d'aube à intégrer dans mon radio-réveil.
Cela marche plutôt bien j'ai même compensé la sensibilité non linéaire de l'œil (qui est logarithmique) par une commande exponentielle.
Je vous joins un tableau de 255 valeurs pour ceux que ca intéressent... Le résultat visuel est très bon...
... mais pas parfait ! Car l'évolution dans les premières valeurs 1 2 3...10 et+ font faire des sauts d'intensité (échelons) lumineuse assez importantes, (ca manque d'antialiasing!!).Code:const unsigned char table_rouge[] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,6,6,6,6,6,6,7,7,7,7,7,7,8,8,8,8,9,9,9,9,9,10,10,10,10,11,11,11,12,12,12,12,13,13,13,14,14,14,15,15,15,16,16,17,17,17,18,18,19,19,20,20,20,21,21,22,22,23,23,24,25,25,26,26,27,28,28,29,30,30,31,32,32,33,34,35,35,36,37,38,39,40,41,42,43,43,44,45,47,48,49,50,51,52,53,54,56,57,58,59,61,62,64,65,66,68,70,71,73,74,76,78,79,81,83,85,87,89,91,93,95,97,99,101,104,106,108,111,113,116,118,121,123,126,129,132,135,138,141,144,147,151,154,157,161,164,168,172,176,179,183,187,192,196,200,205,209,214,219,223,228,233,239,244,249,255};
Ok, c'est la résolution de mon PWM qui est faiblard...
J'ai donc augmenté mes paliers jusqu'à avoir 1000 paliers (et augmenté la fréquence du quartz de 4 à 20Mhz pour éviter les scintillements !!
En pratique c'est encore nettement visible ! Pourtant j'ai un rapport cyclique de fous confirmés à l'oscilloscope:
Puissance 1/1000: 13µS d'allumé pour 10ms.
Puissance 2/1000: 25µS d'allumé pour 10ms.
...
Y a t'il un moyen de corriger ce problème (modéré) sans pour autant utiliser un PIII @ 2Ghz ?
Le pic attaque bêtement un FEET IRF44n qui attaque (tout aussi bêtement) 1 led en série avec une résistance.
Merci pour votre aide !
Matthieu
-----