Table des matières:

Pas de lampe bleue : 4 étapes
Pas de lampe bleue : 4 étapes

Vidéo: Pas de lampe bleue : 4 étapes

Vidéo: Pas de lampe bleue : 4 étapes
Vidéo: Lumière [1/4] THÉORIE & MATÉRIEL - RVB 2024, Novembre
Anonim
Pas de lampe bleue
Pas de lampe bleue
Pas de lampe bleue
Pas de lampe bleue
Pas de lampe bleue
Pas de lampe bleue
Pas de lampe bleue
Pas de lampe bleue

Donc ce Lazy Old Geek (L. O. G.) a travaillé sur un Blue Light Project:

www.instructables.com/id/Blue-Light-Projec…

www.instructables.com/id/Blue-Light-Projec…

Eh bien, pour l'étape suivante, je voulais une lampe qui serait lumineuse pendant la journée et n'aurait pas de lumière bleue le soir/nuit.

Matériel de conception:

J'ai décidé d'utiliser un RTC (Real Time Clock) pour contrôler les heures de changement de lumière.

J'ai choisi le DS3231 car il a une meilleure précision de chronométrage que le DS1307. Le DS3231 peut être 5v ou 3,3v.

Pour la lumière, j'utiliserai une chaîne LED WS2812B. Ceux-ci ont une interface simple à trois fils et des LED rouges, vertes et bleues contrôlables. Les WS2812B sont des appareils 5v.

Pour le microcontrôleur, j'utiliserai un Pro Micro, 5v 16MHz.

Alors que le WS2812B fonctionnera probablement avec 3,3 V, il est préférable d'utiliser un Arduino 5 V.

Le Pro Micro est un Arduino bon marché utilisant un microcontrôleur Atmega32U4.

La lampe aura un interrupteur marche/arrêt pour allumer ou éteindre la lampe.

Il y aura un potentiomètre pour contrôler la luminosité.

Logiciel de conception:

Le DS3231 RTC contrôlerait la synchronisation, il dispose d'une batterie de secours et devrait donc conserver l'heure même en cas de panne de courant.

Pendant la journée, toutes les LED RVB seraient allumées, contrôlables par le pot jusqu'à pleine intensité.

En début de soirée, les LED Bleues seront éteintes, Rouge et Verte allumées max.

Au fur et à mesure que la soirée avance, les LED rouges et vertes s'atténuent, avec une préférence pour le rouge par rapport au vert (mes tests dans la partie 2 suggèrent que les LED vertes contiennent du bleu).

Après environ 22h. toutes les LED seront éteintes.

PROBLÈME:

De retour au module DS3231 RTC, j'ai acheté le mien chez Aliexpress comme je l'ai fait pour les autres composants.

Ceux-ci sont censés fonctionner avec et charger une batterie rechargeable LIR2032. Je l'ai essayé. Après environ une journée, la batterie était morte.

Après quelques recherches sur Internet, j'ai trouvé cet article.

www.onetransistor.eu/2019/07/zs042-ds3231-…

Je suis d'accord avec cette analyse mais je pensais que le LIR2032 se chargerait de manière adéquate mais pas excessivement. J'avais apparemment tort. Mon DS3231 bien qu'également marqué comme ZS-042 comme dans l'article était légèrement différent du sien mais presque le même. J'ai donc dessoudé la diode vue sur la photo et installé une pile CR2032. Sans la diode, le module n'essaiera pas de charger la batterie. Désormais, le DS3231 conserve l'heure correcte même lorsque l'alimentation est déconnectée et la batterie devrait fonctionner pendant de nombreuses années.

Puissance requise:

Le WS2812B est une chaîne de LED RVB appelées parfois NeoPixels. Chaque NeoPixel nécessite un maximum de 60mA. J'utilise 12 Neo Pixels, j'ai donc besoin de 0,72A. J'utilise un adaptateur USB 2A donc j'ai beaucoup de courant.

Étape 1: PCB BlueLamp

Carte PCB BlueLamp
Carte PCB BlueLamp
Carte PCB BlueLamp
Carte PCB BlueLamp

Comme je le fais habituellement, j'ai utilisé le logiciel gratuit Eagle Cadsoft (maintenant Autodesk) pour mettre en page et créer mon PCB.

www.autodesk.com/products/eagle/free-downl…

Le schéma Eagle et les fichiers de carte sont joints avec le schéma dans une image.

Un commentaire sur le schéma, la résistance de 330 ohms et le condensateur de 10 000 uFd sont des recommandations du guide néopixel d'Adafruit:

learn.adafruit.com/adafruit-neopixel-uberg…

Le bouton à bascule que j'ai utilisé « interrupteur à bouton-poussoir de la torche » était d'ici:

www.aliexpress.com/item/32904942704.html?s…

Le potentiomètre 10K (B103) d'ici:

www.aliexpress.com/item/32672253655.html?s…

Étape 2: Assemblage de la lampe

Assemblage de la lampe
Assemblage de la lampe
Assemblage de la lampe
Assemblage de la lampe

