Table des matières:

Séquenceur LED RVB programmable (utilisant Arduino et Adafruit Trellis) : 7 étapes (avec images)
Séquenceur LED RVB programmable (utilisant Arduino et Adafruit Trellis) : 7 étapes (avec images)

Vidéo: Séquenceur LED RVB programmable (utilisant Arduino et Adafruit Trellis) : 7 étapes (avec images)

Vidéo: Séquenceur LED RVB programmable (utilisant Arduino et Adafruit Trellis) : 7 étapes (avec images)
Vidéo: Секвенсор светодиодных лент RGB с использованием Arduino и Adafruit Trellis 2024, Novembre
Anonim
Image
Image
Câbler la carte du pilote
Câbler la carte du pilote

Mes fils voulaient des bandes LED de couleur pour éclairer leurs bureaux, et je ne voulais pas utiliser un contrôleur de bande RVB en conserve, car je savais qu'ils s'ennuieraient avec les motifs fixes de ces contrôleurs. J'ai également pensé que ce serait une excellente occasion de créer un outil pédagogique pour eux qu'ils pourraient utiliser pour affiner les compétences en programmation et en électronique que je leur ai enseignées. C'est le résultat.

Je vais vous montrer comment construire ce contrôleur de bande LED RVB simple et programmable à l'aide d'un Arduino Uno (ou Nano), d'un treillis Adafruit et d'une poignée d'autres pièces.

Le treillis Adafruit est l'un de mes nouveaux jouets préférés de Lady Ada et de son équipe. Tout d'abord, il ne s'agit que de 9,95 $ pour la planche et de 4,95 $ supplémentaires pour le coussinet en élastomère de silicone (prix à ce jour). C'est beaucoup pour une matrice 4x4 à 16 boutons avec capacité LED. Il n'est pas livré avec des LED montées, vous devez les fournir, mais cela vous donne la possibilité de choisir les couleurs que vous voulez (et réduit les coûts et la complexité par rapport à l'intégration de LED adressables). Pour construire ce projet comme le mien, vous aurez besoin d'une poignée de LED de 3 mm. J'ai utilisé 2 rouges, 2 verts, 2 bleus, 4 jaunes et 6 blancs.

Le Trellis utilise I2C pour communiquer, il ne nécessite donc que deux broches d'E/S (données et horloge) pour contrôler 16 boutons et 16 LED.

Vous pouvez faire la partie matérielle de ce projet sur une petite carte proto, c'est ainsi que j'ai fait mon prototype. J'ai rapidement réalisé que j'avais besoin de quelque chose de plus propre et de plus contenu sur leurs bureaux (un Arduino nu et une carte proto qui frapperaient serait trop fragile), alors j'ai fait mon propre bouclier pour piloter les bandes LED. Les instructions et les fichiers pour construire le bouclier sont inclus dans la dernière étape.

Le pilote utilise trois MOSFET IRLB8721 et trois résistances. Et bien sûr, vous aurez besoin d'une bande LED pour conduire; à peu près n'importe quelle bande de LED RVB 12V fera l'affaire. Ce sont des LED simples, comme les SMD 5050, pas des LED fantaisistes adressables individuellement (pas de NeoPixels, etc.) - c'est un autre projet ! Vous avez également besoin d'une alimentation 12V suffisamment grande pour piloter le nombre de LED que vous avez l'intention d'utiliser.

Donc, pour récapituler, voici les besoins matériels de base pour ce projet:

  • Un Arduino Uno ou Nano (ces instructions sont pour Uno avec des en-têtes femelles installés, mais Nano sur une maquette fonctionne bien) (Adafruit, Amazon, Mouser);
  • Une planche en treillis Adafruit et un coussinet en silicone (Adafruit);
  • Trois MOSFET à canal N IRLB8721 (Adafruit, Amazon, Mouser);
  • Trois résistances 1K (Amazon, Mouser);
  • Trois résistances de 220 ohms (Amazon, Mouser)
  • Une petite carte proto (mon premier était de taille 1/4 - choisissez n'importe quelle taille avec laquelle vous pouvez travailler confortablement) (Adafruit, Amazon);
  • Une bande LED RVB 12V (SMD 5050) (Adafruit, Amazon);
  • Alimentation 12V - choisissez une puissance adaptée au nombre de LED que vous prévoyez de piloter.

Avis de non-responsabilité: les liens ci-dessus sont fournis pour votre commodité et ne constituent pas une approbation d'un produit ou d'un fournisseur; je ne profite pas non plus des achats effectués sur ces liens. Si vous avez des fournisseurs que vous préférez, soutenez-les par tous les moyens !

Commençons…

Étape 1: câbler la carte de commande

Câbler la carte de pilotage
Câbler la carte de pilotage

Voici le circuit du pilote de LED. C'est très simple. Il utilise un MOSFET à canal N IRBLxxx pour chaque canal de la bande LED. La bande LED est une anode commune, ce qui signifie que +12V est envoyé à la bande LED, et les canaux LED rouge, vert et bleu sont contrôlés en fournissant la masse sur la connexion respective à la bande. Nous allons donc connecter le drain des MOSFET aux canaux de couleur LED et la source à la terre. Les portes seront connectées aux sorties numériques Arduino et les résistances fournissent un pull-down qui garantit que chaque MOSFET s'allume ou s'éteint complètement selon les besoins.

L'Arduino offre une modulation de largeur d'impulsion sur certaines de ses sorties numériques, nous utiliserons donc ces sorties (en particulier D9, D10, D11) afin que l'intensité de chaque canal de couleur puisse être contrôlée.

Si vous ne savez pas quoi connecter où sur les MOSFET IRLB8721, tenez-en un dans votre main avec l'avant face à vous, comme indiqué sur la photo ci-dessus. La broche à gauche (broche 1) est la porte et se connectera à une broche de sortie numérique Arduino et à la résistance (l'autre extrémité de la résistance doit être connectée à la terre). La broche au centre (broche 2) est le drain et se connecte au canal de couleur de la bande LED. La broche de droite (broche 3) est la source et est connectée à la terre. Assurez-vous de garder une trace de quel transistor se connecte à quel canal de couleur LED.

Je n'entrerai pas dans les détails de la soudure des cartes proto. Honnêtement, je déteste ça, et je ne suis pas douée pour ça. Mais pour le meilleur ou pour le pire, cela fonctionne, et c'est un moyen rapide et sale d'obtenir un prototype solide ou une pièce unique. Ma première planche est montrée ici.

Vous pouvez également faire une planche à pain. Ce serait certainement plus rapide que de tout souder sur une carte proto, mais moins permanent.

Une fois que vous avez câblé votre pilote, connectez les entrées de la porte MOSFET aux broches de sortie numérique Arduino: D9 pour le canal vert, D10 pour le canal rouge et D11 pour le canal bleu. Connectez également la bande LED à votre carte proto.

Assurez-vous également que votre carte de pilote a une connexion séparée de sa terre à l'une des broches de terre de l'Arduino.

Enfin, pour l'alimentation LED, connectez le fil négatif (masse) de l'alimentation 12V à une masse sur votre carte de commande. Ensuite, connectez le fil positif de l'alimentation 12V au fil d'anode de votre bande LED (il s'agit d'un fil noir sur mes câbles montrés sur la photo).

En fin de compte, j'ai fini par concevoir un blindage de carte de circuit imprimé qui se monte sur l'Uno et dispose également d'un support de montage pour le treillis. Cela a fourni un produit final beaucoup plus fini. Si vous voulez faire cela, vous pouvez ignorer l'utilisation de la carte proto comme décrit ici et simplement faire fabriquer la carte de blindage. Que tout est décrit dans la dernière étape.

Étape 2: Mettez des LED sur le treillis

Mettez des LED sur le treillis
Mettez des LED sur le treillis

La carte Trellis a des pastilles vides pour les LED de 3 mm que nous devrons remplir. Notez attentivement les symboles sur les plaquettes - il y a un "+" très subtil à côté de la plaquette pour désigner le côté anode. Si vous tenez la carte de manière à ce que le texte soit à l'endroit, il y a également une notation en haut et en bas de la carte indiquant que les anodes LED sont à gauche.

Soudez vos LED 3 mm à la carte. En regardant l'avant du tableau, le texte à l'endroit, la position du commutateur/LED en haut à gauche est #1, la position supérieure droite est #4, la position inférieure gauche est #13 et la position inférieure droite est #16. Voici les couleurs que j'ai utilisées dans chaque position (et il y a une raison, je vous conseille donc de suivre mon modèle au moins pour les deux premiers rangs):

1 - rouge2 - vert3 - bleu4 - blanc5 - rouge6 - vert7 - bleu8 - blanc9 - blanc10 - blanc11 - jaune12 - jaune13 - blanc14 - blanc15 - jaune16 - jaune

CC Attribution: L'image de treillis ci-dessus est par Adafruit et utilisée sous la licence Creative Commons -- Attribution/ShareAlike.

Étape 3: Connectez le treillis à l'Arduino

