Enchaînés lumière d’ambiance à l’aide de la puissance élevée LED RGB (9 / 11 étapes)

Étape 9: Raccorder la lampe principale

Les lampes de l’esclave ne fonctionnent pas sans le Conseil de maître. Il peut être une bonne idée d’abord faire la maître lampe de travail, avant d’assembler tous les esclaves, mais j’aurais dû dire vous antérieure i should ' t. Eh bien, je suis sûr que vous pensé que vous-même.

La seule chose différente de la lampe du maître pour les lampes de l’esclave est qu’il y a un autre microcontrôleur dedans (ou vous pouvez également utiliser des arduinos dans toutes les lampes de l’esclave et télécharger le code de l’esclave (adapté) pour les lampes de l’esclave). Aussi, c’est la seule lampe qui dispose d’un connecteur USB et un récepteur infrarouge.
J’ai retiré la prise mini-USB original du jeu et utilisé des câbles wrap (tous les autres câbles petits sera très bien) pour le rebrancher avec câble de 5cm entre les deux. J’ai utilisé l’outil dremel pour faire un trou dans la lampe pour s’adapter à la prise usb, donc je peux mettre à jour le logiciel maître sans avoir à ouvrir le feu. Du côté opposé, j’ai fait un trou assez grand pour le récepteur IR mais assez petit pour que de l’extérieur, il ressemble à un petit bouton noir. C’est une bonne idée de placer le récepteur IR sur le milieu entre la couture des deux moitiés et la partie inférieure de la lampe.
Connectez le récepteur IR à GND, 5V et le signal de sortie à la broche à la broche numérique arduino 8 (qui est liée à l’interruption de capture de timer1 d’entrée).

Raccorder le transistor NFET à l’Arduino : Connectez la porte à la broche numérique 13 et la source à GND. Le Drain se connecte à l’entrée négative du ventilateur. Connectez l’entrée positive du ventilateur à broches 5V de l’Arduino. Oui, c’est un ventilateur 12V mais à 5V il crée assez d’air pour garder la LED refroidie et il ne crée presque aucun bruit. Si votre ventilateur ne fonctionne pas à 5V, reliez-le à la ligne 12V (qui vaut également pour toutes les lampes de l’esclave soit dit en passant).

Utiliser deux 1,5 k Ohm résistances et connectez-les comme tractions : celle de SDA (broche analogique 4) à 5V et l’autre de SCL (broche analogique 5) à 5V. Ce sont les tractions pour le bus de communication I2C. Si vous les oubliez, la communication série ne fonctionnera pas. N’utilisez pas de tractions internes de l’Arduino, ils sont trop faibles (ignorer cette phrase si vous ne savez pas sur les tractions internes de l’Arduino, ils sont activés par le logiciel et il n’importe pas si elles sont activées ou non, si vous soudez pullups externe).

Les signaux PWM sont générés à l’aide de timer1 (rouge et vert) et timer2 (bleu). Les broches contrôlées sont la broche numérique 9 (rouge), la broche numérique 10 (vert) et la broche numérique 11 (bleu).
Timer1 est une minuterie de 16 bits, en vous donnant des étapes de 65'536 couleurs, qui est plus que suffisant (au-dessus de 12 bits, vous ne voyez aucun « sauts de couleurs » lorsque la gradation) mais timer1 est seulement un timer de 8 bits. Au début que j’ai eu tant d’exécuter en mode 8 bits, mais qui semblait un peu merde parce que nos yeux sont logarithmiques et la LED est linéaire, ce qui signifie que vous percevez un passage de 2 à 4 comme un plus grand changement de luminosité qu’un changement de 200 à 255. En réalité les 256 étapes de luminosité, lorsque le fait de façon logarithmique vous donnent uniquement sur les valeurs de couleur de 12-13 (en théorie, en réalité, c’est un peu plus) par canal, ce qui donne un total de 13 ^ 3 = 2197 couleurs distinctes. Ressemble beaucoup, mais ce n’est pas.

Je vais un peu dans les détails sur le code maintenant, si vous n’êtes pas familier avec des trucs de calendrier et horloge matérielle, ignorez-la.
J’ai cherché sur le web pendant quelques heures, essayant de trouver une méthode logicielle pour augmenter le timer de 8 bits, mais chacun d’eux introduit des erreurs de jitter en raison de la temporisation logicielle, qui se traduit par fréquents clignotement d’une led qui n’est pas acceptable. Ensuite, je m’assis et a écrit mon propre code pour obtenir une meilleure résolution. J’ai trouvé que pour les valeurs inférieures, retards de logiciel sont trop lents, aussi les interruptions ne sont pas assez rapides (nous parlons simple précision de horloge cpu ici). Il aurait peut-être pu être fait en assembleur mais je ne voulais pas aller dans cette voie, non, Monsieur.
J’ai utilisé à la place un truc (que j’ai découvert par hasard et maintenant, suis assez fière de) que les minuteries ne pas immédiatement mettre à jour la comparer correspondent à registre mais ont une mémoire tampon sur elle, mettre à jour uniquement sur le prochain débordement de minuterie. Dans cet esprit, j’ai utiliser le débordement timer2 pour synchroniser et vérifier les minuteries et peut faire un up de 16 bit timer sur une minuterie de 8 bits, mais peuvent également avoir ce soit 12bits ou 13bits. Cela ajoute beaucoup de charge CPU, mais le maître lampe seule doit écouter l’IR, envoyons les commandes et générer PWM, qui se fait tout pour la plupart dans le matériel, donc il y a assez de temps couleur calculs et autres choses en attendant. Avec une horloge arduino CPU de 16Mhz et un diviseur de minuterie de 8 (avec un prescaler de 1 la charge CPU devient trop élevé en raison d’interruptions chaque horloge 256) la fréquence PWM est 2MHz/(2^13) = 244 Hz (pour les feux de l’esclave c’est seulement 122 Hz depuis ils courent sur 8 Mhz) qui est très bien (100 Hz est le minimum pour obtenir le scintillement des lumières gratuit).

Bon, donc nous avons une combinaison de logiciel-matériel sortie PWM avec une résolution de 13 bits, ce qui nous donne 8191 étapes linéaires de couleur pour chaque lampe, ce qui nous donne 254 étapes logarithmiques (la résolution est effectivement trop élevée et les valeurs inférieures utilisent le même nombre de graduations de la minuterie) qui en résulte dans les différentes couleurs 16 387 064 ! Cela donne des changements de couleur agréable et lisse.

OK, assez parlé de la théorie de code et de couleur. Raccorder l’alimentation 12V à l’arduino. Prenez le câble d’alimentation et le mettre dans une des deux petits trous dans le fond de la lampe. Connectez-le à l’entrée du secteur de l’alimentation de 12V, assurez-vous d’utiliser des gaines thermorétractables tuyaux sur les joints soudés du câble. Organiser toute l’électronique bien dans les deux bols en bois et le fixer avec de la colle, comme décrit pour les feux de l’esclave. Vérifiez bien que les lignes de 230V sont sécurisés et bien isolées. Maintenant, vous pouvez le brancher (j’utilise une rallonge avec un interrupteur, également d’IKEA). Soyez très prudent maintenant, la lampe a encore quelques endroits (sur l’alimentation) avec des pièces exposées 230V.

Il ne fonctionne pas comme prévu ? Gotcha. Vous devez commentez toutes les updatelamp(x) ; commandes à partir du code de l’arduino (également de toutes les fonctions!), avec x étant de 1 à 5 (seulement mise à jour de lampe 0, master). Les commandes d’updatelamp attendent la réponse appropriée de l’esclave et essaient de renvoyer les commandes en cas d’échec, alors le programme tombe dans une boucle infinie. Vous pouvez mettre dans un délai d’attente à la commande updatelamp si vous le souhaitez, je ne voulais pas faire cela donc aucune lampe ne saute toutes les couleurs.
Ah et Pendant que vous travaillez sur la lampe principale, chaussez dans trois résistances de pulldown (au GND) de permet de dire environ 2k Ohms chacune des broches signal PWM. J’ai oublié de le faire et Pendant le démarrage de l’arduino le maître clignote en lumière blanche brillante pendant environ une demi-seconde, laquelle elle would ' t si je n’avais pas oublié ces pulldowns...

Si tout fonctionne, il est maintenant temps pour se brancher à des esclaves. J’espère que vous avez marqué que celui que vous avez programmée avec l’adresse de l’esclave numéro un.

Note : Je sais qu’il y a encore quelques bugs dans le code, si vous en trouver un, veuillez me le signaler (et me dire si vous savez comment résoudre ce problème,). Aussi mes compétences en programmation sont modérés au mieux et le code est un gâchis, mais j’ai essayé d’ajouter dans les commentaires sur la plupart des lignes (peut être en allemand dans certaines parties, Désolé pour ça). Il est encore un work in progress (code qui n’est pas?) et pas entièrement nettoyé.
Des ajouts ou des suggestions du code sont les bienvenus.

Articles Liés

La lumière modulaire PC bloc d’alimentation haute puissance LED élèvent le

La lumière modulaire PC bloc d’alimentation haute puissance LED élèvent le

Bonjour à tous,Après avoir affiché avec succès mon prototype pour un laveur d'algues LED, j'ai décidé de poster quelques de mes autres expériences à l'aide de la puissance élevée LED de 3W. Ici, j'ai décidé de créer un environnement intérieur croissa
Lumière d’ambiance Arduino et porte-

Lumière d’ambiance Arduino et porte-

apprendre à faire votre propre lumière d'ambiance par un Arduino!!!Étape 1: Collecte des matériauxTu vas vouloir rassembler ces documents si vous voulez construire la lumière d'ambiance :1 x Arduino Uno1 LED x RGB3 x 330 Omh résistances1 x planche à
Générique lampe frontale à la lumière de vélo de puissance élevée

Générique lampe frontale à la lumière de vélo de puissance élevée

Il s'agit une instructable pour montrer comment je me suis converti un projecteur à bas prix de Harbor Freight Tools dans un semi-puissant projecteur pour mon vélo.Initialement, j'étais en utilisant une lampe de poche que j'avais monté sur le dessus
SmartPhone sous contrôle RGB lumière d’ambiance

SmartPhone sous contrôle RGB lumière d’ambiance

Lampes d'ambiance sont toujours fascinants pour moi et sont un très bon projet pour les débutants de commencer avec Arduino.Ce qui est une lampe d'ambiance ?Lampes d'ambiance sont des dispositifs d'éclairage qui servent à établir un sentiment particu
Lumière d’ambiance parler de Twitter

Lumière d’ambiance parler de Twitter

Twitter une lumière d'ambiance de mentionner --une lumière d'ambiance qui vous avertit quand on parle sur Twitter.Il s'agit d'une introduction simple sous le contrôle de votre Arduino de Twitter. Si vous êtes nouveau sur Arduino Twitter / Arduino tra
Lumière d’ambiance fausse fenêtre

Lumière d’ambiance fausse fenêtre

Pour chacun d'entre vous qui vivent actuellement dans le sous-sol de tes parents ou remonte à vivre dans le sous-sol de tes parents, robe sur votre demeure sans fenêtre avec cette lumière d'ambiance soignée fausse fenêtre. BTW, votre chambre a déjà é
Lumière d’ambiance facile

Lumière d’ambiance facile

il s'agit d'un moyen facile de faire votre propre humeur $50 + valeur légère avec un minimum d'expérience de pièces/effort/coût et électrique ou électronique. Même à souder peut être évité!.Coût total pourrait être aussi peu que 2 $.Etape 1: Au cœur
Twitter de lumière d’ambiance - ambiance du monde dans une boîte de

Twitter de lumière d’ambiance - ambiance du monde dans une boîte de

Comment le monde se sent tout de suite ? Cette boîte vous indique.Propulsé par : un Arduino, un module, sans fil WiFly une LED RGB, Twitter.com et 9v batterie.Je suis un drogué de nouvelles. Je veux savoir tout ce qui se passe dans le monde dès qu'il
ATtiny85 RGB Mini lumière d’ambiance !

ATtiny85 RGB Mini lumière d’ambiance !

J'ai vu des lumières d'humeur RGB avec Arduino, PIC et plus grandes puces AVR, mais jamais avec la ATtiny85. C'est pourquoi j'ai décidé de faire un.Cette lumière d'ambiance est super simple à faire et toutes les pièces peuvent être achetés en ligne p
Comment faire une lumière d’ambiance ambiante de LED: un tutoriel débutant

Comment faire une lumière d’ambiance ambiante de LED: un tutoriel débutant

Ce Instructable expose comment construire et coder une lumière d'ambiance LED à l'aide d'une carte Arduino et certains composants de circuit commun. Ce projet associe un rouge, vert et bleu a conduit à obtenir un large éventail de couleurs, et l'Ardu
Conversion de lumière d’ambiance IKEA

Conversion de lumière d’ambiance IKEA

ce petit projet a été l'un de mes premiers projets avec des microcontrôleurs. Tout d'abord, j'ai fait le circuit puis, pendant des années, je me demandais ce que je pouvais faire avec elle, jusqu'à ce qu'un jour je suis tombé sur ce distributeur de s
Spark.IO radio-réveil avec lumière d’ambiance

Spark.IO radio-réveil avec lumière d’ambiance

Le réveil de Spark.io peut être utile si vous avez de se réveiller à telle une fois que votre chambre est encore sombre. Lorsque l'alarme que vous définissez est due, la lampe de humeur s'estompe à la couleur que vous avez sélectionné et quand il est
Lumière d’ambiance aléatoire Arduino

Lumière d’ambiance aléatoire Arduino

avez-vous déjà vu ces lumières d'ambiance cool, mais cher, ? Voici un moyen pour obtenir votre propre... et il semble plus joli, aussi...Essentiellement, ce dispositif génère une couleur au hasard, puis s'estompe à elle. Plus d'infos sur le courage d
RGB LED lumière d’ambiance w / ATtiny85

RGB LED lumière d’ambiance w / ATtiny85

ils appellent ces choses des Lumières d'ambiance.Ne sais pas pourquoi. Je suppose que le changement des couleurs mettre certaines personnes dans la bonne humeur.Bien que j'ai observé que lorsque les gens regardent cette humeur légères, elle tend à av