Table des matières:

LEDura - Horloge LED analogique : 12 étapes (avec photos)
LEDura - Horloge LED analogique : 12 étapes (avec photos)

Vidéo: LEDura - Horloge LED analogique : 12 étapes (avec photos)

Vidéo: LEDura - Horloge LED analogique : 12 étapes (avec photos)
Vidéo: Tambour Horizon Light Up Connected Watch | LOUIS VUITTON 2024, Novembre
Anonim
LEDura - Horloge LED analogique
LEDura - Horloge LED analogique
LEDura - Horloge LED analogique
LEDura - Horloge LED analogique
LEDura - Horloge LED analogique
LEDura - Horloge LED analogique

Projets Tinkercad »

Après une longue période de réalisation de divers projets, j'ai décidé de créer moi-même un instructable. Pour le premier, je vais vous guider à travers le processus de fabrication de votre propre horloge analogique avec un superbe anneau LED adressable. La bague intérieure indique les heures, la bague extérieure indique les minutes et les secondes.

En plus d'afficher l'heure, l'horloge peut également afficher la température ambiante et peut constituer une très belle décoration dans la pièce. Toutes les 15 minutes, l'horloge produit également des effets spéciaux - la vidéo les montre tous, assurez-vous de le vérifier. À l'aide de 2 boutons et d'un potentiomètre, l'utilisateur peut choisir entre différents modes et modifier les couleurs à sa guise. Je l'ai également mis à niveau pour atténuer automatiquement les LED si la pièce s'assombrit, afin que l'utilisateur ne soit pas dérangé pendant la nuit.

L'horloge peut être placée sur le bureau, la table de lit ou accrochée au mur.

Remarque: les images ne sont pas aussi bonnes que la vue dans la réalité en raison de la luminosité élevée.

Étape 1: Comment le lire ?

Comment le lire ?
Comment le lire ?

L'horloge a 2 anneaux - un plus petit pour afficher les heures et un plus grand pour afficher les minutes et les secondes. Certaines LED brillent tout le temps - une boussole qui indique les positions principales de l'horloge. Sur la sonnerie des heures, il représente 3, 6, 9 et 12 heures, sur la sonnerie des minutes, il représente 15, 30, 45 et 0 minutes.

Étape 2: De quoi aurez-vous besoin

De quoi aurez-vous besoin
De quoi aurez-vous besoin

Matériaux:

  • 1x Arduino Nano (vous pouvez également utiliser n'importe quel autre Arduino)
  • 1x module DS3231 RealTimeClock
  • 1x anneau led adressable - 60 leds
  • 1x anneau led adressable - 24 leds
  • 2x boutons (NON - normalement ouverts)
  • 1x potentiomètre 100kOhm
  • 1x alimentation 5V (capable de délivrer 1 Amp)
  • 1x connecteur d'alimentation
  • Quelques fils
  • 1x résistance 10kOhm
  • 1x photorésistance

  • Prefboard (facultatif)
  • Connecteurs de fil de bornier (facultatif)
  • Bois de 25 mm d'épaisseur, taille d'au moins 22 cm x 22 cm
  • 1 mm d'épaisseur en plastique PVC mat taille 20cmx20xm

Outils:

  • Outillage de base pour l'électronique du bâtiment (fer à souder, pince, tournevis, …)
  • Perceuse
  • Pistolet à colle chaude
  • Du papier de verre et du vernis à bois
  • Machine CNC (peut-être qu'un ami l'a)

Étape 3: Composants électroniques - Contexte

Composants électroniques - Contexte
Composants électroniques - Contexte
Composants électroniques - Contexte
Composants électroniques - Contexte
Composants électroniques - Contexte
Composants électroniques - Contexte

DS3231

Nous avons pu déterminer l'heure à l'aide de l'oscillateur intégré Arduinos et d'une minuterie, mais j'ai décidé d'utiliser un module d'horloge en temps réel (RTC) dédié, qui peut suivre l'heure même si nous déconnectons l'horloge de sa source d'alimentation. La carte DS3231 a une batterie, qui fournit de l'énergie lorsque le module n'est pas connecté à l'alimentation. Il est également plus précis sur des périodes plus longues que la source d'horloge Arduinos.

DS3231 RTC utilise l'interface I2C pour communiquer avec le micro-contrôleur - très simple à utiliser et nous n'avons besoin que de 2 fils pour communiquer avec lui. Le module fournit également un capteur de température, qui sera utilisé dans ce projet.

Important: si vous prévoyez d'utiliser une batterie non rechargeable pour le module RTC, vous devez dessouder la résistance de 200 ohms ou la diode 1N4148. Sinon, votre batterie pourrait exploser. Plus d'informations peuvent être trouvées sur ce lien.

Anneau LED WS2812

J'ai décidé d'utiliser un anneau de 60 LED pour garder une trace des minutes et un anneau de 24 LED pendant des heures. Vous pouvez les trouver sur Adafruit (anneau neoPixel) ou certaines versions bon marché sur eBay, Aliexpress ou d'autres boutiques en ligne. Il existe une grande diversité parmi les bandes LED adressables et si c'est la première fois que vous jouez avec elles, je vous recommande de lire quelques descriptions d'utilisation - voici quelques liens utiles:

https://www.tweaking4all.com/hardware/arduino/adr…

https://randomnerdtutorials.com/guide-for-ws2812b…

La bande LED adressable a 3 connecteurs: 5V, GND et DI/DO. Les deux premiers sont pour alimenter les LED, le dernier est pour les données. Soyez prudent lors de la connexion de l'anneau à Arduino - votre ligne de données doit être connectée à la broche DI (data IN).

Arduino

J'utilise Arduino Nano car il est petit et suffisant pour ce projet. Vous pouvez utiliser presque n'importe quel autre Arduino, mais vous devez alors être prudent lorsque vous connectez tout à celui-ci. Les boutons et les anneaux LED peuvent être sur les mêmes broches, mais les connecteurs I2C (pour le module RTC) peuvent différer d'une plate-forme à l'autre - consultez leur fiche technique.

Étape 4: Électronique - Alimentation

Electronique - Alimentation
Electronique - Alimentation

L'Arduino et la bande LED doivent tous deux être alimentés par une source d'alimentation 5V afin que nous sachions quelle tension est nécessaire. Étant donné que la LED sonne, elle consomme beaucoup d'ampères, nous ne pouvons pas l'alimenter directement avec Arduino, qui peut supporter un maximum de 20 mA sur sa sortie numérique. D'après mes mesures, les anneaux LED peuvent tirer ensemble jusqu'à 500 mA. C'est pourquoi j'ai acheté un adaptateur capable de fournir jusqu'à 1A.

Avec la même alimentation, nous voulons alimenter l'Arduino et les LED - ici, vous devez être prudent.

Avertissement! Soyez très prudent lorsque vous testez la bande LED - l'adaptateur secteur ne doit PAS être connecté à Arduino, lorsque Arduino est également connecté à un PC avec un connecteur USB (vous pouvez endommager le port USB de votre ordinateur).

Remarque: dans les schémas ci-dessous, j'ai utilisé un commutateur normal pour sélectionner si Arduino est alimenté via une alimentation ou via un connecteur USB. Mais sur le perfboard, vous pouvez voir que j'ai ajouté un en-tête de broche pour sélectionner à partir de quelle source d'alimentation Arduino est alimenté.

Étape 5: Électronique - Soudure

Electronique - Soudure
Electronique - Soudure
Electronique - Soudure
Electronique - Soudure
Electronique - Soudure
Electronique - Soudure
Electronique - Soudure
Electronique - Soudure

Lorsque vous rassemblez toutes les pièces, il est temps de les souder ensemble.

Parce que je voulais rendre le câblage soigné, j'ai utilisé un panneau perforé et un connecteur de bornier pour les fils, afin que je puisse les débrancher en cas de modifications. Ceci est facultatif - vous pouvez également souder les fils directement à l'Arduino.

Un conseil: c'est plus facile si vous imprimez les schémas pour l'avoir devant vous pendant la soudure. Et vérifiez tout avant de vous connecter à l'alimentation.

Étape 6: Logiciel - Contexte

IDE Arduino

Nous allons programmer Arduino avec son logiciel dédié: Arduino IDE. Si vous jouez avec Arduino pour la première fois, je vous recommande de vérifier quelques instructables sur la façon de le faire. Il y a déjà plein de tutos sur le web, donc je n'entrerai pas dans les détails.

Une bibliothèque

J'ai décidé d'utiliser la bibliothèque FastLED au lieu du populaire Adafruit. Il a quelques fonctions mathématiques intéressantes avec lesquelles vous pouvez faire de superbes effets (Bravo aux développeurs !). Vous pouvez trouver la bibliothèque sur leur référentiel GitHub, mais j'ai ajouté le fichier.zip de la version que j'utilise dans mon code.

Si vous vous demandez comment ajouter une bibliothèque externe à Arduino IDE, vous pouvez vérifier certaines instructions déjà faites

Pour le module d'horloge, j'ai utilisé la bibliothèque Arduino pour l'horloge temps réel DS3231 (RTC) (lien), que vous pouvez facilement installer dans Arduino IDE. Lorsque vous êtes dans l'IDE, cliquez sur Sketch → Inclure la bibliothèque → Gérer les bibliothèques… puis filtrez votre recherche avec le nom ci-dessus.

Remarque: Pour une raison quelconque, je ne peux actuellement pas ajouter de fichiers.zip. Vous pouvez trouver la bibliothèque sur mon référentiel GitHub.

Étape 7: Logiciel - Code

Logiciel - Code
Logiciel - Code
Logiciel - Code
Logiciel - Code

Structure

L'application est construite avec 4 fichiers:

  • LEDclokc.ino Il s'agit de l'application principale d'Arduino, où vous pouvez trouver des fonctions pour contrôler toute l'horloge - elles commencent par le préfixe CLOCK_.
  • LEDclokc.h voici les définitions de connexion des broches et quelques configurations d'horloge.
  • ring.cpp et ring.h voici mon code pour contrôler les anneaux LED.

Horloge LED.h

Vous trouverez ici toutes les définitions d'horloge. Au début, il existe des définitions pour le câblage. Assurez-vous qu'ils sont les mêmes que vos connexions. Ensuite, il y a les configurations d'horloge - ici vous pouvez trouver la macro pour le nombre de modes que l'horloge a.

LEDclock.ino

Sur le schéma, la boucle principale est représentée. Le code vérifie d'abord si un bouton est enfoncé. En raison de la nature des commutateurs, nous devons utiliser la méthode de débouncing pour lire leurs valeurs (vous pouvez en savoir plus à ce sujet sur le lien).

Lorsque le bouton 1 est enfoncé, le mode variable est augmenté de 1, si le bouton 2 est enfoncé, le type de variable est augmenté. Nous utilisons ces variables pour déterminer quel mode d'horloge nous voulons voir. Si les deux boutons sont enfoncés en même temps, la fonction CLOCK_setTime() est appelée afin que vous puissiez changer l'heure de l'horloge.

Un code ultérieur lit la valeur du potentiomètre et la stocke dans une variable - avec cette variable, l'utilisateur peut modifier les couleurs de l'horloge, la luminosité, etc.

Ensuite, il y a une instruction switch-case. Ici, nous déterminons dans quel mode l'horloge est actuellement, et par ce mode, la fonction correspondante est appelée, qui configure les couleurs des LED. Vous pouvez ajouter vos propres modes d'horloge et réécrire ou modifier les fonctions.

Comme décrit dans la bibliothèque FastLED, vous devez appeler la fonction FastLED.show() à la fin, qui transforme les LED dans la couleur sur laquelle nous les avons précédemment configurées.

Vous pouvez trouver des descriptions beaucoup plus détaillées entre les lignes de code

Le code entier est joint ci-dessous dans les fichiers ci-dessous.

ASTUCE: vous pouvez trouver l'intégralité du projet sur mon référentiel GitHub. Ici, le code sera également mis à jour si j'y ajoute des modifications.

Étape 8: Créez l'horloge

Faire l'horloge
Faire l'horloge
Faire l'horloge
Faire l'horloge
Faire l'horloge
Faire l'horloge

Cadre d'horloge

J'ai construit le cadre de l'horloge à l'aide d'une machine CNC et de bois de 25 mm d'épaisseur. Vous pouvez trouver le croquis dessiné dans ProgeCAD ci-joint. Les fentes pour l'anneau LED sont un peu plus grandes, car les fabricants ne fournissent que les mesures du diamètre extérieur – l'intérieur peut varier beaucoup… Au fond de l'horloge, il y a beaucoup d'espace pour l'électronique et les fils.

Anneaux PVC

Parce que les LED sont assez lumineuses, il est bon de les diffuser d'une manière ou d'une autre. J'ai d'abord essayé avec du silicone transparent, qui fait le travail de diffusion, mais c'est assez salissant et il est difficile de le rendre lisse sur le dessus. C'est pourquoi j'ai commandé un morceau de plastique PVC "lait" de 20x20 cm et j'y ai coupé deux anneaux avec une machine CNC. Vous pouvez utiliser du papier de verre pour adoucir les bords afin que les anneaux glissent dans les fentes.

Trous latéraux

Ensuite, il est temps de percer les trous pour les boutons, le potentiomètre et le connecteur d'alimentation. Tout d'abord, dessinez chaque position avec un crayon, puis percez le trou. Ici, cela dépend du type de boutons que vous avez – j'ai opté pour des boutons poussoirs avec une tête légèrement incurvée. Ils ont 16 mm de diamètre, j'ai donc utilisé une perceuse à bois de cette taille. Idem pour le potentiomètre et le connecteur d'alimentation. Assurez-vous d'effacer tous les dessins au crayon par la suite.

Étape 9: Dessinez dans le bois

Dessiner dans le bois
Dessiner dans le bois
Dessiner dans le bois
Dessiner dans le bois
Dessiner dans le bois
Dessiner dans le bois

J'ai décidé de dessiner des indicateurs d'horloge dans le bois - ici, vous pouvez utiliser votre imagination et concevoir le vôtre. J'ai brûlé le bois à l'aide d'un fer à souder, chauffé à température maximale.

Pour que les cercles soient bien ronds, j'ai utilisé un morceau d'aluminium, j'y ai percé un trou et j'ai suivi les bords du trou avec du fer à souder (regardez la photo). Assurez-vous que vous tenez fermement l'aluminium pour qu'il ne glisse pas pendant le dessin. Et soyez prudent en le faisant pour éviter les blessures.

Si vous faites des dessins et que vous voulez qu'ils soient bien alignés sur les pixels de l'horloge, vous pouvez utiliser le « mode de maintenance » qui vous montrera où les pixels vont être situés (allez au chapitre Assembler).

Protéger le bois

Lorsque vous êtes satisfait de l'horloge, il est temps de la poncer et de la protéger avec du vernis à bois. J'ai utilisé du papier de verre très doux (valeur de 500) pour adoucir les bords. Je vous recommande d'utiliser un vernis à bois transparent pour que la couleur du bois ne change pas. Mettez une petite quantité de vernis sur le pinceau et tirez-le dans le sens des annuelles dans le bois. Répétez-le au moins 2 fois.

Étape 10: Assembler

Assembler
Assembler
Assembler
Assembler
Assembler
Assembler

Les sapins mettent les boutons et le potentiomètre sur leurs positions - si vos trous sont trop gros, vous pouvez utiliser de la colle chaude pour les fixer en place. Ensuite, placez la bande annulaire dans ses fentes et connectez ses fils à l'Arduino. Avant de coller l'anneau LED à sa place, il est bon de s'assurer que les pixels LED sont au bon endroit - centrés et alignés avec le dessin. Pour cela, j'ai ajouté le mode Maintenance qui affichera tous les pixels importants (0, 5, 10, 15, … sur la sonnerie des minutes et 3, 6, 9 et 12 sur la sonnerie des heures). Vous pouvez entrer dans ce mode en appuyant sur les deux boutons et en les maintenant enfoncés, avant de brancher l'alimentation sur le connecteur. Vous pouvez quitter ce mode en appuyant sur n'importe quel bouton.

Lorsque vous avez aligné vos anneaux LED, appliquez de la colle chaude et maintenez-les pendant que la colle se raffermit. Prenez ensuite vos bagues PVC et encore: appliquez de la colle chaude sur les LED, positionnez-les rapidement et maintenez-les quelques secondes. Au final, lorsque vous êtes sûr que tout fonctionne, vous pouvez coller à chaud la planche (ou Arduino) sur le bois. Astuce: ne pas appliquer trop de colle. Juste une petite quantité donc il tient au même endroit mais vous pouvez facilement le retirer si vous souhaitez changer quelque chose plus tard.

À la toute fin, insérez la pile bouton dans son support.

Étape 11: Mise à niveau - Photorésistance

Mise à niveau - Photorésistance
Mise à niveau - Photorésistance
Mise à niveau - Photorésistance
Mise à niveau - Photorésistance
Mise à niveau - Photorésistance
Mise à niveau - Photorésistance

Les effets d'horloge sont particulièrement agréables dans l'obscurité. Mais cela peut déranger son utilisateur pendant la nuit, pendant qu'il dort. C'est pourquoi j'ai décidé de mettre à niveau l'horloge avec la fonction de correction automatique de la luminosité - lorsque la pièce s'assombrit; l'horloge éteint ses LED.

Pour cela, j'ai utilisé le capteur de lumière - photorésistance. Sa résistance augmentera considérablement; jusqu'à quelques méga ohms quand il fait sombre et il n'aura que quelques centaines d'ohms quand il y aura de la lumière dessus. Avec une résistance normale, ils forment le diviseur de tension. Ainsi, lorsque la résistance du capteur de lumière change, la tension sur la broche analogique Arduino (que nous pouvons mesurer) change également.

Avant de souder et d'assembler un circuit, il est sage de le simuler d'abord, afin que vous puissiez voir le comportement et apporter des corrections. Avec l'aide d'Autocad Tinkercad, vous pouvez faire exactement cela ! En quelques clics, j'ai ajouté les composants, je les ai connectés et j'ai écrit le code. Dans la simulation, vous pouvez voir comment la luminosité des LED est modifiée en fonction de la valeur de la photorésistance. C'est très simple et direct - vous êtes invités à jouer avec le circuit.

Après la simulation, il était temps d'ajouter la fonctionnalité à l'horloge. J'ai percé un trou au centre de l'horloge, collé la photorésistance, connecté comme on peut le voir sur le circuit et ajouté quelques lignes de code. Dans le fichier LEDclock.h, vous devez activer cette fonctionnalité en déclarant USE_PHOTO_RESISTOR comme 1. Vous pouvez également modifier la luminosité de la pièce à laquelle l'horloge assombrira les LED en modifiant la valeur CLOCK_PHOTO_TRESHOLD.

Étape 12: Profitez

Lorsque vous l'allumerez pour la première fois, l'horloge affichera une heure aléatoire. Vous pouvez le configurer en appuyant sur les deux boutons en même temps. Tournez le bouton pour sélectionner la bonne heure et confirmez-la en appuyant sur n'importe quel bouton.

J'ai trouvé l'inspiration dans un projet très soigné sur Internet. Si vous décidez de construire l'horloge vous-même, jetez-y un coup d'œil également ! (NeoClock, Wol Clock, Arduino Colorful Clock) Si jamais vous décidez d'essayer de suivre les instructables, j'espère que vous le trouverez aussi agréable que moi.

Si vous rencontrez des problèmes au cours du processus de fabrication, n'hésitez pas à me poser n'importe quelle question dans les commentaires - j'essaierai d'y répondre avec plaisir !

Conseillé: