Table des matières:

Horloge de mots arc-en-ciel avec un effet arc-en-ciel complet et plus : 13 étapes (avec images)
Horloge de mots arc-en-ciel avec un effet arc-en-ciel complet et plus : 13 étapes (avec images)

Vidéo: Horloge de mots arc-en-ciel avec un effet arc-en-ciel complet et plus : 13 étapes (avec images)

Vidéo: Horloge de mots arc-en-ciel avec un effet arc-en-ciel complet et plus : 13 étapes (avec images)
Vidéo: Elle Était Coincée Donc Ce Policier L'aide 2024, Juillet
Anonim
Horloge de mots arc-en-ciel avec un effet arc-en-ciel complet et plus
Horloge de mots arc-en-ciel avec un effet arc-en-ciel complet et plus

Buts

1) Simplicité

2) Pas cher

3) Aussi économe en énergie que possible

Horloge de mots arc-en-ciel avec un effet arc-en-ciel complet.

Un smiley sur l'horloge de mots.

Télécommande infrarouge simple

Mise à jour 03-nov-18 LDR pour le contrôle de la luminosité des Neopixels

Mise à jour 01-jan-19 Réduction de la consommation électrique du WS2812B.

Mise à jour 15-jan-19 Smiley.

Mise à jour 23-jan-19 Code 1.6

Mettre à jour les liens des bibliothèques 10-mars-19

Mise à jour 14-avr-19 version 1.7 Choix smiley on/off collor rainbow/fix enz.

Dernière mise à jour 01-juin-19 version 2.0 Télécommande IR et refonte du code

Étape 1: L'étui de l'horloge

L'étui de l'horloge
L'étui de l'horloge
L'étui de l'horloge
L'étui de l'horloge
L'étui de l'horloge
L'étui de l'horloge

Avec quelques outils simples et un peu d'habileté, il n'est pas difficile de faire une horloge lettre J'ai utilisé les matériaux à ma disposition.

Pour le cas, j'ai utilisé une barre de pin brut dans laquelle j'ai scié quelques cadres. Ceux-ci feraient les quatre côtés du boîtier, qui étaient collés ensemble et renforcés avec un petit morceau de bois dans les coins. Ensuite, le bois a besoin d'être poncé et peint.

Les lettres sont découpées dans du papier d'aluminium par une imprimante en écriture miroir. La feuille se trouve à l'arrière de la plaque de verre et est recouverte d'un papier à motif double couche pour une meilleure répartition de la lumière. Le verre est fixé par un mastic silicone.

Étape 2: Néopixels

Néopixels
Néopixels
Néopixels
Néopixels
Néopixels
Néopixels
Néopixels
Néopixels

Les LED Neopixels sont disposées sur une plaque en bois. Dans celle-ci, vous percez d'abord des trous de 3 mm. À l'avant, ils sont agrandis à la taille d'une lettre à 3/4 de profondeur. Après cela, les 3 mm à l'arrière sont passés à 10 mm, c'est la taille d'un Neopixel. Pour certains personnages entre autres le W, le trou doit être légèrement ajusté.

J'ai utilisé du contreplaqué qui s'est rapidement brisé, le MDF peut être mieux.

Avec les LED individuelles, vous n'êtes pas lié à une distance fixe, ce qui est le cas avec les bandes LED. Les LED doivent être connectées les unes aux autres. Vous pouvez le faire avec tous les petits morceaux de fil. Mais les deux connexions min (-) sont comme les deux connexions plus (+) connectées en interne, donc la même connexion.

Vous pouvez vous épargner beaucoup de travail en soudant un morceau de fil à la LED gauche puis à la LED droite. Puis soudez les intermédiaires.

La connexion de données doit bien sûr avec des morceaux courts car la sortie de données va à l'entrée de données.

Étape 3: Ajuster le texte avant

Ajustement du texte avant
Ajustement du texte avant
Ajuster le texte avant
Ajuster le texte avant
Ajustement du texte avant
Ajustement du texte avant

La plaque avant est désormais en néerlandais, mais simplement à convertir dans n'importe quelle langue.