Connectez le treillis à l'Arduino
Connectez le treillis à l'Arduino

Le treillis a cinq plots de câblage, mais seulement quatre sont utilisés dans ce projet. Le Trellis a besoin de SDA et SCL pour communiquer avec l'Arduino (en utilisant I2C), et 5V et GND pour l'alimentation. Le dernier pad, INT, n'est pas utilisé. Les patins en treillis apparaissent sur les quatre bords de la planche. Vous pouvez utiliser n'importe quel ensemble de tampons que vous souhaitez.

Soudez un fil d'interconnexion solide aux pastilles 5V, GND, SDA et SCL. Ensuite, connectez le fil 5V à la broche 5V de l'Arduino, le GND à la broche de terre, le fil SDA à A4 et le fil SCL à A5.

Ensuite, nous allons mettre l'Arduino sous tension et y télécharger le croquis. C'est maintenant le bon moment pour mettre le coussinet en silicone sur la planche en treillis. Il repose simplement sur la planche (notez les "pointes" au bas du coussin qui s'insèrent dans les trous du tableau), vous pouvez donc utiliser quelques morceaux de ruban adhésif pour maintenir les bords du coussin sur le tableau pour maintenant.

Attribution CC: l'image de câblage Trellis ci-dessus est une version recadrée de cette image par Adafruit et est utilisée sous la licence Creative Commons - Attribution/ShareAlike.

Étape 4: Téléchargez le croquis du projet et téléchargez-le sur l'Arduino

Vous pouvez télécharger le croquis à partir de mon dépôt Github pour ce projet.

Une fois que vous l'avez, ouvrez-le dans l'IDE Arduino, connectez l'Arduino à l'aide d'un câble USB et téléchargez le croquis sur l'Arduino.

Si le croquis est téléchargé et que le treillis est correctement connecté, l'un des boutons du treillis doit clignoter rapidement trois fois lorsqu'il est enfoncé. C'est une indication que vous avez appuyé sur un bouton non valide, car le système apparaît dans son état "éteint", donc la seule pression de touche valide est celle requise pour l'allumer.

Pour allumer le système, maintenez enfoncé le bouton en bas à gauche (#13) pendant au moins une seconde. Lorsque vous relâchez le bouton, toutes les LED doivent s'allumer brièvement, puis les deux rangées du bas s'éteignent, à l'exception de #13 (en bas à gauche). Le système est maintenant dans l'état sous tension et inactif.

Vous pouvez essayer d'utiliser les deux rangées du haut pour éclaircir et atténuer les canaux LED comme premier test. Si cela fonctionne, vous êtes prêt à passer à l'étape suivante. Si ce n'est pas le cas, vérifiez:

  1. L'alimentation LED est connectée et allumée;
  2. Les MOSFET de la carte de commande sont correctement câblés. Si vous utilisez les mêmes IRLB8721 que j'ai utilisés, vérifiez:

    • Les entrées de signal de la carte de commande (portes MOSFET, IRLB8721 broche 1) sont connectées à Arduino D9=vert, D10=rouge, D11=bleu (voir note ci-dessous);
    • La bande LED est connectée à la carte de commande et les canaux de couleur LED sont connectés aux drains MOSFET (IRLB8721 broche 2);
    • Les broches de la source MOSFET (IRLB8721 broche 3) sont connectées à la terre sur la carte de commande;
  3. Connexion à la terre entre la carte pilote et la broche de terre Arduino.

Dans l'étape suivante, nous allons jouer avec certaines des fonctions de l'interface utilisateur du pavé de boutons.

REMARQUE: si votre manette fonctionne mais que les boutons d'intensité ne contrôlent pas les bonnes couleurs, ne vous inquiétez pas et ne recâblez pas ! Allez simplement dans l'esquisse dans l'IDE Arduino et modifiez les définitions des broches ROUGE, VERT et BLEU près du haut du fichier.

Étape 5: Fonctions de contrôle de base

Fonctions de contrôle de base
Fonctions de contrôle de base

Maintenant que le système est sous tension, nous pouvons jouer avec certains des boutons et lui faire faire des choses.

Comme je l'ai dit à l'étape précédente, lors de la mise sous tension, le système apparaît dans son état "inactif". Dans cet état, vous pouvez utiliser les boutons des deux rangées supérieures pour augmenter et diminuer l'intensité de la couleur de chacun des canaux LED rouge, vert et bleu. Si vous utilisez les boutons blancs d'augmentation/diminution, le système incrémente ou décrémente l'intensité des trois canaux de manière égale et à des niveaux égaux.

Les deux rangées du bas sont utilisées pour lire les motifs prédéfinis. Ces modèles sont stockés dans l'EEPROM de l'Arduino. Lorsque l'esquisse s'exécute pour la première fois, elle constate que l'EEPROM n'a aucun modèle stocké et stocke un ensemble de modèles par défaut. Par la suite, vous pouvez modifier ces modèles et vos modifications sont stockées dans l'EEPROM de l'Arduino, remplaçant le modèle prédéfini. Cela garantit que vos modèles survivent aux coupures de courant. La fonction d'édition est décrite à l'étape suivante.

Pour l'instant, appuyez brièvement sur l'un des boutons de préréglage (les huit boutons des deux rangées du bas) pour exécuter le motif enregistré pour ce bouton. Le bouton clignote pendant l'exécution du motif. Pour arrêter le motif, appuyez à nouveau brièvement sur le bouton de motif. Lorsqu'un motif est en cours d'exécution, les boutons blancs haut/bas dans les rangées du haut peuvent être utilisés pour modifier la fréquence du motif.

Si vous laissez le projet seul pendant quelques secondes sans toucher à aucun bouton, vous remarquerez que les LED s'assombrissent. C'est à la fois pour économiser de l'énergie et pour éviter que le treillis sur-éclaire toute "ambiance" que les LED essaient de créer. Toucher un bouton sur le treillis le réveillera.

Pour éteindre le système, maintenez enfoncé le bouton inférieur gauche (#13) pendant une ou plusieurs secondes et relâchez. Le treillis et la bande LED s'éteindront.

Étape 6: Modification des motifs sur le clavier

Modification des motifs sur le clavier
Modification des motifs sur le clavier

Comme je l'ai dit à l'étape précédente, l'esquisse stocke huit modèles par défaut dans l'EEPROM la première fois qu'elle s'exécute. Vous pouvez changer 7 de ces motifs en quelque chose d'autre si vous le souhaitez en utilisant le mode d'édition de motif sur le pavé de boutons.

Pour entrer en mode d'édition de motif, décidez d'abord pour quel bouton vous souhaitez éditer le motif. Vous pouvez choisir n'importe quel bouton autre que le bouton en bas à gauche. Entrez en mode d'édition de motif en appuyant longuement (maintenez enfoncé plus d'une seconde) sur le bouton de motif choisi. Lorsqu'il est relâché, le bouton s'allume en continu et les deux rangées supérieures commencent à clignoter. Cela indique que vous êtes en mode édition.

Le mode d'édition commence au premier pas du motif et continue jusqu'à ce que vous quittiez l'édition ou que vous terminiez l'édition du 16e pas (16 pas max par motif). À chaque étape, utilisez les boutons d'intensité de canal dans les deux rangées supérieures pour sélectionner la couleur que vous souhaitez pour cette étape. Appuyez ensuite brièvement sur le bouton de préréglage du motif pour enregistrer cette couleur et passer à l'étape suivante. Lors de votre dernière étape, au lieu d'appuyer brièvement, appuyez simplement longuement pour quitter l'édition.

Une fois que vous avez quitté l'édition du pattern, le pattern est automatiquement lu.

C'est ça! Vous disposez maintenant d'un contrôleur LED RVB qui séquencera les motifs que vous pourrez programmer via le clavier. Vous pouvez vous arrêter ici, ou si vous souhaitez créer une version plus formelle de ce projet, continuez à suivre les autres étapes.

Étape 7: Meilleur matériel: Blindage et boîtier du pilote LED RVB

Image
Image
Meilleur matériel: blindage et boîtier de pilote de LED RVB
Meilleur matériel: blindage et boîtier de pilote de LED RVB
Meilleur matériel: blindage et boîtier de pilote de LED RVB
Meilleur matériel: blindage et boîtier de pilote de LED RVB

Une fois que j'ai eu un prototype fonctionnel, je savais que je ne pouvais pas laisser une carte Arduino et proto nue sur les bureaux de mes enfants comme solution permanente. J'avais besoin d'une enceinte pour le projet. J'ai également décidé que je ferais une meilleure carte de conducteur, et j'ai pensé que c'était l'occasion parfaite de faire mon propre bouclier.

J'ai nettoyé mon schéma papier en le saisissant dans ExpressSCH, un outil gratuit proposé par ExpressPCB, un fabricant de cartes qui propose des petites séries peu coûteuses de petites cartes PC. J'utilise ExpressPCB depuis plus d'une décennie sur des projets, mais utilisez les outils et le fabricant que vous préférez, par tous les moyens.

J'ai ajouté quelques petites fonctionnalités au schéma de base afin qu'il fonctionne bien comme bouclier pour ce projet. J'ai ajouté des plots de câblage pour connecter le treillis, une prise d'alimentation, une lampe témoin et un connecteur pour la bande LED. J'ai également ajouté un emplacement pour un condensateur à travers l'alimentation. Le circuit final est montré ici.

J'ai décidé que le pouvoir pour le projet devrait venir du bouclier. Le 12V fourni au shield alimente à la fois la bande LED et l'Arduino. L'alimentation de l'Arduino est fournie en connectant l'entrée d'alimentation à la broche VIN de l'Arduino, qui est bidirectionnelle (vous pouvez alimenter l'Arduino sur cette broche, ou si vous connectez l'alimentation à l'Arduino ailleurs, cela vous donnera le mettre cette broche sous tension). La diode de protection D1 empêche toute alimentation connectée directement à l'Arduino (par exemple USB) d'essayer d'alimenter les LED.

Pourquoi ne pas utiliser la prise d'alimentation de l'Arduino et simplement y connecter 12V ? Alors que j'aurais pu fournir 12 V à la prise d'alimentation de l'Arduino et utiliser la broche VIN pour saisir cette alimentation pour le blindage, je craignais que la diode D1 de l'Arduino et les traces n'atteignent pas les courants élevés possibles dans la conduite de la LED bandes. J'ai donc décidé que mon blindage prendrait le relais de l'entrée d'alimentation et alimenterait l'Arduino à la place. Treillis. Cela m'a évité de mettre un circuit régulateur sur le blindage.

J'ai ensuite posé le PCB. J'ai utilisé certaines ressources que j'ai trouvées pour obtenir les mesures exactes pour le placement des broches pour rencontrer les en-têtes sur l'Arduino Uno. Un peu de diligence et ça a fonctionné du premier coup. Il n'y a pas grand-chose dans le circuit de blindage lui-même, j'avais donc beaucoup de place. J'ai tracé de larges traces pour les charges LED, il y aurait donc beaucoup de capacité de transport de courant pour mes besoins. J'ai placé les MOSFET là où ils pourraient être montés à plat, avec ou sans dissipateurs thermiques. Jusqu'à présent, je n'ai pas eu besoin de dissipateurs thermiques pour le nombre de LED que j'utilise, mais l'espace est là si nécessaire.

J'ai également ajouté des trous correspondant aux trous de montage sur le treillis, afin que je puisse utiliser des supports pour monter le treillis sur mon bouclier. Avec le blindage branché sur l'Arduino et le treillis suspendu à des entretoises au-dessus du blindage, tout devrait être beau et solide.

J'ai ensuite imprimé la disposition de la carte et l'ai collée sur un morceau de noyau de mousse, et j'ai inséré mes pièces pour m'assurer que tout s'emboîte. Tout va bien, alors j'ai envoyé la commande.

J'ai alors commencé à travailler sur une enceinte. En utilisant Fusion 360, j'ai conçu un boîtier simple pour contenir les trois cartes (Arduino Uno, shield et Trellis). Des trous dans le boîtier permettent la connexion au port USB de l'Arduino et, bien sûr, l'accès à la connexion de la bande LED et à la prise d'alimentation du blindage. La prise d'alimentation Arduino est recouverte par le boîtier, pour s'assurer qu'elle n'est pas utilisée. Après quelques prototypes pour des essais d'ajustement, j'ai finalement eu un design dont j'étais satisfait. J'ai posté les fichiers STL du boîtier sur Thingiverse.

À l'avenir, je ferai une version de la carte sur laquelle un Nano peut être branché directement, cela rendrait le projet encore plus compact. Jusque-là, vous pouvez également utiliser un adaptateur de blindage Nano vers Uno comme celui-ci.

Si vous allez faire le bouclier, voici ce dont vous aurez besoin en plus des pièces mentionnées à l'étape 1:

  • Carte PC RVB LED Driver Shield (d'ExpressPCB ou autres; vous pouvez télécharger les fichiers à partir de mon dépôt Github pour le projet);
  • diode 1N4002;
  • Condensateur électrolytique radial 100 uF 25 V (utilisez 220 uF ou 470 uF si charge LED importante);
  • Prise d'alimentation, PJ202-AH (modèle homologué 5A).

Les pièces suivantes sont facultatives:

  • LED 3 mm -- n'importe quelle couleur, pour lampe témoin (peut être omis)
  • Résistance de 1500 ohms - nécessaire uniquement si vous utilisez une lampe pilote à LED

Conseillé: