Table des matières:
Vidéo: Pas de lampe bleue : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:06
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
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
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
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
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é:
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur ! : 6 étapes
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur ! : Dans ce rapide Instructable, nous allons faire un simple contrôleur de moteur pas à pas à l'aide d'un moteur pas à pas. Ce projet ne nécessite aucun circuit complexe ni microcontrôleur. Alors sans plus tarder, commençons
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur (V2) : 9 étapes (avec photos)
Moteur pas à pas contrôlé par moteur pas à pas sans microcontrôleur (V2) : Dans l'un de mes précédents Instructables, je vous ai montré comment contrôler un moteur pas à pas à l'aide d'un moteur pas à pas sans microcontrôleur. C'était un projet rapide et amusant, mais il est venu avec deux problèmes qui seront résolus dans ce Instructable. Alors, esprit
Locomotive modèle commandée par moteur pas à pas - Moteur pas à pas en tant qu'encodeur rotatif : 11 étapes (avec photos)
Locomotive modèle commandée par moteur pas à pas | Moteur pas à pas en tant qu'encodeur rotatif : Dans l'un des précédents Instructables, nous avons appris à utiliser un moteur pas à pas comme encodeur rotatif. Dans ce projet, nous allons maintenant utiliser cet encodeur rotatif à moteur pas à pas pour contrôler un modèle de locomotive à l'aide d'un microcontrôleur Arduino. Alors, sans fu
Moteur pas à pas contrôlé par moteur pas à pas - Moteur pas à pas en tant qu'encodeur rotatif : 11 étapes (avec photos)
Moteur pas à pas contrôlé par moteur pas à pas | Moteur pas à pas en tant qu'encodeur rotatif : Vous avez quelques moteurs pas à pas qui traînent et vous voulez faire quelque chose ? Dans ce Instructable, utilisons un moteur pas à pas comme encodeur rotatif pour contrôler la position d'un autre moteur pas à pas à l'aide d'un microcontrôleur Arduino. Alors sans plus tarder, allons-y
Refroidisseur / support pour ordinateur portable à coût zéro (pas de colle, pas de perçage, pas d'écrous et de boulons, pas de vis): 3 étapes
Refroidisseur / support pour ordinateur portable à coût zéro (pas de colle, pas de perçage, pas d'écrous et de boulons, pas de vis) : MISE À JOUR : VEUILLEZ VOTEZ POUR MON INSTRUCTIBLE, MERCI ^_^ VOUS POUVEZ AUSSI AIMER VOTER POUR MON AUTRE CONCOURS ENTRÉE SUR www.instructables.com/id/Zero-Cost-Aluminum-Furnace-No-Propane-No-Glue-/ OU PEUT-ÊTRE VOTER POUR MON MEILLEUR AMI