Il m'est arrivé d'avoir une base lourde d'une lampe que j'ai achetée. Il y avait une grosse épingle ronde dessus. J'ai pris un morceau de tuyau en PVC qui s'emboîtait dessus. C'était un peu lâche alors j'ai pris un boulon et quelques écrous pour pouvoir le serrer. (voir l'image)

Le WS2812B peut être découpé en le nombre de NeoPixels que vous désirez. La bande que j'ai achetée a de grands espaces entre les NeoPixels. Je voulais qu'il soit un peu plus lumineux alors j'ai coupé deux bandes de 6 NeoPixel et les ai passées en parallèle légèrement décalées. Les bandes WS2812B peuvent être coupées entre les NeoPixels. Dans ce cas, j'avais besoin d'un changement à 180 degrés, j'ai donc coupé la bande et fait passer des fils de liaison entre les deux. Si jamais vous faites cela, assurez-vous que les signaux et les flèches de direction sont corrects. (voir photo)

Ce WS2812B a également des fils et un connecteur (ce connecteur est un connecteur JST-SM 3 broches si vous souhaitez l'utiliser ailleurs). Comme ce connecteur était déjà là, j'ai juste soudé les fils à mon PCB. Pour ce WS2812B, le fil rouge est de 5 V, le vert est le signal et le blanc est la masse.

Une fois que j'ai fait le PCB, j'ai mis du ruban adhésif sur le fond et je l'ai collé à la base. Ensuite, j'ai branché le Pro Micro et le DS3231.

Étape 3: Esquisse Arduino

Esquisse Arduino
Esquisse Arduino

Bien que j'aie acheté mon Pro Micro sur Aliexpress.com, j'ai utilisé les informations suivantes pour faire fonctionner Arduino:

learn.sparkfun.com/tutorials/pro-micro--fi…

Pour installer la librairie du DS3231, j'utilise celle-ci:

github.com/PaulStoffregen/DS1307RTC

Télécharger le fichier zip

Ouvrez Arduino, sélectionnez « Sketch » « Inclure la bibliothèque » « Ajouter une bibliothèque.zip »

Installez ce qui suit en utilisant la même méthode

Bibliothèque du temps PaulStoffregen

github.com/PaulStoffregen/Time

Bibliothèque de fuseaux horaires

github.com/JChristensen/Timezone

Une fois terminé, démarrez Arduino.

Sous Tableaux d'outils, sélectionnez « Sparkfun Pro Micro »

Cliquez à nouveau sur Outils, il y aura une sélection pour le processeur

Vous devrez peut-être le changer "Atmega32U4 (5V 16Mhz)"

ATTENTION: Si vous êtes insouciant comme moi, j'ai sélectionné par erreur « Atmega32U4 (3.3V 8Mhz) ». Cela l'a "briqué" pour que l'Arduino ne puisse pas le voir. Eh bien, j'essaie généralement de lire de nouvelles choses avant de les avoir et de me souvenir de quelque chose à propos de ce qui s'est passé:

learn.sparkfun.com/tutorials/pro-micro--fi…

Dans ce guide, il y a une section intitulée "Comment faire revivre un Pro Micro 'briqué'" Comme il le mentionne, c'est une procédure délicate mais j'ai réussi à récupérer le mien.

Pour info: Si vous vous demandez pourquoi il existe deux versions avec des tensions et des vitesses différentes, l'Atmega32U4 (identique à l'Atmega328) fonctionnera bien à 5V avec une horloge de 16MHz. Mais à 3,3 V, la spécification de conception indique que l'horloge à 16 MHz ne fonctionnera pas, c'est pourquoi ils ont l'horloge à 8 MHz. En règle générale, le logiciel Arduino s'occupera de tous les problèmes de synchronisation.

ASTUCE RTC: La plupart des logiciels écrits pour le DS1307 fonctionneront avec le DS3231 car ils ont un logiciel très similaire.

Heure d'été

Eh bien, je voulais implémenter l'heure d'été, donc je n'ai pas eu à reprogrammer ma lampe deux fois par an. J'ai travaillé dessus pendant plusieurs jours. Je n'ai pas pu trouver de bonnes explications simples sur le fonctionnement de Time, TimeLib et RTClib.

En fait, j'ai écrit du code DST pour mon IPClock:

www.instructables.com/id/NO-MORE-SPRING-FO…

cela a fonctionné pour le temps Internet mais je ne pouvais pas le faire fonctionner pour le temps RTC.

J'ai finalement rencontré ce qui suit par JChristensen:

forum.arduino.cc/index.php?topic=96891.0

github.com/JChristensen/Timezone

Pour l'utiliser, vous devez d'abord régler le RTC sur UTC (Coordinated Universal Time), c'est l'heure de Greenwich, en Angleterre. Eh bien, je ne savais pas comment faire mais j'ai trouvé cet article:

www.justavapor.com/archives/2482

Réécrit pour l'heure de la montagne (ci-joint) UTCtoRTC.ino

Ensuite, j'ai intégré le fuseau horaire dans mon Sketch. Pour être honnête, je ne l'ai pas testé, donc je suppose que cela fonctionne.

Mon croquis est attaché MTS_BlueLamp.ino.

Étape 4: Conclusion

Conclusion
Conclusion

J'ai fait un petit crochet en haut pour mon masque facial CPAP. Je l'accrochais à ma vieille lampe de chevet.

Fondamentalement très satisfait de cette lampe. Entièrement lumineux pendant la journée et pas de bleu le soir et la nuit.

Une chose que je n'aime pas, c'est que je ne peux pas l'utiliser après 22h. et avant 5h du matin

J'ai également constaté que je n'utilisais pas la bascule on/off car j'utilise habituellement simplement le gradateur.

À l'avenir, je pourrai réécrire l'esquisse et changer le bouton en commutateur programmé ou non programmé (plein marche). Mais avec mes faibles compétences en codage, je pourrais attendre un moment.

Conseillé: