Table des matières:

HALO : Lampe Arduino pratique Rev1.0 W/NeoPixels : 9 étapes (avec photos)
HALO : Lampe Arduino pratique Rev1.0 W/NeoPixels : 9 étapes (avec photos)

Vidéo: HALO : Lampe Arduino pratique Rev1.0 W/NeoPixels : 9 étapes (avec photos)

Vidéo: HALO : Lampe Arduino pratique Rev1.0 W/NeoPixels : 9 étapes (avec photos)
Vidéo: Как сделать светодиодную настольную лампу || "Living Art" 2024, Septembre
Anonim
Image
Image
HALO: lampe Arduino pratique Rev1.0 avec néopixels
HALO: lampe Arduino pratique Rev1.0 avec néopixels
HALO: lampe Arduino pratique Rev1.0 avec néopixels
HALO: lampe Arduino pratique Rev1.0 avec néopixels

Dans ce instructable, je vais vous montrer comment construire HALO ou Handy Arduino Lamp Rev1.0.

HALO est une lampe simple, alimentée par Arduino Nano. Il a une empreinte totale d'environ 2" par 3", et une base en bois lestée pour une stabilité extrême. Le cou flexible et les 12 NeoPixels super lumineux lui permettent d'éclairer facilement chaque détail sur n'importe quelle surface. HALO dispose de deux boutons-poussoirs pour faire défiler différents modes d'éclairage, dont 15 préprogrammés. En raison de l'utilisation de l'Arduino Nano comme processeur, vous avez la possibilité de le reprogrammer avec des fonctionnalités supplémentaires. Le potentiomètre unique permet de régler la luminosité et/ou la vitesse d'affichage d'un mode. Une construction métallique simple fait de HALO une lampe très durable, adaptée à une utilisation dans n'importe quel atelier. La facilité d'utilisation est aggravée par le régulateur de puissance intégré du Nano, de sorte que HALO peut être alimenté via USB ou la prise standard de 5 mm à l'arrière.

J'espère voir beaucoup de gens utiliser ces lampes dans un proche avenir, car il y a tellement de possibilités qui s'ouvrent avec cette conception. Veuillez laisser un vote dans le concours de microcontrôleurs si vous aimez cela ou le trouvez utile d'une manière ou d'une autre, je l'apprécierais vraiment.

Avant d'entrer dans ce Instructable, je voudrais dire un bref merci à tous mes abonnés et à tous ceux qui ont déjà commenté, mis en favori ou voté sur l'un de mes projets. Grâce à vous les gars, mon instructable en carton est devenu un énorme succès, et je suis maintenant, au moment de taper cela, atteignant près de 100 abonnés, une étape importante à mon avis. J'apprécie vraiment tout le soutien que je reçois de votre part lorsque j'installe mon Ible's, et en fin de compte, je ne serais pas où je suis aujourd'hui sans vous. Cela dit, merci à tous !

REMARQUE: tout au long de ce Instructable sont des phrases en gras. Ce sont les parties importantes de chaque étape et ne doivent pas être ignorées. Ce n'est pas moi qui crie ou qui est intentionnellement impoli, j'essaie simplement une nouvelle technique d'écriture pour mieux souligner ce qui doit être fait. Si vous ne l'aimez pas et préférez la façon dont j'avais auparavant tendance à écrire mes étapes, faites-le moi savoir dans les commentaires, et je reviendrai à mon ancien style.

Étape 1: Rassembler les matériaux

Rassembler des matériaux
Rassembler des matériaux
Rassembler des matériaux
Rassembler des matériaux
Rassembler des matériaux
Rassembler des matériaux
Rassembler des matériaux
Rassembler des matériaux

Combien de fois dois-je le dire ? Ayez toujours ce dont vous avez besoin et vous êtes assuré de pouvoir construire quelque chose jusqu'au bout.

Remarque: Certains d'entre eux sont des liens d'affiliation (marqués « al »), je recevrai une petite commission si vous achetez par leur intermédiaire, sans frais supplémentaires pour vous. Merci si vous achetez via les liens

Les pièces:

1x Arduino Nano Nano-al

1x potentiomètre rotatif 10k pack de 5 potentiomètres 10k - al

1x prise de baril de 5 mm (le mien est recyclé à partir d'un Arduino Uno frit) Prise de baril femelle (paquet de 5) - al

Lot de 10 boutons-poussoirs momentanés à 2 broches SPST Interrupteur à bouton-poussoir - al

12x NeoPixels à partir d'un brin de 60 LED/mètre (tout équivalent, par exemple WS2812B, fonctionnera) Adafruit NeoPixels

Une feuille de 0,5 mm d'aluminium

Le cou flexible d'un vieux briquet flexible

L'anneau de couverture supérieur d'un éclairage d'armoire à LED "Stick and Click" Éclairage d'armoire à LED - al

Une petite feuille de contreplaqué 1/4 pouce

Un poids en métal lourd et plat de dimensions (environ) 1,5" par 2,5" par 0,25"

Fil électrique toronné

Outils:

Pistolet à colle chaude et colle

Fer à souder et soudure

Perceuse sans fil et petits embouts torsadés assortis

Couteau X-acto (ou un couteau utilitaire)

Pince à dénuder

Pinces

Coupe-fils/cisailles

Ciseaux à usage intensif

Si vous n'avez pas le poids plat en métal, vous avez également besoin de:

1 rouleau de soudure bon marché (pas le matériel que vous utiliserez pour la soudure) Soudure sans plomb bon marché

Bougie à l'alcool (ou un bec Bunsen)

Un petit plat en acier trempé que vous ne craignez pas de ruiner (ou un petit creuset si vous en avez un)

Un trépied pour ledit plat/creuset (j'ai fait le mien avec du fil d'acier de calibre 12)

Un plat de plantes en argile (un de ces trucs qui passe sous le pot)

Un peu de papier d'aluminium

REMARQUE: si vous disposez d'un kit de soudage ou d'une imprimante 3D, vous n'aurez peut-être pas besoin de tous les outils répertoriés ici.

Étape 2: faire le poids

Faire le poids
Faire le poids
Faire le poids
Faire le poids
Faire le poids
Faire le poids

C'est une étape assez difficile, et vous devez faire preuve d'une extrême prudence en la faisant. Si vous avez un poids en métal lourd ou un aimant plat en néodyme d'environ 2,75" sur 1,75" sur 0,25", je vous recommanderais de l'utiliser à la place (et l'aimant vous permettrait même de positionner la lampe latéralement sur des surfaces métalliques !).

Avis de non-responsabilité: je ne suis pas responsable des blessures de votre part, veuillez donc faire preuve de bon sens

De plus, faites-le à l'extérieur sur une surface en béton qui ne vous dérangera pas si elle est un peu brûlée (c'est juste une précaution). Je n'ai pas de photos pour ce processus car un appareil photo aurait été une distraction supplémentaire dont je n'avais pas besoin ou que je ne voulais pas.

Tout d'abord, faites un petit moule en papier d'aluminium ou en argile humide, d'environ 2 3/4 pouces par 1 3/4 pouces par 1/4 pouces de dimensions intérieures. Il peut s'agir d'une forme ovoïde comme la mienne, ou d'un rectangle. Utilisez plusieurs couches de papier d'aluminium ou d'épaisses couches d'argile.

Placez le moule dans le plat à plantes en céramique et remplissez le moule et le plateau d'eau froide.

Prenez votre bougie à alcool/brûleur bunsen éteint et placez le plat/creuset en acier sur le trépied afin que la flamme chauffe le centre du plat (lorsqu'il est allumé). Avant d'allumer le brûleur, assurez-vous d'avoir au moins 1 paire de pinces ou pinces à métaux sous la main, sinon 2.

C'est une bonne idée de porter des gants en cuir, des manches longues, des pantalons longs, des chaussures fermées et des lunettes de protection pendant les prochaines étapes

Enroulez et cassez un tas de soudure bon marché de la bobine et placez-le dans le plat en acier, puis allumez le brûleur. Attendez que la bobine fonde complètement, puis commencez à alimenter le reste de la soudure dans le plat à un rythme modéré. Si la soudure contient de la colophane, celle-ci peut s'enflammer spontanément sous l'effet de la chaleur, produisant une flamme jaune pâle et une fumée noire. Ne vous inquiétez pas, cela m'est arrivé plusieurs fois et c'est tout à fait normal.

Continuez à alimenter la soudure dans le plat jusqu'à ce que le dernier soit fondu.

Laissez les flammes de la combustion de la colophane s'éteindre complètement et utilisez les pinces/pinces pour saisir le plat et faites doucement tourbillonner le métal fondu à l'intérieur tout en le gardant soigneusement dans la flamme.

Une fois que vous êtes sûr que toute la soudure est complètement liquéfiée et à une bonne température chaude, retirez-la rapidement et soigneusement de la flamme et versez-la dans le moule. Il y aura un fort sifflement et de la vapeur car une partie de l'eau est vaporisée et le reste est forcé hors du moule pour être remplacé par de la soudure fondue.

Laissez la soudure refroidir, éteignez votre brûleur/soufflez votre bougie et placez le plat en acier dans un endroit sûr pour refroidir. Vous pouvez verser de l'eau froide sur la soudure de refroidissement pour accélérer le refroidissement et la durcir davantage. (L'eau froide refroidit l'extérieur plus rapidement que l'intérieur, créant une tension interne qui rend le métal plus dur et plus rigide, semblable à une goutte de Prince Rupert.) Vous pouvez également faire couler de l'eau sur votre plat en métal, mais cela le rendra cassant, surtout s'il est fait plusieurs fois.

Une fois que la soudure a complètement refroidi (environ 20 minutes pour être sûr), retirez-la du moule en aluminium.

Le mien était plus épais d'un côté que de l'autre, j'ai donc utilisé un marteau pour l'égaliser et aplatir les bords (ce qui donne la forme que vous voyez sur les photos). Je l'ai ensuite légèrement poncé sous l'eau courante pour le polir, et l'ai mis de côté pour plus tard.

Étape 3: Construction du boîtier électronique, Étape 1

Construction du boîtier électronique, étape 1
Construction du boîtier électronique, étape 1
Construction du boîtier électronique, étape 1
Construction du boîtier électronique, étape 1
Construction du boîtier électronique, étape 1
Construction du boîtier électronique, étape 1
Construction du boîtier électronique, étape 1
Construction du boîtier électronique, étape 1

Ce sont les pièces de la coque qui abriteront le Nano, monteront l'interface et sont essentiellement ce qui maintient la lampe HALO ensemble. J'ai fait le mien avec mon aluminium 0,5 mm et ma colle chaude, mais si vous avez une imprimante 3D (quelque chose que j'essaie d'avoir pour ma boutique depuis un moment), j'ai fait une version. STL dans Tinkercad que j'ai attachée ici pour vous Télécharger. Comme je n'ai pas d'imprimante moi-même, je n'ai pas pu tester l'impression du modèle pour voir si tout s'imprime correctement, mais je pense que cela devrait aller si vous ajoutez les structures de support appropriées dans votre trancheuse. Vous pouvez également copier et modifier le fichier source ici si vous avez besoin ou souhaitez un design ou une esthétique légèrement différent.

Les dimensions étaient en fait dérivées du poids du métal que j'ai moulé pour moi-même en soudure, pas de la taille de l'électronique, mais cela s'est quand même bien passé et les dimensions sont plutôt optimales.

Les images représentent un ordre de fonctionnement légèrement différent de ce que je vais écrire ici, c'est parce que j'ai conçu une méthode améliorée basée sur les résultats de ma méthode originale.

Si vous assemblez à partir de tôle comme moi, voici ce que vous devez faire:

Étape 1: Plaques frontales

Coupez deux formes identiques en demi-cercle d'environ 1,5" de haut et 3" de large. (J'ai utilisé les miens à main levée, ils ressemblent donc un peu à la façade d'un juke-box).

Dans l'une des deux plaques, percez les trois trous pour les boutons et le potentiomètre. Les miens avaient chacun 1/4 de pouce de diamètre. Ceux-ci peuvent être dans n'importe quelle disposition, mais je préfère que mon potentiomètre soit légèrement surélevé au centre, avec les boutons de chaque côté formant un triangle isocèle. Lors du perçage, je fais toujours un petit trou pilote avant d'aller au foret de taille requise, cela aide à centrer les trous et les rend un peu plus propres.

Étape 2: Couverture arquée

Pliez un morceau d'aluminium pour l'adapter à la courbe de l'une des plaques frontales et marquez la longueur de bord appropriée.

Découpez une bande de cette longueur et d'environ 2 pouces de large, et formez-la en un arc qui correspond à la forme de la courbe des plaques frontales de chaque côté.

Trouvez le point central en haut de la courbe et percez un trou pour s'adapter au cou flexible du briquet. J'ai décalé le trou vers l'arrière de la mienne parce que ma lampe aura principalement le cou incliné vers l'avant pendant l'utilisation, donc je voulais ajouter un peu de contrepoids à cela. Mon cou flexible mesurait juste un peu plus de 1/4 de pouce de diamètre, j'ai donc utilisé un foret de 1/4 de pouce (le plus gros foret torsadé que je possède qui fait moins de 3/4 de pouce) et j'ai juste soigneusement incliné et tordu le percez pour "percer" le trou jusqu'à ce que le cou s'ajuste.

Maintenant que nous avons les pièces pour la coque, la prochaine étape consiste à ajouter l'électronique et à l'assembler !

Étape 4: Construction du boîtier électronique, Étape 2

Construction du boîtier électronique, étape 2
Construction du boîtier électronique, étape 2
Construction du boîtier électronique, étape 2
Construction du boîtier électronique, étape 2
Construction du boîtier électronique, étape 2
Construction du boîtier électronique, étape 2
Construction du boîtier électronique, étape 2
Construction du boîtier électronique, étape 2

Maintenant, nous ajoutons les boutons et le potentiomètre, et assemblons le tout.

Étape 1: boutons et boulons

Dévissez les écrous hexagonaux de vos boutons et potentiomètre. Il devrait y avoir un dispositif de bague de préhension sous l'écrou, laissez-le en place.

Insérez chacun des composants dans son trou respectif, puis revissez les écrous pour les fixer en place. Serrez les écrous au point où vous êtes sûr que chaque composant est complètement sécurisé.

Étape 2. Cou flexible

Insérez le cou flexible dans le trou en haut de la pièce incurvée. Collez à chaud ou soudez (si vous avez l'équipement) le col solidement en place.

Si vous utilisez de la colle chaude comme moi, il est conseillé de la coller avec beaucoup de colle des deux côtés répartie sur une grande surface pour éviter que la colle ne se décolle plus tard.

Étape 3: Assemblage de la coque (ne s'applique pas à la coque imprimée en 3D)

À l'aide d'une baguette à souder ou de colle chaude, fixez les plaques avant et arrière à leurs emplacements respectifs sur le couvercle arqué. Il m'a fallu quelques essais pour que ma colle adhère, et comme avant, l'astuce consiste à utiliser beaucoup de colle des deux côtés du joint, tout comme le cou. Plus la zone couverte par la colle est grande, mieux elle adhérera.

Maintenant que nous avons le shell, nous pouvons passer à l'ajout de tous les bits du circuit.

Étape 5: Ajout de l'électronique

Ajout d'électronique
Ajout d'électronique
Ajout d'électronique
Ajout d'électronique
Ajout d'électronique
Ajout d'électronique

Et voici la partie amusante: Souder ! Au cours des dernières semaines, je suis honnêtement devenu un peu fatigué de la soudure, car je l'ai fait tellement ces derniers temps pour essayer de terminer un autre projet que je devrais bientôt mettre en place (gardez un œil sur une nouvelle version radicalisée de mon affichage robotique plates-formes), ce qui m'a amené à ruiner un fer et à en obtenir un autre… Quoi qu'il en soit, il n'y a pas grand-chose à souder ici, donc cela devrait être assez simple.

Remarque: si votre Nano a déjà des en-têtes de broches dessus, je recommanderais de les dessouder pour ce projet, ils ne feront que gêner.

Il y a un schéma dans les images ci-dessus, vous pouvez le suivre si vous le souhaitez.

Étape 1: Interfacer

À partir de chacun des commutateurs, soudez un fil d'une seule broche à une broche latérale du potentiomètre. Soudez un fil de cette même broche latérale à une broche de terre sur le Nano.

Soudez un fil de la broche centrale du potentiomètre à A0 sur le Nano.

Soudez un fil de la broche non connectée de l'un des commutateurs à A1 sur le Nano.

Soudez un fil de la broche non connectée sur l'autre interrupteur à A2 sur le Nano.

Remarque: peu importe quel commutateur est lequel, vous pouvez les modifier très facilement dans le code, en plus du fait qu'un commutateur fait simplement le contraire de l'autre.

Coupez une longueur de fil de 4 pouces plus longue que le cou flexible et dénudez les deux côtés. À l'aide d'un Sharpie, marquez un côté avec une seule ligne.

Soudez un fil à la dernière broche latérale non connectée du potentiomètre, torsadez l'extrémité non connectée de ce fil avec l'extrémité non marquée du fil de la dernière sous-étape.

Soudez cette extrémité jointe à 5V sur le Nano.

Étape 2: Affichage et fils d'alimentation

Coupez 2 longueurs de fil 4 pouces plus longues que le cou flexible et dénudez les deux extrémités.

À l'aide d'un Sharpie, marquez les extrémités de chaque fil, un fil avec 2 lignes et un avec 3.

Soudez le fil avec 2 lignes à la broche numérique 9 sur le Nano.

Sur votre prise cylindrique de 5 mm, soudez un fil de la broche centrale (positive) à Vin sur le Nano.

Soudez un autre fil à une broche latérale (masse/négatif) de la prise cylindrique.

Torsadez le long fil avec 3 lignes avec le fil de la broche latérale de la prise baril.

Soudez ces fils à la broche GND ouverte sur le Nano.

Isolez les connexions avec du ruban isolant ou de la colle chaude si nécessaire.

Étape 3: Découpe des trous (uniquement sur la version en métal, si vous avez imprimé la couverture en 3D, tout devrait bien se passer)

À l'aide d'un foret et d'un X-acto ou d'un couteau utilitaire, faites soigneusement un trou sur le côté du couvercle pour le port USB du Nano.

Faites un autre trou de la taille de la face de la prise cylindrique à l'arrière du couvercle, de préférence plus près du côté opposé au trou pour le port USB.

Étape 4: Montage des composants

Faites passer les trois longs fils à travers le cou flexible et sortez de l'autre côté.

En utilisant beaucoup de colle chaude, montez le vérin à canon en place avec les broches tournées vers le haut du couvercle.

Encore une fois, en utilisant beaucoup de colle chaude, montez le Nano en place, avec le bouton de réinitialisation vers le bas et le port USB dans son emplacement. J'ai fait un "pont de colle chaude" entre le vérin à canon et le Nano, ce qui permet à chacun de maintenir l'autre fermement en place.

Nous pouvons maintenant passer à la fabrication de la base pondérée !

Étape 6: Base pondérée

Base pondérée
Base pondérée
Base pondérée
Base pondérée
Base pondérée
Base pondérée

J'ai confiance en mes compétences en soudure et j'avais bien planifié cela, alors j'ai ajouté la base avant de tester le code. Si vous avez moins confiance en vos compétences, je vous suggère de sauter cette étape et d'y revenir à la fin lorsque vous savez que tout fonctionne.

Si vous avez créé la version imprimée en 3D, vous pouvez sauter la première étape et passer à la seconde.

Étape 1: Bois

À partir d'une feuille de contreplaqué de 1/4 de pouce, coupez une base d'environ 3 pouces sur 2 pouces.

Poncer les bords pour les lisser et enlever les fraises.

Étape 2: poids

Tout d'abord, assurez-vous que le poids de votre choix, qu'il s'agisse d'un aimant, d'un métal ou d'une soudure personnalisée, s'insère dans les bords du couvercle en métal que nous avons fabriqué. Le mien était un peu gros dans un sens, alors je me suis rasé un peu sur le côté avec un couteau X-acto. Si le vôtre n'est pas du genre où vous pouvez le faire, vous devrez peut-être jouer avec une conception de base différente.

Collez à chaud votre poids au centre du morceau de contreplaqué, ou dans le cas du dessin imprimé en 3D, dans la zone centrale du "plateau" que j'ai conçue à cet effet.

Étape 3: Base

Placer le couvercle métallique sur le poids et le centrer sur la base en bois. (Dans le cas de la conception imprimée en 3D, placez-la dans les rainures préfabriquées.)

Assurez-vous que le poids n'interfère pas avec l'électronique

Utilisez de la colle chaude pour fixer la base en place. Utilisez-en suffisamment pour assurer une connexion ferme.

Maintenant que notre boîtier de commande est entièrement fabriqué, passons aux lumières.

Étape 7: Anneau Halo NeoPixel

Anneau Halo NeoPixel
Anneau Halo NeoPixel
Anneau Halo NeoPixel
Anneau Halo NeoPixel
Anneau Halo NeoPixel
Anneau Halo NeoPixel
Anneau Halo NeoPixel
Anneau Halo NeoPixel

L'inspiration pour le nom de cette lampe, cette partie est l'anneau de halo NeoPixel que nous utiliserons comme source d'éclairage. Cette pièce particulière peut être modifiée ou remplacée par n'importe quel anneau LED NeoPixel ou adressable individuellement, si vous le souhaitez.

Étape 1: Souder

Coupez une bande de NeoPixels 12 LED de longueur.

Soudez la broche GND au fil du cou flexible qui a 3 lignes.

Soudez la broche Din au fil qui a 2 lignes.

Soudez la broche 5V au fil qui a 1 ligne.

Étape 2: Testez les lumières

Téléchargez et installez la bibliothèque Adafruit_NeoPixel, et ouvrez le code "strandtest".

Remplacez le PIN constant par 9.

Modifiez la ligne où la bande est définie afin qu'elle soit configurée pour 12 LED.

Téléchargez le code sur le Nano et assurez-vous que toutes vos LED fonctionnent correctement.

Remplacez les LED défectueuses par des LED qui fonctionnent, jusqu'à ce que toute la bande fonctionne.

Étape 3: sonner

Prenez l'anneau supérieur d'une lumière "Stick and Click" et coupez tous les supports de vis sur la jante intérieure.

Coupez une petite encoche sur le bord pour les fils de la bande.

Décollez le couvercle du ruban adhésif au dos des NeoPixels (le cas échéant) et collez-les à l'intérieur de l'anneau, avec chaque extrémité de la bande à peu près à l'encoche que nous avons faite.

Utilisez de la colle chaude pour fixer fermement les bords de la bande

Une fois la colle complètement refroidie, testez à nouveau les pixels. C'est pour s'assurer que personne n'est pointilleux sur la chaleur et le curling (quelques-uns des miens l'étaient).

Étape 4: Monter

Découpez deux petits rectangles de bois 1/4 pouce, environ la hauteur de l'anneau et 1 2/3 fois plus large.

Collez-les parallèlement les uns aux autres de chaque côté des fils de l'anneau, en remplissant l'espace et en recouvrant entièrement les fils entre eux avec de la colle.

Repoussez soigneusement toute longueur de fil en excès dans le manche flexible, puis collez les morceaux de bois sur l'extrémité du manche, en utilisant beaucoup de colle et en comblant soigneusement les espaces (sans remplir le manche avec de la colle).

Étape 6: Finition

Vous pouvez peindre la bague et monter n'importe quelle couleur si vous le souhaitez, j'ai préféré la finition argentée, j'ai donc uniquement utilisé un Sharpie pour couvrir le logo qui était (ennuyeux) imprimé sur la bague. Il en va de même pour le reste de la lampe.

Nous pouvons maintenant passer à la finition du code final !

Étape 8: Codes et tests

Codes et tests
Codes et tests
Codes et tests
Codes et tests

Il ne nous reste plus qu'à programmer la lampe et la tester. Ci-joint la version actuelle du code (rev1.0), j'ai testé ce code assez largement et il fonctionne très bien. Je travaille sur une version 2.0 où les boutons sont configurés comme des interruptions externes afin que les modes puissent être plus facilement basculés, mais cette version est boguée et n'est pas encore prête à être publiée. Avec la version actuelle, vous devez maintenir le bouton enfoncé jusqu'à ce qu'il exécute la boucle Debounce et reconnaisse le changement d'état, ce qui peut être ennuyeux sur les boucles "Dynamic" plus longues. Ci-dessous le code avec quelques explications écrites (il y a les mêmes explications dans la version téléchargeable).

#include #ifdef _AVR_ #include #endif

#définir le code PIN 9

#définir POT A0 #définir BOUTON1 A1 #définir BOUTON2 A2

// Paramètre 1 = nombre de pixels dans la bande

// Paramètre 2 = numéro de broche Arduino (la plupart sont valides) // Paramètre 3 = drapeaux de type de pixel, additionnez-les au besoin: // NEO_KHZ800 800 KHz bitstream (la plupart des produits NeoPixel avec LED WS2812) // NEO_KHZ400 400 KHz (classic ' pixels FLORA v1' (pas v2), pilotes WS2811) // Les pixels NEO_GRB sont câblés pour le flux binaire GRB (la plupart des produits NeoPixel) // Les pixels NEO_RGB sont câblés pour le flux binaire RVB (pixels FLORA v1, pas v2) // Les pixels NEO_RGBW sont câblés pour Flux binaire RGBW (produits NeoPixel RGBW) Adafruit_NeoPixel halo = Adafruit_NeoPixel (12, PIN, NEO_GRB + NEO_KHZ800);

// Et maintenant, un message de sécurité de nos amis d'Adafruit:

// IMPORTANT: Pour réduire le risque d'épuisement du NeoPixel, ajoutez un condensateur de 1000 uF aux bornes

// fils d'alimentation de pixel, ajoutez une résistance de 300 à 500 ohms sur l'entrée de données du premier pixel // et minimisez la distance entre Arduino et le premier pixel. Évitez de connecter // sur un circuit sous tension… si vous le devez, connectez d'abord GND.

// Variables

int buttonState1; int buttonState2; // la lecture actuelle de la broche d'entrée int lastButtonState1 = LOW; // la lecture précédente de la broche d'entrée int lastButtonState2 = LOW; mode entier; //le mode de nos lumières, peut être l'un des 16 paramètres (0 à 15) int brightVal = 0; // la luminosité/vitesse, telle que définie par le potentiomètre

// les variables suivantes sont longues car le temps, mesuré en millisecondes, // deviendra rapidement un nombre plus grand que ce qui peut être stocké dans un int. long lastDebounceTime = 0; // la dernière fois que la broche de sortie a été basculée long debounceDelay = 50; // le temps de rebond; augmenter si la sortie scintille

anti-rebond (){

// lit l'état du commutateur dans une variable locale: int lecture1 = digitalRead(BUTTON1); int lecture2 = digitalRead(BUTTON2); // Si l'un des boutons a changé, à cause du bruit ou de l'appui: if (reading1 != lastButtonState1 || reading2 != lastButtonState2) { // réinitialiser le temporisateur anti-rebond lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { // si l'état du bouton a définitivement changé en raison de l'appui/relâchement: if (reading1 != buttonState1) { buttonState1 = read1; //définissez-le comme la lecture s'il est modifié if (buttonState1 == LOW) { //ceux-ci sont définis comme mode de commutateurs bas actifs ++; if (mode == 16){ mode = 0; } } } if (reading2 != buttonState2){ buttonState2 = read2; if (buttonState2 == LOW){ mode = mode - 1; si (mode == -1){ mode = 15; } } } } // enregistre la lecture pour la prochaine fois dans la boucle lastButtonState1 = read1; lastButtonState2 = lecture2; }

void getBright(){ //notre code pour lire le potentiomètre, donne une valeur entre 0 et 255. Utilisé pour régler la luminosité dans certains modes et la vitesse dans d'autres.

int potVal = analogRead(POT); BrightVal = map(potVal, 0, 1023, 0, 255); }

//Voici nos modes de couleurs. Certains d'entre eux sont dérivés de l'exemple de strandtest, d'autres sont originaux.

// Remplir les points les uns après les autres avec une couleur (colorwipe, dérivé de strandtest)

void colorWipe(uint32_t c, uint8_t wait) { for(uint16_t i=0; je

//fonctions arc-en-ciel (également dérivées de strandtest)

void arc-en-ciel (uint8_t wait) {

uint16_t i, j;

pour(j=0; j<256; j++) { pour(i=0; je

// Légèrement différent, cela rend l'arc-en-ciel également réparti

void rainbowCycle(uint8_t wait) { uint16_t i, j;

for(j=0; j<256*5; j++) { // 5 cycles de toutes les couleurs sur la roue for(i=0; i< halo.numPixels(); i++) { halo.setPixelColor(i, Wheel(((i * 256 / halo.numPixels()) + j) & 255)); } halo.show(); retarder (attendre); } }

// Saisissez une valeur de 0 à 255 pour obtenir une valeur de couleur.

// Les couleurs sont une transition r - g - b - retour à r. uint32_t Wheel(byte WheelPos) { WheelPos = 255 - WheelPos; if(WheelPos < 85) { return halo. Color(255 - WheelPos * 3, 0, WheelPos * 3); } if(WheelPos < 170) { WheelPos -= 85; return halo. Color(0, WheelPos * 3, 255 - WheelPos * 3); } RouePos -= 170; return halo. Color(WheelPos * 3, 255 - WheelPos * 3, 0); }

void setup() {

// Ceci est pour Trinket 5V 16MHz, vous pouvez supprimer ces trois lignes si vous n'utilisez pas de Trinket #if défini (_AVR_ATtiny85_) if (F_CPU == 16000000) clock_prescale_set(clock_div_1); #endif // Fin du code spécial de bibelot pinMode(POT, INPUT); pinMode(BUTTON1, INPUT_PULLUP); pinMode(BUTTON2, INPUT_PULLUP); pinMode(PIN, SORTIE); Serial.begin(9600); //débogage des trucs halo.begin(); halo.show(); // Initialiser tous les pixels sur 'off' }

boucle vide() {

debounce();

//Série.println(mode); //plus de débogage //Serial.println(lastButtonState1); //Série.println(lastButtonState2);

si (mode == 0){

getBright(); for (int i = 0; i < halo.numPixels(); i++){ halo.setPixelColor(i, halo. Color(brightVal, brightVal, brightVal)); //définit tous les pixels sur blanc } halo.show(); }; if (mode == 1){ getBright(); for (int i = 0; i < halo.numPixels(); i++){ halo.setPixelColor(i, halo. Color(brightVal, 0, 0)); // met tous les pixels en rouge } halo.show(); }; if (mode == 2){ getBright(); for (int i = 0; i < halo.numPixels(); i++){ halo.setPixelColor(i, halo. Color(0, brightVal, 0)); // met tous les pixels en vert } halo.show(); }; if (mode == 3){ getBright(); for (int i = 0; i < halo.numPixels(); i++){ halo.setPixelColor(i, halo. Color(0, 0, brightVal)); // met tous les pixels en bleu } halo.show(); }; if (mode == 4){ getBright(); for (int i = 0; i < halo.numPixels(); i++){ halo.setPixelColor(i, halo. Color(0, brightVal, brightVal)); // définit tous les pixels sur cyan } halo.show(); }; if (mode == 5){ getBright(); for (int i = 0; i < halo.numPixels(); i++){ halo.setPixelColor(i, halo. Color(brightVal, 0, brightVal)); // définit tous les pixels sur violet/magenta } halo.show(); }; if (mode == 6){ getBright(); for (int i = 0; i < halo.numPixels(); i++){ halo.setPixelColor(i, halo. Color(brightVal, brightVal, 0)); // définit tous les pixels sur orange/jaune } halo.show(); }; if (mode == 7){ //maintenant les modes dynamiques getBright(); colorWipe(halo. Color(brightVal, 0, 0), 50); // Rouge }; if (mode == 8){ getBright(); colorWipe(halo. Color(0, BrightVal, 0), 50); // Vert }; if (mode == 9){ getBright(); colorWipe(halo. Color(0, 0, BrightVal), 50); // Bleu }; if (mode == 10){ getBright(); colorWipe(halo. Color(brightVal, brightVal, brightVal), 50); // blanche }; if (mode == 11){ getBright(); colorWipe(halo. Color(brightVal, brightVal, 0), 50); // Orange jaune }; if (mode == 12){ getBright(); colorWipe(halo. Color(0, BrightVal, BrightVal), 50); // cyan }; if (mode == 13){ getBright(); colorWipe(halo. Color(brightVal, 0, brightVal), 50); // violet/magenta }; if (mode == 14){ // les deux derniers sont le contrôle de la vitesse, car la luminosité est dynamique getBright(); arc-en-ciel(brightVal); }; if (mode == 15){ getBright(); arc-en-ciel(vallumineux); }; retard(10); //laisser un peu de repos au processeur }

Étape 9: La grande finale

La grande finale
La grande finale

Et maintenant, nous avons une petite lampe fantastique et super lumineuse !

Vous pouvez le modifier davantage à partir d'ici, ou le laisser tel quel. Vous pouvez changer le code, ou même en écrire un nouveau entièrement. Vous pouvez agrandir la base et ajouter des piles. Vous pouvez ajouter un ventilateur. Vous pouvez ajouter plus de NeoPixels. La liste de tout ce que vous pourriez faire avec cela est presque infinie. Je dis "presque" parce que je suis presque sûr que nous n'avons toujours pas la technologie pour le convertir en un mini générateur de portail (malheureusement), mais à part des choses comme ça, la seule limite est votre imagination (et dans une certaine mesure, comme je l'ai trouvé récemment, les outils dans votre atelier). Mais si vous n'avez pas les outils, ne vous laissez pas arrêter, si vous voulez vraiment faire quelque chose, il y a toujours un moyen.

Cela fait partie du but de ce projet, de me prouver (et dans une moindre mesure, au monde) que je peux fabriquer des trucs utiles que d'autres aimeraient aussi, même si tout ce que j'ai est un véritable tas de déchets anciens et mis au rebut composants et un bac de fournitures Arduino.

Je vais m'arrêter ici, car je pense que celui-ci s'est plutôt bien passé. Si vous avez une suggestion d'amélioration, ou une question sur mes méthodes, veuillez laisser un commentaire ci-dessous. Si vous l'avez fait, prenez une photo, nous voulons tous la voir !

N'oubliez pas de voter si vous aimez ça !

Comme toujours, ce sont les projets de Dangerously Explosive, sa mission de longue date, « Construire avec audace ce que vous voulez construire, et plus encore ! »

Vous pouvez retrouver le reste de mes projets ici.

Merci d'avoir lu, et bonne fabrication !

Conseillé: