Publicité
Vous pouvez faire toutes sortes de choses avec des LED clignotantes, et dans ce projet simple, nous allons créer un petit appareil qui éclaire les messages en l'air lorsque vous les agitez d'avant en arrière. C'est plus facile que vous ne le pensez et le coût total des pièces est inférieur à 5 $.
Ce projet utilise une illusion d'optique appelée persistance de la vision pour faire apparaître le texte dans l'air. Vous avez probablement rencontré ce phénomène lorsque quelqu'un déplace rapidement un cierge allumé la nuit. Nous utiliserons un Arduino et quelques LED pour imiter cet effet. Ce projet est simple à construire, avec peu de composants et peu de soudure (bien que si vous voulez quelques conseils pour commencer avec votre fer à souder, consultez ce guide Apprenez à souder avec ces conseils et projets simplesÊtes-vous un peu intimidé par la pensée d'un fer chaud et d'un métal en fusion? Si vous voulez commencer à travailler avec l'électronique, vous devrez apprendre à souder. Laissez-nous vous aider. Lire la suite ).
Tu auras besoin de
- Arduino (j'ai utilisé un Nano à 2 $ parce qu'il est compact et bon marché, mais tout modèle devrait convenir).
- 5x LED rouges.
- 5x Résistances 220 Ohm.
- 1 fois Support de pile 9v.
- 1x interrupteur à bascule.
- 1x morceau de protoboard.
- Un logement pour le produit fini (j'ai utilisé une petite boîte en carton peinte en noir).
Vous aurez également besoin d'un fer à souder et d'un peu de soudure pour tout assembler.
Bien que facultative, certaines mèches de soudure peuvent être très utiles au cas où vous commettriez des erreurs de soudure. Une planche à pain et des fils de raccordement sont également utiles pour tester votre circuit.
Câblage
Le câblage ne pourrait pas être plus simple. Tout d'abord, connectez votre Arduino, vos LED et vos résistances comme indiqué sur ce schéma.
Les broches D2 à D6 vont respectivement à chaque résistance, qui sont attachées à l'anode positive (jambe longue) de chaque LED. La cathode est connectée à la terre, qui se connecte à nouveau à l'Arduino. Une fois terminé, cela devrait ressembler à ceci:
C’est tout: notre circuit est terminé! Nous y ajouterons un boîtier de batterie et un interrupteur plus tard, mais c'est tout ce dont nous avons besoin pour tester si cela fonctionne.
Code
Connectez maintenant votre Arduino à l'ordinateur et ouvrez l'IDE Arduino. Si vous êtes nouveau dans l'utilisation de l'Arduino et que vous voulez un bon guide pour commencer, ce lien Débuter avec Arduino: Guide du débutantArduino est une plate-forme de prototypage électronique open source basée sur du matériel et des logiciels flexibles et faciles à utiliser. Il est destiné aux artistes, designers, amateurs et à toute personne intéressée par la création d'objets ou d'environnements interactifs. Lire la suite Sera utile.
Ouvrez une nouvelle esquisse et copiez ce code dans. Le code a été modifié de ce projet et vous pouvez le télécharger en entier à ce Gist.
// combien de temps chaque led reste allumée. int delayTime = 1; // combien de temps entre chaque int charBreak = 3; // combien de temps attendre une fois le message terminé avant qu'il ne se répète. int resetTime = 20; int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; void setup(){ pinMode (LED1, SORTIE); pinMode (LED2, SORTIE); pinMode (LED3, SORTIE); pinMode (LED4, SORTIE); pinMode (LED5, SORTIE); } int a [] = {1, 6, 26, 6, 1}; int b [] = {31, 21, 21, 10, 0}; int c2 [] = {14, 17, 17, 10, 0}; int d [] = {31, 17, 17, 14, 0}; int e [] = {31, 21, 21, 17, 0}; int f [] = {31, 20, 20, 16, 0}; int g [] = {14, 17, 19, 10, 0}; int h [] = {31, 4, 4, 4, 31}; int i [] = {0, 17, 31, 17, 0}; int j [] = {0, 17, 30, 16, 0}; int k [] = {31, 4, 10, 17, 0}; int l [] = {31, 1, 1, 1, 0}; int m [] = {31, 12, 3, 12, 31}; int n [] = {31, 12, 3, 31, 0}; int o [] = {14, 17, 17, 14, 0}; int p [] = {31, 20, 20, 8, 0}; int q [] = {14, 17, 19, 14, 2}; int r [] = {31, 20, 22, 9, 0}; int s [] = {8, 21, 21, 2, 0}; int t [] = {16, 16, 31, 16, 16}; int u [] = {30, 1, 1, 30, 0}; int v [] = {24, 6, 1, 6, 24}; int w [] = {28, 3, 12, 3, 28}; int x [] = {17, 10, 4, 10, 17}; int y [] = {17, 10, 4, 8, 16}; int z [] = {19, 21, 21, 25, 0}; int eos [] = {0, 1, 0, 0, 0}; int excl [] = {0, 29, 0, 0, 0}; int ques [] = {8, 19, 20, 8, 0}; int espace [] = {0, 0, 0, 0, 0}; void displayLine (int line) { int myline; myline = ligne; if (myline> = 16) {digitalWrite (LED1, HIGH); myline- = 16;} else {digitalWrite (LED1, LOW);} if (myline> = 8) {digitalWrite (LED2, HIGH); myline- = 8;} else {digitalWrite (LED2, LOW);} if (myline> = 4) {digitalWrite (LED3, HIGH); myline- = 4;} else {digitalWrite (LED3, LOW);} if (ma ligne> = 2) {digitalWrite (LED4, HIGH); myline- = 2;} else {digitalWrite (LED4, LOW);} if (ma ligne> = 1) {digitalWrite (LED5, HIGH); myline- = 1;} else {digitalWrite (LED5, LOW);} } void displayChar (char c) { if (c == 'a') {for (int i = 0; i <5; i ++) {displayLine (a [i]); delay (delayTime);} displayLine (0);} if (c == 'b') {for (int i = 0; i <5; i ++) {displayLine (b [i]); delay (delayTime);} displayLine (0);} if (c == 'c2') {for (int i = 0; i <5; i ++) {displayLine (c2 [i]); delay (delayTime);} displayLine (0);} if (c == 'd') {for (int i = 0; i <5; i ++) {displayLine (d [i]); delay (delayTime);} displayLine (0);} if (c == 'e') {for (int i = 0; i <5; i ++) {displayLine (e [i]); delay (delayTime);} displayLine (0);} if (c == 'f') {for (int i = 0; i <5; i ++) {displayLine (f [i]); delay (delayTime);} displayLine (0);} if (c == 'g') {for (int i = 0; i <5; i ++) {displayLine (g [i]); delay (delayTime);} displayLine (0);} if (c == 'h') {for (int i = 0; i <5; i ++) {displayLine (h [i]); delay (delayTime);} displayLine (0);} if (c == 'i') {for (int it = 0; il <5; it ++) {displayLine (i [it]); delay (delayTime);} displayLine (0);} if (c == 'j') {for (int i = 0; i <5; i ++) {displayLine (j [i]); delay (delayTime);} displayLine (0);} if (c == 'k') {for (int i = 0; i <5; i ++) {displayLine (k [i]); delay (delayTime);} displayLine (0);} if (c == 'l') {for (int i = 0; i <5; i ++) {displayLine (l [i]); delay (delayTime);} displayLine (0);} if (c == 'm') {for (int i = 0; i <5; i ++) {displayLine (m [i]); delay (delayTime);} displayLine (0);} if (c == 'n') {for (int i = 0; i <5; i ++) {displayLine (n [i]); delay (delayTime);} displayLine (0);} if (c == 'o') {for (int i = 0; i <5; i ++) {displayLine (o [i]); delay (delayTime);} displayLine (0);} if (c == 'p') {for (int i = 0; i <5; i ++) {displayLine (p [i]); delay (delayTime);} displayLine (0);} if (c == 'q') {for (int i = 0; i <5; i ++) {displayLine (q [i]); delay (delayTime);} displayLine (0);} if (c == 'r') {for (int i = 0; i <5; i ++) {displayLine (r [i]); delay (delayTime);} displayLine (0);} if (c == 's') {for (int i = 0; i <5; i ++) {displayLine (s [i]); delay (delayTime);} displayLine (0);} if (c == 't') {for (int i = 0; i <5; i ++) {displayLine (t [i]); delay (delayTime);} displayLine (0);} if (c == 'u') {for (int i = 0; i <5; i ++) {displayLine (u [i]); delay (delayTime);} displayLine (0);} if (c == 'v') {for (int i = 0; i <5; i ++) {displayLine (v [i]); delay (delayTime);} displayLine (0);} if (c == 'w') {for (int i = 0; i <5; i ++) {displayLine (w [i]); delay (delayTime);} displayLine (0);} if (c == 'x') {for (int i = 0; i <5; i ++) {displayLine (x [i]); delay (delayTime);} displayLine (0);} if (c == 'y') {for (int i = 0; i <5; i ++) {displayLine (y [i]); delay (delayTime);} displayLine (0);} if (c == 'z') {for (int i = 0; i <5; i ++) {displayLine (z [i]); delay (delayTime);} displayLine (0);} if (c == '!') {for (int i = 0; i <5; i ++) {displayLine (excl [i]); delay (delayTime);} displayLine (0);} if (c == '?') {for (int i = 0; i <5; i ++) {displayLine (ques [i]); delay (delayTime);} displayLine (0);} if (c == '.') {for (int i = 0; i <5; i ++) {displayLine (eos [i]); delay (delayTime);} displayLine (0);} if (c == '') {for (int i = 0; i <5; i ++) {displayLine (space [i]); delay (delayTime);} displayLine (0);} délai (charBreak); } void displayString (char * s) {for (int i = 0; i <= strlen (s); i ++) {displayChar (s [i]); } } void loop () {// Modifiez le texte à l'intérieur ici pour changer le texte affiché. // Assurez-vous de conserver les crochets et les guillemets. displayString (".. bonjour ..."); retard (40); }
Enregistrez le croquis et téléchargez-le sur votre tableau. Si vous obtenez des erreurs, assurez-vous que la bonne carte et le bon port de communication sont sélectionnés. Vos LED devraient commencer à clignoter. S'ils ne le font pas, vérifiez toutes vos connexions sur votre maquette. Les entiers déclarés au début du code déterminent la vitesse d'affichage du texte. Plus le nombre est élevé, plus vous aurez besoin d'agiter l'appareil rapidement. J'ai trouvé que les chiffres utilisés ici fonctionnaient bien.
Maintenant, pour faire un test rapide. Débranchez votre Arduino du câble USB et fixez votre support de batterie aux broches VIN et GND de votre Arduino
Maintenant que vous pouvez le déplacer, essayez soigneusement de faire pivoter les LED devant vous. Vous devriez voir des lettres se former dans l'air à condition qu'il fasse assez sombre autour de vous. J'ai trouvé que cela aidait à configurer mon téléphone pour capturer cela.
Ça marche! Maintenant, pour le rendre un peu plus permanent.
Des fers prêts à l'emploi!
Posez votre carte Arduino, vos résistances et vos LED sur votre protoboard comme ceci:
Vous pouvez bien sûr rendre la configuration aussi compacte que vous le souhaitez, tant que le circuit reste le même. Assurez-vous de laisser au moins une ligne de contacts de carte de contrôle de chaque côté de votre Arduino pour les composants et l'alimentation. Si vous êtes débutant en électronique, voici quelques-uns bons conseils pour vous Électronique pour débutants: 10 compétences que vous devez savoirBeaucoup d'entre nous n'ont même jamais touché un fer à souder - mais faire des choses peut être incroyablement gratifiant. Voici dix des compétences en électronique de bricolage les plus élémentaires pour vous aider à démarrer. Lire la suite .
Nous allons souder les cathodes LED ensemble en ligne pour faire un terrain commun, un peu comme nous l'avons fait lorsque nous avons fait notre Matrice LED Améliorez votre couronne de Noël avec une matrice LED activée par le mouvementCette couronne de Noël de bricolage utilise une matrice Arduino et LED pour produire un affichage lumineux étonnant qui impressionnera vos amis et votre famille. Lire la suite .
Pliez chaque cathode de sorte qu'elle chevauche la suivante et soudez-les pour créer une ligne ininterrompue. Maintenant, nous devons souder nos anodes aux jambes des résistances à côté d'eux. J'ai trouvé que la façon la plus simple de le faire était de souder chaque jambe sur leur patin respectif, puis de placer repasser entre eux pour chauffer les deux joints, avant d'ajouter enfin plus de soudure pour combler l'écart entre leur.
Vérifiez chaque connexion pour voir si elle est solidement attachée, puis utilisez des pinces coupantes pour couper les jambes en excès des résistances et des LED.
Maintenant, pour répéter cette même tâche, mais cette fois en connectant l'autre extrémité de nos résistances aux jambes de l'Arduino. C'est la partie la plus délicate de la soudure. Chaque résistance se connecte beaucoup à sa broche Arduino seule ou le circuit ne fonctionnera pas comme prévu. J'ai fait plusieurs erreurs ici et j'ai dû utiliser plusieurs fois la mèche de soudure pour éliminer la soudure indésirable.
Une fois que vous avez effectué toutes les connexions correctes, vérifiez qu'aucune d'entre elles ne chevauche avec ses voisins. Si vous avez accès à un multimètre ici, vous pouvez utiliser le mode de continuité pour vérifier que chaque broche n'a qu'une ligne ininterrompue vers sa résistance. Si vous venez de recevoir un multimètre, il existe un excellent guide de démarrage dans cet article. 7 compétences techniques de bricolage pour enseigner à vos enfants, car les écoles ne le seront pas Lire la suite
Une fois que vous avez vérifié chaque connexion, coupez la longueur excédentaire des jambes des résistances
Ajout de puissance
Maintenant, passez un morceau de fil de la broche GND de votre Arduino à un trou à côté de la fin de votre ligne de cathodes soudées et placez le fil noir de votre support de batterie à côté.
Maintenant, soudez le fil à la broche GND, de la même manière que nous l'avons fait avec les résistances, et soudez les deux fils à l'extrémité de la ligne de cathodes pour créer une masse commune pour le circuit.
Enfin, attachez un fil à la broche VIN de votre Arduino et placez votre interrupteur entre ce fil et la batterie. Toutes mes excuses pour l'interrupteur couvert de colle chaude sur cette photo, j'ai dû démonter la machine finie pour photographier cette étape!
Une fois que tout est soudé, mettez une batterie et actionnez l'interrupteur. Toutes nos félicitations! Le circuit est terminé. Si vous ne voyez rien s'allumer, vérifiez soigneusement chaque joint de soudure pour voir où il peut y avoir une rupture ou un court-circuit.
Enceinte
Maintenant que nous le faisons fonctionner, mettons-le dans une boîte. Ici, une boîte en carton peint a été utilisée, bien que vous puissiez rendre quelque chose de plus permanent en utilisant une boîte achetée dans un magasin de loisirs, ou même une vieille boîte de tupperware. Pour un crédit de geek supplémentaire, vous pouvez même imprimer le vôtre en 3D l'une de ces imprimantes 3D bon marché. 5 imprimantes 3D bon marché que vous pouvez réellement acheter aujourd'huiIl y a quelques années, même les imprimantes 3D les moins chères étaient inconfortablement proches de la barre des 1000 $ - vous pouvez désormais obtenir une imprimante 3D de qualité pour aussi peu que 400 $. Lire la suite
Découpez votre carte à dimension en la marquant et en retirant soigneusement les pièces dont vous n'avez pas besoin.
Placez votre circuit à l'intérieur de votre boîtier et marquez où les LED et le commutateur doivent traverser. Vous pouvez également éventuellement marquer l'endroit où le connecteur USB sur la carte Arduino rencontre le bord afin de pouvoir le brancher pour changer le texte sans ouvrir la boîte. Percez ou découpez les trous dont vous avez besoin dans le boîtier.
Maintenant, ajoutez un peu de colle chaude sur les bords des LED et collez-les en place. J'ai collé un morceau d'éponge sous le circuit pour qu'il repose parfaitement dans la boîte. Fixez votre interrupteur au boîtier. J'ai utilisé de la colle chaude, bien que des vis ou des boulons rendraient la connexion beaucoup plus solide. Vous pouvez également coller le support de batterie à l'arrière de la carte de circuit imprimé pour l'empêcher de se déplacer à l'intérieur lorsque l'élément est en cours d'utilisation, mais assurez-vous que les contacts métalliques sur le boîtier ne touchent aucun de vos joints de soudure!
Le travail est fait!
Fermez votre enclos et vous avez terminé! Pour modifier le texte, connectez votre câble USB à la carte Arduino et modifiez le texte à l'intérieur des supports après displayString dans le boucle méthode. Trouvez un endroit sombre et amusez-vous!
Avez-vous déjà construit une machine POV et savez-vous comment améliorer la conception? Envisagez-vous d'en construire un vous-même? Parlez-nous de votre projet dans les commentaires ci-dessous, nous serions ravis de l'entendre!
Ian Buckley est un journaliste indépendant, musicien, interprète et producteur de vidéos vivant à Berlin, en Allemagne. Quand il n'écrit pas ou sur scène, il bricole de l'électronique ou du code DIY dans l'espoir de devenir un savant fou.