Table des matières:
Vidéo: Calibrage de la luminosité des LED : 5 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:08
Pendant que je faisais une guirlande lumineuse, j'ai réalisé que la valeur PWM n'est pas linéairement proportionnelle à la luminosité de la LED. En termes simples, si la valeur PWM est double, la luminosité n'est pas double; surtout lorsque PWM est proche du maximum, aucun changement n'est reconnaissable à mes yeux. J'ai pensé qu'il s'agissait d'un simple problème d'étalonnage ! et c'est ainsi que j'ai réalisé ce projet ! L'idée est de mesurer la luminosité d'une LED avec un appareil (capteur de luminosité ou photorésistance) et de trouver une corrélation entre la valeur PWM et la luminosité. Plus tard, si je règle la luminosité sur 50%, Arduino calculera le PWM correspondant et atténuera la LED en conséquence.
Par conséquent, j'ai besoin d'un capteur de luminosité et d'une LED pour mesurer la luminosité. En utilisant une carte SD, je vais enregistrer les données pour une procédure d'ajustement ultérieure. L'essayage se fera sous Excel (ou tout autre programme). La sortie sera utilisée dans le code Arduino, et c'est tout ! Cela devrait être fait une fois. Ensuite, vous pouvez utiliser le paramètre d'étalonnage pour toujours !
Étape 1: Pièces
1- WEMOS mini D1: Aliexpress 3€
2- TSL 2561 (Capteur de luminosité): Aliexpress 3€
3- Module carte SD: Aliexpress 1€
4- DEL
5- Résistance 220 ohm
6- fils
coût total: 8 -10 €
Étape 2: Câblage
Les fils du module de carte SD et du capteur de luminosité ne doivent pas être changés (la plupart d'entre eux). La LED doit être connectée à une broche PWM.
Étape 3: Coder
J'ai combiné trois morceaux de codes:
Carte SD: exemple utilisé >SD > ReadWrite dans Arduino IDE
TSL 2561: exemple utilisé de la bibliothèque Adafruit TSL2561 (sensorapi); vous le trouverez dans des exemples, si vous installez la bibliothèque (je suppose que vous savez comment installer une bibliothèque dans Arduino IDE).
LED fading: exemples utilisés > Analogique > fading
Le code, après avoir initialisé les modules, assombrira la led et lira la luminosité et l'enregistrera dans la carte SD. de cette façon, je vais collecter des données pour l'étalonnage.
J'ai modifié chacun des codes en fonction de mes besoins. le code final joint.
Le signal doit ressembler à l'image ci-jointe. Malheureusement j'ai oublié de prendre une photo donc je l'ai retracée dans excel pour vous montrer comment ça devrait être.
REMARQUE: j'utilise wemo mini D1 au lieu d'Arduino. pour une raison que je ne connais pas, le PWM est compris entre 0 et 1023. Dans Arduino, il devrait être compris entre 0 et 255. Si vous souhaitez utiliser le code pour arduino, vous devez vous en occuper (ligne 90).
Étape 4: montage et utilisation
après avoir collecté les données, j'ai ouvert le fichier dans Excel et tracé les données (regardez l'image). la première colonne est la valeur PWM et la seconde est le lux (lecture du capteur, l'unité importe peu). Par conséquent, tracez lux (axe des y) par rapport à PWM (axe des x). Comme vous pouvez le voir, la luminosité est linéairement proportionnelle à la valeur PWM. J'y ai mis une ligne.
Pour ajuster une ligne, procédez comme suit:
1- tracer les données (insérer> nuage de points), je suppose que vous savez comment.
2- clic droit sur les données tracées
3- cliquez sur la ligne de tendance.
4- (dans excel 2013) sur le côté droit un panneau apparaît. Choisissez linéaire. En bas, choisissez "afficher l'équation sur le graphique".
La relation linéaire est différente de ma perception. Par conséquent, je pense qu'il devrait y avoir une relation logarithmique entre ma perception et la luminosité (c'est le moyen le plus simple qui m'est venu à l'esprit !). J'ai donc pris la pente de l'ajustement. L'interception n'est pas importante, car elle dépend de la pollution lumineuse environnante ! à la place, j'ai ajouté 1. Parce que Log10(0) est infini. J'ai donc besoin d'une interception pour résoudre le problème. Dans mon cas, l'équation ressemble à ceci:
y = Log10 (0,08 x +1), y est la luminosité et x est la valeur PWM (0-1023)
J'ai normalisé l'équation à la valeur maximale. alors la sortie sonnée est toujours comprise entre 0 et 100. de cette façon, je peux demander à l'arduino une certaine luminosité relative, sans se soucier de la luminosité absolue maximale.
y =Log10 (0,08 x +1)*100/1,914
Parce que dans arduino, mon entrée est la luminosité relative, je dois réorganiser l'équation pour x (PWM):
x = (10^(y*1,914/100) - 1) / 0,08
en utilisant cette équation dans le code, nous pouvons obtenir un changement de luminosité linéaire. Vous demandez donc à arduino une luminosité (y) comprise entre 0 et 100, et arduino calcule la valeur PWM correspondante. de cette façon, si la luminosité est double, votre perception est également la même.
si vous souhaitez l'utiliser dans votre code, vous feriez mieux d'ajouter ces lignes:
luminosité=50; // en pourcentage
PWM = puissance (10, luminosité * 1,914/100)-1)/0,0793;
analogWrite (ledpin, PWM);
REMARQUE: la normalisation se fait pour un PWM maximum de 1023 (pour Wemos mini D1). Pour Arduino, le PWM est compris entre 0 et 255. vous devez le calculer en conséquence.
NOTE2: J'ai ajouté un graphique log-linéaire pour montrer comment notre perception et notre valeur PWM sont liées. vous ne devriez pas l'utiliser pour le montage!
Étape 5: Conclusion
l'étalonnage fonctionne bien pour moi. Lorsque les valeurs PWM sont grandes, je peux voir la différence. Avant, comme les grandes valeurs, je ne pouvais pas voir l'effet de la gradation. Fondamentalement, la plupart des changements ont été effectués dans une petite gamme de PWM. maintenant il est calibré !
chaque LED, spécialement de couleurs différentes, doit avoir ses propres paramètres d'étalonnage. Cependant, j'ai calibré une LED bleue et utilisé le paramètre pour une LED blanche et le résultat était acceptable. alors peut-être pouvez-vous utiliser mon paramètre d'étalonnage sans vous déranger !!
Conseillé:
Contrôle de la luminosité des LED avec potentiomètre avec Arduino : 3 étapes
Contrôle de la luminosité des LED avec potentiomètre avec Arduino : Dans ce projet, nous contrôlerons la luminosité des LED à l'aide de la résistance variable fournie par le potentiomètre. Il s'agit d'un projet très basique pour un débutant, mais il vous apprendra beaucoup de choses sur le fonctionnement des potentiomètres et des LED qui sont nécessaires pour faire de l'adva
Contrôle de la luminosité des LED par Raspberry Pi et page Web personnalisée : 5 étapes
Contrôle de la luminosité de la LED par Raspberry Pi et page Web personnalisée : en utilisant un serveur Apache sur mon pi avec php, j'ai trouvé un moyen de contrôler la luminosité d'une LED à l'aide d'un curseur avec une page Web personnalisée accessible sur n'importe quel appareil connecté au même réseau que votre pi .Il y a beaucoup de façons dont cela peut être ac
Contrôle de la luminosité des LED avec un potentiomètre et un écran OLED : 6 étapes
Contrôler la luminosité des LED avec un potentiomètre et un écran OLED : Dans ce tutoriel, nous allons apprendre à contrôler la luminosité des LED avec un potentiomètre et afficher la valeur sur l'écran OLED.Regarder une vidéo de démonstration
Contrôler la luminosité des LED avec un potentiomètre et un Arduino : 6 étapes
Contrôler la luminosité des LED avec un potentiomètre et Arduino : Dans ce tutoriel, nous allons apprendre à contrôler la luminosité des LED avec un potentiomètre et Arduino.Regardez une vidéo de démonstration
Ajuster la luminosité des LED à l'aide du potentiomètre : 4 étapes
Ajuster la luminosité de la LED à l'aide d'un potentiomètre : dans l'article précédent, je vous ai montré comment lire la valeur ADC à partir d'un potentiomètre à l'aide d'Arduino. Et cette fois, je vais profiter de la lecture de la valeur ADC. C'est ajuster la luminosité de la LED