Les leds NeoPixels sont ici commutées successivement de 0 à 167. La numérotation va de la première rangée en haut à gauche à droite puis à la deuxième rangée de droite à gauche etc. Le réglage peut se faire selon vos propres besoins. Le nombre de NeoPixels est déterminé par le nombre de caractères. Moins ou plus de Neopixels peuvent être ajustés dans la ligne suivante

#define NUMPIXELS 168 // Combien de NeoPixels sont attachés à l'Arduino ?

168 est qu'un autre nombre. La numérotation commence à 0. Vous pouvez créer n'importe quel texte. Si vous modifiez le texte, vous devrez également ajuster les mots correspondants. La numérotation reste la même.

A titre d'exemple, le DRIE du procès-verbal, est déterminé dans le code

void zetmDrie () {

Led_Aan[56]=1, Led_Aan[57]=1, Led_Aan[58]=1, Led_Aan[59]=1; // min-sécher

}

Si vous voulez faire le mot Arduino, alors ça se passe comme ça:

zetArduino vide () {

Led_Aan [38] = 1, Led_Aan [50] = 1, Led_Aan [56] = 1, Led_Aan [93] = 1;

Led_Aan [120] = 1, Led_Aan [135] = 1, Led_Aan [147] = 1; //Word-arduino

}

Ainsi, vous pouvez faire des mots entre.

Pour les mots d'horloge, il est utile qu'ils forment un mot contigu mais ce n'est pas absolument nécessaire. Les lettres inutilisées n'ont pas besoin de Neonpixels. Je les ai tous remplis pour l'utilisation de possibilités futures autres que le temps affiché.

Si vous modifiez le point de départ ou la séquence de succession, la numérotation doit changer en conséquence.

Étape 4: Plein effet arc-en-ciel

Plein effet arc-en-ciel
Plein effet arc-en-ciel

L'horloge est maintenant tellement programmée que le nombre de fois par seconde est compté combien de neopixsels sont allumés.

Le spectre total est d'environ le nombre de divisé puis légèrement décalé. En conséquence, chaque Neopixel a une couleur différente qui change continuellement. Neopixel nr 1 et nr 167 se succèdent sur certaines couleurs.

Si vous préférez moins de couleurs différentes en même temps, c'est facile à régler. La couleur se décale toujours sur tout le spectre mais avec une plus petite partie de celui-ci. Neopixel nr 1 et nr 167 ne se succèdent plus quelque couleur implique.

La luminosité peut être réglée dans la ligne suivante, pixels.setBrightness(150);

Un plus petit nombre est moins et un plus grand nombre plus de luminosité.

Étape 5: Les différents composants

Les différents composants
Les différents composants
Les différents composants
Les différents composants
Les différents composants
Les différents composants

Les composants suivants que j'ai utilisés

Arduino Pro Mini ATMEGA328 5V/16MHz

Module d'horloge DS3231

168 pièces Neopixels led WS2812 LED Chip & Heatsink 5V 5050 RGB WS2811 IC Intégré

Pochoir lettre feuille

Récepteur DCF77

Étape 6: Code pour l'horloge

Voici le code. Ajout d'un contrôle de luminosité et d'une mise hors tension lorsque personne n'est présent et la nuit.

Ajout du capteur de mouvement radar à micro-ondes RCWL-0516 (recherche de RADAR)

Après 10 minutes sans mouvement, les NeoPixels s'éteignent.

À propos de la version 2.0

L'utilisation de la mémoire était trop importante, avec des avertissements de manque de mémoire dans le compilateur. C'est pourquoi j'ai complètement changé le code, mais le fonctionnement est resté le même et un récepteur IR a été ajouté.

Il existe un morceau de code pour fournir des données à l'EEPROM. Exécutez-le une fois en supprimant temporairement les / * et * /. Rechercher => exécuter ceci une fois pour fournir des données à l'EEPROM

Au début de la boucle void se trouve le code pour lire le code depuis votre propre télécommande. Vous pouvez l'exécuter en supprimant temporairement les / * et * /, n'oubliez pas de les remettre par la suite. Vous pouvez également définir vos propres boutons. Le code lu doit être renseigné dans => Définissez vos propres boutons ici

La télécommande Samsung fonctionne mieux que la simple (très bon marché).

Étape 7: La description du matériel

La description du matériel
La description du matériel
La description du matériel
La description du matériel
La description du matériel
La description du matériel

Il existe différentes versions de l'Arduino Pro Mini. Veuillez noter que les connexions peuvent différer.

Ajout d'un capteur de mouvement à micro-ondes RCWL-0516.

Tant qu'il y a du mouvement à proximité de l'horloge, le NeoPixel reste allumé

et dès qu'il n'y a plus de mouvement le NeoPixel s'éteint au bout de quelques minutes.

Dans la version 2.0, le récepteur DCF77 est alimenté via la broche 13. Cette broche est définie comme sortie et mise à l'état haut lorsque la routine DCF77 est adressée. Le récepteur DCF77 utilise 0,28 mA et n'est nécessaire que quelques minutes par jour.

Désactiver les sauvegardes

5 volts * 0,28 mA / 1000 * 24 heures * 365 jours * 1 / 0,85 efficacité d'alimentation = 14,4 watts par an.

Cela ne semble pas beaucoup, mais chaque geste compte.

Étape 8: LDR pour le contrôle de la luminosité des néopixels

LDR pour le contrôle de la luminosité des néopixels
LDR pour le contrôle de la luminosité des néopixels
LDR pour le contrôle de la luminosité des néopixels
LDR pour le contrôle de la luminosité des néopixels

Ajout d'un LDR pour le contrôle de la luminosité des néopixels.

J'ai collé le LDR dans l'espace du néopixel 103. Celui-ci n'est pas utilisé dans l'affichage de l'heure et n'influence donc pas la régulation. Le papier amortit la lumière incidente, mais ce n'est pas un problème.

Le diviseur de tension du LDR et de la résistance de 20 kohms va à A0 de l'Arduino Pro Mini. La tension est un indicateur de l'intensité lumineuse et donc aussi un indicateur de la quantité de lumière que les néopixels doivent donner.

La formule que j'utilise me donne un bon contrôle de la lumière, elle peut être ajustée selon les circonstances. Selon la quantité de lumière, la tension peut varier entre 0 et 5 volts qui est convertie en 0 à 1024 comptes qui sont en « LDRValue ».

Si la nouvelle valeur mesurée est supérieure à la dernière valeur calculée, l'intensité est augmentée de 1, si elle est inférieure à décrémentée de 1 et si elle est égale rien n'est fait. Afin de faire avancer la valeur lentement, de sorte qu'il n'y ait pas d'effet de clignotement, seul 1 est augmenté ou diminué et comme le calcul est dans la boucle, il n'est recalculé qu'après avoir parcouru la boucle 25 fois.

L'intensité est théoriquement d'un minimum de 20 et d'un maximum de 1024/7 + 45 = 191. La valeur maximale que j'ai mesurée était de 902, ce qui équivaut à une intensité de 173. Cela correspond bien aux 150 que j'ai définis comme valeur par défaut. (voir pixels.setBrightness(150))

Dans la version 2.0, vous pouvez régler le contrôle via la télécommande. Les paramètres suivants ont été ajoutés: Brightness_min comme minimum et Brightness_max comme réglage maximum et Brightness_Offset comme paramètre de réglage. Brightness_min et _max sont les valeurs qui peuvent dépendre de votre propre situation. Brightness_Offset est une valeur qui peut être réglée avec la télécommande et avec laquelle plus ou moins de luminosité peut être réglée.

Il existe également une bande morte de 3 entre les valeurs LDRValue mesurées et les valeurs BerLDRValue calculées.

Utilisez les instructions d'impression dans le void BrightnessControl pour vérifier le paramètre de luminosité.

Étape 9: réduction de la consommation électrique du WS2812B

Réduction de la consommation électrique du WS2812B
Réduction de la consommation électrique du WS2812B

Les pilotes des néopixels adressables WS2812B consomment du courant même lorsque les néopixels sont éteints, réglés sur la couleur 0 (aucun élément néopixel allumé).

Lorsque les 169 néopixels sont sortis, je mesure 69 mA par néopixels. En supposant que l'horloge soit éteinte 12 heures par jour, l'arrêt total économise alors: 5 (Alimentation en Volts) * 69/1000 (Miliampère / 1000 = Ampère) * 12 (Nombre d'heures par jour) * 365 (Nombre de jours dans un année) = 1511 wattheures. Donc sur une base annuelle 1,5 Kwh. Je suis d'accord, ce n'est pas grand-chose en soi, mais beaucoup de petits en font un grand.

Le circuit est simple. Le plus de l'alimentation est commuté par un MosFet à canal P. Le capteur radar détermine si les néopixels sont activés ou désactivés. J'ai mis deux parallèles MosFet pour maintenir la résistance ON aussi faible que possible en raison de la perte des MosFets. En utilisation normale, je mesure 4, 5 mili volts sur les MosFets. La porte est contrôlée par la sortie 4 de l'Arduino via une résistance de 470 Kohm. Si la sortie passe au niveau bas (0) numériquement, les néopixels sont activés et au niveau haut (1), ils sont désactivés.

Étape 10: Smiley sur l'horloge de mots

Smiley sur l'horloge de mots
Smiley sur l'horloge de mots
Smiley sur l'horloge de mots
Smiley sur l'horloge de mots

Un smiley sur l'horloge de mots.

Il apparaît parfois un Smiley sur l'horloge. Cela vous rend heureux, cependant.

Le Smiley est déclenché par le capteur radar. Le nombre de mouvements (réglable) est une mesure de l'apparence du Smiley. Les signes % indiquent qu'un mouvement a été détecté. Avec chaque dixième mouvement (réglable), le Smiley arrive avec un Winky Face et après trois fois un Winky Face vient la quatrième fois un Smiley Face qui sort la langue.

Le Smiley est un petit changement dans le code.

Étape 11: Quelles bibliothèques sont utilisées

Quelles bibliothèques sont utilisées.

Je les utilise sous Windows 7 avec Arduino IDE 1.6 et ils ont également été testés sous Windows 10 avec Adruino IDE 1.8.8

RTClib-master

Arduino-DS3231-master

Adafruit_NeoPixel-master

Arduino-DCF77-master

Bibliothèque IRremote de Ken Shirriff

Parce qu'il y a toujours une confusion sur la bibliothèque utilisée, j'ajoute celle que j'utilise.

La bibliothèque IRremote utilise beaucoup de mémoire. Dans le IRremote.h, il est indiqué que vous pouvez désactiver tout protocole inutilisé

// Chaque protocole que vous incluez coûte de la mémoire et, pendant le décodage, du temps // Désactivez (défini à 0) tous les protocoles dont vous n'avez pas besoin/voulez !

J'ai tout désactivé sauf le protocole NEC et Samsung. Cela donne une économie de mémoire de 10%. Pour le moment, il n'y a plus de problème avec la quantité de mémoire, donc pour le moment la désactivation n'est pas nécessaire.

Étape 12: Télécommande infrarouge simple

Télécommande infrarouge simple
Télécommande infrarouge simple
Télécommande infrarouge simple
Télécommande infrarouge simple
Télécommande infrarouge simple
Télécommande infrarouge simple

L'Assemblée

Comme vous pouvez le voir sur les photos, le trou pour la LED 132 s'est avéré un peu trop grand. J'en ai fait bon usage et j'y ai ajouté le récepteur IR. Connectez la broche de données du récepteur IR VS1838 à la broche 7 de l'Arduino. De plus, connectez l'alimentation plus et moins. Le récepteur IR utilise 0,21 mA et peut également être connecté à l'alimentation plus après le commutateur FET. Cela se traduit par une économie, si l'horloge est allumée 50% du temps, de 5 Volts * 0,21 mA / 1000 * 12 heures * 365 jours * 1 / 0,85 efficacité d'alimentation = 5,4 watts par an. Cela ne semble pas beaucoup, mais chaque geste compte.

Le fonctionnement est le suivant

Appuyez sur n'importe quelle touche de la télécommande IR, puis sur la touche OK. La première fois que vous appuyez, vous vous retrouverez dans le traitement IR et la deuxième fois vous détecterez s'il s'agissait d'une demande justifiée. La deuxième fois OK doit suivre rapidement la première pression sur la touche car sinon elle repart en arrière. J'ai fait cette construction de sorte que j'ai à peine obtenu le premier code correctement décodé et donc ne me suis pas retrouvé dans la gestion IR.

Une fois dans la gestion IR, un certain nombre de LED s'allument pour plus d'informations, pour plus d'explications, lisez la première image.

La description concerne la télécommande simple mais vous pouvez utiliser n'importe quelle télécommande et définir vos propres touches. J'ai aussi utilisé une télécommande Samsung.

Les quatre premières touches correspondent aux quatre rangées supérieures de LED. Quatre LED tournent à gauche ou à droite selon le réglage. Lorsque les touches 1 à 4 sont enfoncées, l'état est inversé et stocké dans la mémoire.

1 couleur fixe ou effet arc-en-ciel

2 secondes flash désactivé ou second flash activé

3 smiley désactivé smiley activé

4 DCF77 désactivé ou DCF77 activé

Le numéro de la clé est affiché sur les touches suivantes

5 compteurs de smileys

6 largeur de spectre arc-en-ciel

7 réglage rouge fixe

8 réglage vert fixe

9 réglage bleu fixe

Les rangées 6, 7 et 8 des LED correspondent maintenant à la valeur de consigne, la rangée 6 indique les unités, la rangée 7 les dizaines et la rangée 8 les centaines. Chaque ligne commence par la valeur zéro. Ainsi, la première led de la rangée est 0 la seconde est 1 etc.

0 réglage de l'heure

// réglage de la luminosité

Lorsque vous appuyez sur le bouton 0, les LED "dix" s'allument pour indiquer que vous souhaitez régler l'heure et lorsque vous appuyez une deuxième fois sur 0, l'heure réglée apparaît sur l'écran.

L'heure peut maintenant être réglée et s'affiche à l'écran.

Réglez l'heure correcte, puis si la minute est la même sur une horloge de référence, appuyez sur le bouton OK.

L'heure est ajustée.

Si vous n'actionnez pas le bouton des minutes ou des heures, aucun changement d'heure ne sera effectué. Si vous appuyez dessus, l'heure sera réglée immédiatement.

La valeur des touches 5 à 9 peut être modifiée avec les touches

la droite est plus 1

la gauche est moins 1

avant est plus 10

l'inverse est moins 10.

et pour le réglage de l'heure

à droite est plus 1 minute

il reste moins 1 minute

l'avance est plus 1 heure

l'inverse est de moins 1 heure

Il arrive parfois que l'appui sur une touche ne soit pas reconnu ou soit effectué deux fois. Donc attention si le réglage se passe bien sinon essayez ou corrigez à nouveau. La télécommande Samsung que j'ai également testée fonctionnait bien mieux que la télécommande simple (très bon marché).

Lors du réglage de la couleur, vous voyez le changement directement sur l'ensemble de l'écran. Pour un site avec un aperçu des couleurs, voir https://www.helderester.nl/kleurentabel.html. Vous pouvez bien sûr définir n'importe quelle valeur.

Si la largeur du spectre de l'arc-en-ciel a une valeur de 0, le spectre est très étroit et l'affichage a une couleur qui change constamment.

L'inconvénient de régler l'heure de cette manière est que vous ne pouvez pas calculer une transition été / hiver car nous avons la date incorrecte. Cela n'a pas d'importance pour l'horloge elle-même car nous ne l'utilisons pas maintenant.

Étape 13: Quelles prochaines étapes ?

Quels prochains ?
Quels prochains ?

Ce qui suit, sonne, si la mémoire libre est encore suffisante.

J'ai déjà les boîtiers d'enceintes. Ils proviennent d'un vieil ordinateur portable.

Conseillé: