Inhoudsopgave:
- Stap 1: wat je nodig hebt
- Stap 2: Bouw het circuit
- Stap 3: De code
- Stap 4: Bouw de doos
- Stap 5: Bug Butts bouwen
- Stap 6: Bereid de projectbox voor
- Stap 7: Breng de kracht
- Stap 8: Wijzig de Nano indien nodig
- Stap 9: bedraad de binnenkant
- Stap 10: Gebruik het
- Stap 11: Verder gaan…
Video: Arduino Fireflies: 11 stappen (met afbeeldingen)
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:16
Een van de dingen waar ik naar uitkijk met zomers in Pennsylvania zijn vuurvliegjes in mijn achtertuin. Ik heb mezelf onlangs Adruino-programmering geleerd om dit eenvoudige project te maken. Het is een geweldig programma om mee te beginnen en het is gemakkelijk genoeg voor elke programmeur, van beginner tot expert, om in slechts een paar minuten te bouwen, aan te passen en er plezier mee te hebben. Laten we beginnen.
Stap 1: wat je nodig hebt
Om je bugs te laten knipperen, heb je deze componenten nodig:
- Arduino. Ik ben begonnen met de Nano, maar elke Arduino-compatibele microcontroller zal het doen.
- Gele LED's, 5 mm. Je kunt er maximaal 6 gebruiken.
- Weerstanden. Je hebt één weerstand per LED nodig om de stroom te beperken. Ik heb 470 ohm gebruikt, maar alles boven de 150 ohm zou goed moeten zijn om je microcontroller te beschermen.
- Broodplank.
- Doorverbindingsdraad.
Om het project voor je achtertuin te voltooien, heb je nodig:
- Weerbestendige projectdoos.
- 9 volt batterij met een connector. (Zie de opmerkingen onderaan dit gedeelte.)
- Schakelaar. (Ik heb voor deze waterdichte schakelaars gekozen. Als je deze niet buiten gebruikt, is elke schakelaar voldoende.)
- Een paar meter draad om de LED's rond de tuin te plaatsen. Ik gebruikte ongeveer 10 voet Cat5 Ethernet-draad per LED.
- Een klein breadboard of een perfboard.
- Een weerbestendige kabelwartel waar de LED-draden doorheen lopen. (U kunt dit weglaten als u dit ook niet buitenshuis gebruikt.)
- Krimpkous ter bescherming van je led-insectenpeuken.
- Groene klittenband (d.w.z. klittenband) om de LED-vuurvliegjes aan planten en palen in uw tuin te bevestigen.
-
Mannelijke headers voor het aansluiten van componenten op uw kleine breadboard.
Gereedschap:
- Boren voor de projectdoos. (Maak gebruik van deze gelegenheid om jezelf een mooi opstapje te geven. Je zult blij zijn dat je dat gedaan hebt).
- Heet lijmpistool.
- Soldeerbout.
- Roterend gereedschap (d.w.z. Dremel) om ruimte in de projectdoos uit te snijden als je het nodig hebt.
Een paar opmerkingen hier:
1. De batterijkeuze was voor een snelle en gemakkelijke opstart. Het permanent gebruiken van een 9-volt batterij is een beetje verspilling. Voor een langere levensduur kun je beter een 4x AA-batterijhouder gebruiken (je hebt echter wel een grotere projectdoos nodig om hem in te passen).
2. Als u ervoor kiest om een Cat 5 Ethernet-kabel voor de draden te deconstrueren, zorg er dan voor dat ze een koperen kern hebben en wikkel ze netjes om wat PVC om ze georganiseerd te houden terwijl u werkt. Nogmaals, ik gebruikte ongeveer 10 voet draad per LED. Als u de lichten wijd en zijd wilt verspreiden, gebruik dan in ieder geval langere draden!
3. Ten slotte zijn alle links die ik heb gegeven slechts suggesties. Lees deze hele Instructable door voordat u iets bouwt of koopt, omdat u een beter begrip krijgt van hoe u persoonlijk verder wilt gaan.
Stap 2: Bouw het circuit
Dit project maakt gebruik van de pulsbreedtemodulatiepinnen op uw Arduino. De microcontroller heeft 6 van deze pinnen en je mag er zoveel gebruiken als je wilt. Het circuit is vrij rechttoe rechtaan. Sluit alle stroom van de pulsbreedtemodulatie (PWM) pinnen D3, D5, D6, D9, D10 en D11 aan op de positieve uiteinden van uw LED's. Sluit de negatieve uiteinden aan op de weerstanden en vervolgens op een gemeenschappelijke aarde. (De weerstanden kunnen voor of achter de LED gaan. Het maakt niet uit, tenzij je wilt beveiligen tegen kortsluiting bij hogere stromen.) Ik heb een paar schema's toegevoegd om te helpen bij de bedrading. (De diagrammen zijn gemaakt met Fritzing-ontwerpsoftware.)
Stap 3: De code
Als je een doorgewinterde programmeur bent, zul je deze code simplistisch vinden. Het is een geweldige code om mee te beginnen, omdat het je kennis laat maken met het gebruik van variabelen, pinmodes, functies en zelfs een willekeurige generator. De code is niet zo compact als hij kan zijn, omdat ik zeker weet dat hetzelfde effect kan worden bereikt met arrays enz.
De codeopmerkingen leggen de logica van elke sectie uit. De volledige code is hier ingesloten en u kunt de onderstaande schets downloaden.
/*
Dit script knippert 6 LED's (geel, natuurlijk) in willekeurige volgorde met willekeurige tussenpozen met behulp van PWM. Elke LED wordt aangestuurd door zijn eigen functie. */ int led1 = 3; // LED aangesloten op PWM-pin 3, enz. Ik heb alle 6 PWM-pinnen gebruikt. int led2 = 5; int led3 = 6; int led4 = 9; int led5 = 10; int led6 = 11; lange randnum; // randnum regelt het tijdsinterval tussen flitsen en lange randbug; //randbug bepaalt welke bug oplicht. void setup () { pinMode (led1, OUTPUT); // Alle PWM-pinnen instellen als uitgangen. pinMode (led2, UITGANG); pinMode (led3, UITGANG); pinMode (led4, UITGANG); pinMode (led5, UITGANG); pinMode (led6, UITGANG); } void loop(){ randbug = willekeurig (3, 12); //randbug kiest willekeurig een functie om uit te voeren, // kiest dus willekeurig een bug om op te lichten. if (randbug == 3) { bug1(); } if (randbug == 5) { bug2(); } if (randbug == 6) { bug3(); } if (randbug == 9) { bug4(); } if (randbug == 10) { bug5(); } if (randbug == 11) { bug6(); } } /* * Elk van deze functies werkt op dezelfde manier. 'for loops' verhogen en verlagen * de output van die pin om de LED-helderheid te regelen. * 'randnum' is een willekeurig tijdsinterval tussen 10 en 3000 ms * en kiest een tijdsinterval tussen bugflitsen. * 'delay 10' is alleen voor het fade-effect. */ void bug1(){ randnum = willekeurig (10, 3000); for(int fadeValue = 0; fadeValue = 0; fadeValue -=5) {analogeWrite(led1, fadeValue); vertraging(10); } vertraging (randnum); } void bug2() { randnum = willekeurig (10, 3000); for(int fadeValue = 0; fadeValue = 0; fadeValue -=5) {analogeWrite(led2, fadeValue); vertraging(10); } vertraging (randnum); } void bug3() { randnum = willekeurig (10, 3000); for(int fadeValue = 0; fadeValue = 0; fadeValue -=5) {analogeWrite(led3, fadeValue); vertraging(10); } vertraging (randnum); } void bug4(){ randnum = willekeurig (10, 3000); for(int fadeValue = 0; fadeValue = 0; fadeValue -=5) {analogeWrite(led4, fadeValue); vertraging(10); } vertraging (randnum); } void bug5() { randnum = willekeurig (10, 3000); for(int fadeValue = 0; fadeValue = 0; fadeValue -=5) {analogeWrite(led5, fadeValue); vertraging(10); } vertraging (randnum); } void bug6() { randnum = willekeurig (10, 3000); for(int fadeValue = 0; fadeValue = 0; fadeValue -=5) {analogeWrite(led6, fadeValue); vertraging(10); } vertraging (randnum); }
Stap 4: Bouw de doos
Als je eenmaal je Arduino met code hebt geflitst en je vuurvliegjes hebt laten werken zoals jij dat wilt, wil je ze misschien in de tuin zetten; dat betekent een projectdoos en wat krimpkous om de Arduino en LED's droog te houden. Laten we maken!
Stap 5: Bug Butts bouwen
- Knip de LED-kabels af tot ongeveer 5 mm.
- Strip en vertin de uiteinden van de draden die u gebruikt, ook ongeveer 5 mm.
- Schuif 1 mm krimpkous over elk draaduiteinde.
- Soldeer de LED aan de draad. (Op dit punt moet u kiezen welke draad in uw paar uw positieve en welke negatief zal zijn. Ik koos de massieve draad als positief en de witte draad als negatief. Handhaaf die strategie gedurende het hele project om later hoofdpijn te voorkomen!)
- Schuif de krimpkous helemaal omhoog over de blanke draad en LED-kabels. Steek er een snelle vlam over om ze tot aan de draden te laten krimpen.
- Schuif nog een stuk krimpkous over de LED en draden met de LED-lens uit het uiteinde en smelt het op zijn plaats.
- Schuif een paar stukjes krimpkous over de hele lengte op de draad en smelt deze om de paar meter om de draad netjes te houden.
Stap 6: Bereid de projectbox voor
- Gebruik een roterend gereedschap met een schuurtrommel om al het onnodige plastic in uw projectdoos te verwijderen. (Zorg ervoor dat u geen schroefbevestigingen wegknipt die u mogelijk nodig hebt om uw doos weer in elkaar te zetten.)
- Bepaal waar u uw schakelaar wilt hebben en waar de LED-draden naar buiten moeten komen. Ik stel de zijkanten voor, maar gebruik wat ooit werkt met uw behoeften.
- Gebruik de juiste maat boor om gaten te maken voor uw kabelwartel en schakelaar.
Opmerking: in de bovenstaande foto zie je dat ik een "dummy-kabel" heb gemaakt. Dit is een bundel van 6 paar draad die ik heb gebruikt voor de LED's met krimpkous om ze samen te bundelen. Ik gebruikte het om ervoor te zorgen dat de kabelwartel mooi zou passen bij de eigenlijke kabelbundel en ook om de waterbestendigheid van de doos te testen zodra de schakelaar, kabelwartel en deksel erop zaten. (Na 24 uur ondergedompeld te zijn in 6-inch water, bevatte het heel weinig vocht binnenin. Ik zou deze doos graag "weerbestendig" noemen.)
Stap 7: Breng de kracht
- Bepaal hoeveel batterij en schakeldraad je nodig hebt om je Arduino te bereiken door alle drie de componenten ruwweg in de projectdoos te plaatsen. Knip de draden van de schakelaar en de 9V-batterijconnector af. Strip en vertin de uiteinden. Schuif wat krimpkous op zijn plaats voor de volgende stap.
- Knip twee mannelijke koppennen uit je strip (maar houd ze aan elkaar vast).
- Soldeer de rode draad van de 9V batterijconnector aan het ene uiteinde van de schakelaar. Soldeer het andere uiteinde van de schakelaar op een mannelijke header-pin. Soldeer de zwarte batterijkabel aan de andere mannelijke header-pin.
- Zoals te zien is in het bovenstaande diagram, gaan de header-pinnen in het breadboard om de Nano van stroom te voorzien op het VIN (positief) en GND (negatief). De VIN-pin kan 7 tot 12 volt aan. Als u van plan bent uw Arduino op een andere manier van stroom te voorzien dan een 9V-batterij, gebruikt u een andere voedingspin.
Stap 8: Wijzig de Nano indien nodig
Omdat mijn projectdoos vrij ondiep was, moest ik de ICSP-headerpinnen verwijderen om te passen. Deze pinnen zijn een secundaire interface met je Arduino. Als u ze verwijdert, beschadigt u uw Nano niet, omdat u scripts altijd via de USB-poort kunt laden.
Opmerking: als je Nano header-pinnen nodig had om op te worden gesoldeerd, laat deze pinnen dan gewoon weg bij het monteren van je Arduino.
Stap 9: bedraad de binnenkant
- Bevestig de kabelwartelpoort aan de projectdoos in het gat dat u ervoor hebt geboord. Als je niet zeker weet hoe je een kabelwartel moet gebruiken, deze video die ik op YouTube vond, laat zien hoe je een kabelwartel in elkaar zet. (snel vooruitspoelen naar 0:57.) De jouwe heeft misschien een rubberen ring. Deze gaat tussen de projectdoos en de buitenmoer van de kabelwartel.
- Verzamel de losse uiteinden van de LED-draden. Neem deze tijd om ze op gelijke lengte te knippen, strip en vertin de uiteinden. Voer de uiteinden door de dop van de kabelwartel en gebruik een stuk krimpkous om de uiteinden samen te bundelen, zodat er voldoende lengte overblijft om het breadboard aan de binnenkant van de doos te bereiken.
- Voer de draadbundel door de kabelwartelpoort in de projectdoos en draai de warteldop om de draden op hun plaats te vergrendelen, bij voorkeur rond de krimpkous die je hebt gebruikt om ze samen te bundelen.
- Scheid de aardingsdraden van de positieve draden (onthoud welke u eerder hebt gekozen). Soldeer alle aarddraden samen tot één gemeenschappelijke massa. Bevestig een kort draadje van dat bosje en maak het af met 1 mannelijke header. Gebruik krimpkous om uw blote soldeerverbindingen te beschermen.
- Soldeer mannelijke headers aan de uiteinden van elke positieve draad. Gebruik opnieuw krimpkous.
- Steek de positieve mannelijke headers in het breadboard om verbinding te maken met de PWM-pinnen op de Arduino.
- Steek de gemeenschappelijke aarde in het breadboard zodat deze door een stroombeperkende weerstand gaat en vervolgens naar GND op de Arduino.
- Plaats de batterij in en steek de schakelaar door het gat in de doos die je eerder hebt geboord. Monteer de rubberen ring tussen de projectdoos en de schroefdop. Steek de stroomkabels in het breadboard.
- Klik of schroef het deksel op de doos. U bent klaar!
Opmerking: in de schema's en in de ontwikkelingsfasen heb ik één stroombegrenzingsweerstand per LED gebruikt. Normaal gesproken moet elke LED zijn eigen weerstand krijgen, omdat er doorgaans meer dan één LED tegelijk brandt. De code staat niet toe dat er meer dan één LED tegelijk brandt, daarom is het prima om slechts één weerstand te gebruiken om de Arduino te beschermen. Dit bespaart ook ruimte op het kleine breadboard of tijd om elke LED met een in-line weerstand te solderen. Dat gezegd hebbende… WAARSCHUWING!!! Als u van plan bent de code te wijzigen zodat er meer dan één LED tegelijk brandt, heeft u voor elke LED afzonderlijke weerstanden nodig.
Stap 10: Gebruik het
Gebruik klittenband of klodders hete lijm om de LED's aan planten, hekken, roze flamingo's of iets anders in uw tuin te bevestigen. Gebruik ze binnen door ze in wijnrekken te stoppen, achter gordijnen of zelfs de draden aan het plafond te hangen voor een zwevend 3D-effect in het donker! Deze zouden een geweldige touch zijn voor feesten, bruiloften, film en fotografie.
Stap 11: Verder gaan…
Zoals eerder vermeld, is dit een vroege versie van dit project, maar het heeft zoveel potentieel! Voer meer LED's uit door een schakelregister aan te sluiten (zie deze instructie van JColvin91 om te leren hoe.) Voeg een lichtsensor, zonnelader en timer toe voor een "stel het in en vergeet het"-functie! Knoei met de code om je eigen flare aan de bugs toe te voegen. Deel wat je maakt en geniet!!
UPDATE: In de afgelopen twee weken sinds deze Instructable werd gepubliceerd, hebben veel bijdragers briljante verbeteringen voorgesteld aan code, hardware en uitvoering van dit project. Ik raad je ten zeerste aan als je van plan bent dit te bouwen, je de opmerkingen en antwoorden leest voor ideeën over hoe je deze blikseminsecten kunt maken op manieren die ik niet had gepland. Het is in de geest van het maken van open source dat ik alle ideeën verwelkom die helpen dit project te ontwikkelen tot meer dan ik voor mogelijk had gehouden… en ik dank iedereen die dat mogelijk heeft gemaakt.
Gaan. Maken!!!
Aanbevolen:
DIY slimme weegschaal met wekker (met wifi, ESP8266, Arduino IDE en Adafruit.io): 10 stappen (met afbeeldingen)
DIY Slimme Weegschaal Met Wekker (met Wi-Fi, ESP8266, Arduino IDE en Adafruit.io): In mijn vorige project ontwikkelde ik een slimme weegschaal met Wi-Fi. Het kan het gewicht van de gebruiker meten, het lokaal weergeven en naar de cloud sturen. U kunt hier meer informatie over krijgen op onderstaande link: https://www.instructables.com/id/Wi-Fi-Smart-Scale-wi
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino - Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter - RC Helikopter - RC-vliegtuig met Arduino: 5 stappen (met afbeeldingen)
Draadloze afstandsbediening met 2,4 GHz NRF24L01-module met Arduino | Nrf24l01 4-kanaals / 6-kanaals zenderontvanger voor quadcopter | RC Helikopter | Rc-vliegtuig met Arduino: een Rc-auto besturen | Quadcopter | Drone | RC vliegtuig | RC-boot, we hebben altijd een ontvanger en zender nodig, stel dat we voor RC QUADCOPTER een 6-kanaals zender en ontvanger nodig hebben en dat type TX en RX is te duur, dus we gaan er een maken op onze
Een computer demonteren met eenvoudige stappen en afbeeldingen: 13 stappen (met afbeeldingen) Antwoorden op al uw "Hoe?"
Een computer demonteren met eenvoudige stappen en afbeeldingen: dit is een instructie over het demonteren van een pc. De meeste basiscomponenten zijn modulair en gemakkelijk te verwijderen. Wel is het belangrijk dat je er goed over georganiseerd bent. Dit zal helpen voorkomen dat u onderdelen kwijtraakt, en ook bij het maken van de hermontage e
PCB-ontwerp met eenvoudige en gemakkelijke stappen: 30 stappen (met afbeeldingen)
PCB-ontwerp met eenvoudige en gemakkelijke stappen: HELLO VRIENDEN Het is een zeer nuttige en gemakkelijke tutorial voor diegenen die PCB-ontwerp willen leren, laten we beginnen
Fireflies synchroniseren: 7 stappen (met afbeeldingen)
Vuurvliegjes synchroniseren: Heb je jezelf ooit afgevraagd hoe honderden en duizenden vuurvliegjes zichzelf kunnen synchroniseren? Hoe werkt het, dat ze allemaal tegelijk kunnen knipperen zonder een soort baas-vuurvliegje te hebben? Dit instructable geeft een oplossing en laat zien