Indholdsfortegnelse:

Arduino Fireflies: 11 trin (med billeder)
Arduino Fireflies: 11 trin (med billeder)

Video: Arduino Fireflies: 11 trin (med billeder)

Video: Arduino Fireflies: 11 trin (med billeder)
Video: VL53L1X Лазерный дистанционный датчик времени полета 400 см 2024, Juli
Anonim
Image
Image
Hvad du skal bruge
Hvad du skal bruge

En af de ting, jeg ser frem til med somre i Pennsylvania, er ildfluer i min baghave. Jeg lærte for nylig mig selv Adruino programmering med det formål at lave dette enkle projekt. Det er et godt program til at starte med og er let nok for enhver programmør, nybegynder til ekspert, at bygge, ændre og have det sjovt med på få minutter. Lad os komme igang.

Trin 1: Hvad skal du bruge

Hvad du skal bruge
Hvad du skal bruge

For at få dine fejl til at blinke skal du bruge disse komponenter:

  • Arduino. Jeg startede med Nano, men enhver Arduino-kompatibel mikro-controller vil gøre det.
  • Gule lysdioder, 5 mm. Du kan bruge op til 6 af dem.
  • Modstande. Du skal bruge en modstand pr. LED for at begrænse strømmen. Jeg brugte 470-ohm, men alt over 150 ohm burde være fint for at beskytte din mikro-controller.
  • Brødbræt.
  • Jumper wire.

For at fuldføre projektet til din baghave skal du bruge:

  • Vejrbestandig projektboks.
  • 9 volt batteri med stik. (Se noter nederst i dette afsnit.)
  • Kontakt. (Jeg valgte disse vandtætte afbrydere. Hvis du ikke bruger dette udenfor, gør enhver switch det.)
  • Et par meter ledning til at placere lysdioderne rundt i haven. Jeg brugte cirka 10 fod Cat5 Ethernet -ledning pr. LED.
  • Et lille brødbræt eller noget perf board.
  • En vejrbestandig kabelforskruning, som LED -ledningerne løber igennem. (Du kan udelade dette, hvis du ikke også bruger dette udenfor.)
  • Varmekrympeslange for at beskytte dine LED -bugskodder.
  • Grønne kroge-og-løkke (dvs. velcro) strimler til fastgørelse af LED-ildfluerne til planter og stolper i din have.
  • Hannhoveder til tilslutning af komponenter til dit lille brødbræt.

Værktøjer:

  • Bor til projektboksen. (Brug denne lejlighed til at skaffe dig en god step-bit. Du vil være glad for, at du gjorde det).
  • Varm limpistol.
  • Loddekolbe.
  • Roterende værktøj (dvs. Dremel) til udskæring af plads i projektboksen, hvis du har brug for det.

Et par noter her:

1. Batterivalget var til en hurtig og nem opstart. At bruge et 9-volts batteri permanent er en smule spild. Du er bedre til at bruge en 4x AA-batteriholder til længere levetid (men du skal bruge en større projektboks til at passe den).

2. Hvis du vælger at dekonstruere et Cat 5 Ethernet -kabel til ledningerne, skal du sørge for, at de er kobberkerne og vikle dem pænt rundt om noget PVC for at holde dem organiseret, mens du arbejder. Igen brugte jeg omkring 10 fod ledning pr LED. Hvis du vil sprede lysene vidt og bredt, skal du på alle måder bruge længere ledninger!

3. Endelig er alle de links, jeg har givet, blot forslag. Læs venligst hele denne instruktionsbog igennem, før du bygger eller køber noget, da du får en bedre forståelse af, hvordan du personligt vil gå videre.

Trin 2: Byg kredsløbet

Byg kredsløbet
Byg kredsløbet
Byg kredsløbet
Byg kredsløbet
Byg kredsløbet
Byg kredsløbet

Dette projekt bruger pulsbreddemodulationstappene på din Arduino. Mikrocontrolleren har 6 af disse stifter, og du er velkommen til at bruge så mange du vil. Kredsløbet er ret lige frem. Tilslut al strøm fra pulsbreddemodulation (PWM) benene D3, D5, D6, D9, D10 og D11 til de positive ender af dine lysdioder. Led de negative ender til modstandene og derefter til en fælles grund. (Modstandene kan gå foran eller bagved LED'en. Det gør ingen forskel, medmindre du vil beskytte mod kortslutninger i højere strømme.) Jeg inkluderede et par skemaer til at hjælpe med ledninger. (Diagrammerne blev oprettet ved hjælp af Fritzing designsoftware.)

Trin 3: Koden

Image
Image

Hvis du er en erfaren programmerer, finder du denne kode forenklet. Det er en fantastisk kode at begynde at lære med, da den introducerer dig til brugen af variabler, pinmodes, funktioner og endda en tilfældig generator. Koden er ikke så kompakt som den kan være, da jeg er sikker på, at den samme effekt kan opnås med arrays osv.

Kodekommentarerne beskriver logikken i hvert afsnit. Hele koden er integreret her, og du kan downloade skitsen herunder.

/*

Dette script blinker 6 lysdioder (naturligvis gul) i tilfældig rækkefølge med tilfældige intervaller ved hjælp af PWM. Hver LED styres af sin egen funktion. */ int led1 = 3; // LED tilsluttet PWM pin 3 osv. Jeg brugte alle 6 PWM pins. int led2 = 5; int led3 = 6; int led4 = 9; int led5 = 10; int led6 = 11; langt randnum; // randnum styrer tidsintervallet mellem blink og lang randbug; // randbug styrer, hvilken fejl der lyser. ugyldig opsætning () {pinMode (led1, OUTPUT); // Indstilling af alle PWM -ben som udgange. pinMode (led2, OUTPUT); pinMode (led3, OUTPUT); pinMode (led4, OUTPUT); pinMode (led5, OUTPUT); pinMode (led6, OUTPUT); } void loop () {randbug = random (3, 12); // randbug vælger tilfældigt en funktion, der skal udføres, // vælger således tilfældigt en fejl, der skal tændes. hvis (randbug == 3) {bug1 (); } hvis (randbug == 5) {bug2 (); } hvis (randbug == 6) {bug3 (); } hvis (randbug == 9) {bug4 (); } hvis (randbug == 10) {bug5 (); } hvis (randbug == 11) {bug6 (); }} / * * Hver af disse funktioner fungerer på samme måde. 'for sløjfer' stigning og derefter reducere * output fra denne pin for at kontrollere LED -lysstyrke. * 'randnum' er et tilfældigt tidsinterval mellem 10 og 3000 ms * og vælger et tidsinterval mellem fejlblink. * 'forsinkelse 10' er kun for fade -effekten. */ void bug1 () {randnum = random (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led1, fadeValue); forsinkelse (10); } forsinkelse (randnum); } void bug2 () {randnum = tilfældig (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led2, fadeValue); forsinkelse (10); } forsinkelse (randnum); } void bug3 () {randnum = tilfældig (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led3, fadeValue); forsinkelse (10); } forsinkelse (randnum); } void bug4 () {randnum = tilfældig (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led4, fadeValue); forsinkelse (10); } forsinkelse (randnum); } void bug5 () {randnum = tilfældig (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led5, fadeValue); forsinkelse (10); } forsinkelse (randnum); } ugyldig fejl6 () {randnum = tilfældig (10, 3000); for (int fadeValue = 0; fadeValue = 0; fadeValue -= 5) {analogWrite (led6, fadeValue); forsinkelse (10); } forsinkelse (randnum); }

Trin 4: Byg kassen

Bygger Bug Butts!
Bygger Bug Butts!

Når du har blinket din Arduino med kode og fået dine ildfluer til at fungere, som du kan lide, vil du måske sætte dem i haven; det betyder en projektboks og noget varmekrympning for at holde Arduino og lysdioder tørre. Lad os lave!

Trin 5: Byg Bug Butts

Bygger Bug Butts!
Bygger Bug Butts!
Bygger Bug Butts!
Bygger Bug Butts!
Bygger Bug Butts!
Bygger Bug Butts!
  • Trim LED'en fører til ca. 5 mm.
  • Fjern og tin enderne på de ledninger, du bruger, også ca. 5 mm.
  • Skub 1 mm varmekrympeslange over hver trådende.
  • Lodde LED'en til ledningen. (På dette tidspunkt skal du vælge, hvilken ledning i dit par der skal være din positive, og hvilken der vil være negativ. Jeg valgte den solide ledning som positiv og den hvide ledning som negativ. Bevar den strategi igennem projektet for at undgå hovedpine senere!)
  • Skub varmekrympningen op hele vejen over den blotte ledning og LED -ledninger. Kør en hurtig flamme over dem for at krympe dem til ledningerne.
  • Skub endnu et varmekrymp over LED'en og ledninger med LED -objektivet stikker enden ud og smelt det på plads.
  • Skub et par stykker varme, der krymper på tråden gennem hele længden, og smelt det på hvert par fod for at holde ledningen ryddig.

Trin 6: Forbered projektboksen

Forbered projektboksen
Forbered projektboksen
Forbered projektboksen
Forbered projektboksen
  • Brug et roterende værktøj med en slibetromle til at rense alt unødvendigt plastik i din projektboks. (Vær forsigtig med ikke at skære alle skruebeslag, du skal bruge til at sætte din kasse sammen igen.)
  • Beslut, hvor du vil have din switch til at være, og LED -ledninger skal komme ud. Jeg foreslår siderne, men brug hvad der nogensinde fungerer med dine behov.
  • Brug den passende størrelse bor til at lave huller til din kabelforskruning og switch.

Bemærk: På billedet ovenfor ser du, at jeg har lavet et "dummy -kabel". Dette er et bundt med 6 par af ledningen, jeg brugte til lysdioderne med varmekrympning til at samle dem. Jeg brugte den til at sikre, at kabelforskruningen passede fint til den faktiske kabelbundt og også til at teste boksens vandmodstand, når kontakten, kabelforskruningen og låget var tændt. (Efter at have været nedsænket i 24 timer i 6 tommer vand, havde den meget lidt fugt indeni. Jeg vil med glæde kalde denne boks "vejrbestandig.")

Trin 7: Bring kraften

Bring kraften!
Bring kraften!
Bring kraften!
Bring kraften!
  • Bestem, hvor meget batteri og kontaktledning du skal bruge for at nå din Arduino ved groft at placere alle tre komponenter i projektboksen. Trim ledningerne på kontakten og 9V batteristik. Strimler og hakker enderne. Skub lidt varmekrympning på plads til det næste trin.
  • Skær to mandlige headerstifter væk fra din strimmel (men hold dem fast).
  • Lod den røde ledning på 9V batteristikket til den ene ende af kontakten. Lod den anden ende af kontakten til en hanstik. Lod den sorte batterikabel til den anden hanstik.
  • Som vist i diagrammet ovenfor går headerstifterne ind i brødbrættet for at drive Nano'en til VIN (positiv) og GND (negativ). VIN -stiften kan klare 7 til 12 volt. Hvis du planlægger at forsyne din Arduino på en anden måde end et 9V batteri, skal du bruge en anden forsyningsnål.

Trin 8: Rediger Nano, hvis det er nødvendigt

Rediger Nano, hvis det er nødvendigt
Rediger Nano, hvis det er nødvendigt

Da min projektboks var ret lav, var jeg nødt til at fjerne ICSP -headerstifterne for at passe. Disse ben er en sekundær grænseflade med din Arduino. Fjernelse af dem skader ikke din Nano, da du altid kan indlæse scripts via USB -porten.

Bemærk: Hvis din Nano havde brug for at blive loddet på headerpinde, skal du blot udelade disse pins, når du samler din Arduino.

Trin 9: Tilslut indersiden

Image
Image
Tråd indvendigt
Tråd indvendigt
Tråd indvendigt
Tråd indvendigt
  • Fastgør kabelforskruningsporten til projektboksen i det hul, du borede til den. Hvis du er forvirret over, hvordan du bruger en kabelforskruning, viser denne video, jeg fandt på YouTube, en, der blev samlet. (spol frem til 0:57.) Din har muligvis en gummiskive. Dette går mellem projektboksen og kabelmuffens udvendige møtrik.
  • Saml de løse ender på LED -ledningerne. Brug denne tid til at trimme dem til lige længde, strimle og tynde enderne. Før enderne gennem hætten på kabelforskruningen, og brug et stykke varmekrymp til at samle enderne sammen, så der er tilstrækkelig længde til at nå brødbrættet på indersiden af kassen.
  • Før trådbundten gennem kabelforskruningsporten ind i projektboksen, og drej pakningslåget for at låse ledningerne på plads, helst omkring den varmekrymp, du plejede at samle dem sammen.
  • Adskil jordledningerne fra de positive ledninger (husk hvilke du valgte tidligere). Lod alle jordtrådene sammen til en fælles jord. Sæt en kort ledning fra den flok, og afslut den med 1 hanhoved. Brug varmekrympning til at beskytte dine bare loddefuger.
  • Lodde hanhoveder i enderne af hver positiv ledning. Brug igen varmekrympning.
  • Indsæt de positive ender -hanhoveder i brødbrættet for at oprette forbindelse til PWM -benene på Arduino.
  • Indsæt fælles grund i brødbrættet, så det passerer gennem en strømbegrænsende modstand og derefter til GND på Arduino.
  • Læg batteriet i, og sæt kontakten gennem hullet i boksen, du borede tidligere. Monter gummiskiven mellem projektboksen og skruelåget. Sæt strømledningerne i brødbrættet.
  • Snap eller skru låget på æsken. Du er færdig!

Bemærk: Bemærk i skemaerne og i udviklingsstadierne brugte jeg en strømbegrænsende modstand pr. LED. Normalt skal hver LED få sin egen modstand, da mere end én LED er tændt på én gang. Koden tillader ikke, at mere end én LED tændes ad gangen, derfor er det fint at bruge kun en modstand for at beskytte Arduino. Dette sparer også plads på det lille brødbræt eller tid, der lodder hver LED med en in-line modstand. Når det er sagt … ADVARSEL !!! Hvis du planlægger at ændre koden, så mere end én LED tændes ad gangen, skal du bruge separate modstande til hver LED.

Trin 10: Brug det

Brug det
Brug det

Brug velcrobånd eller klatter med varm lim til at fastgøre lysdioderne på planter, hegn, lyserøde flamingoer eller andet i din gård. Brug dem indeni ved at stikke dem ind i vinreoler, bag gardiner eller endda hænge ledningerne fra loftet for en 3D flydende effekt i mørket! Disse ville være et godt strejf til fester, bryllupper, film og fotografering.

Trin 11: Gå videre …

Som nævnt før er dette en tidlig version af dette projekt, men det er fuldt af så meget potentiale! Kør flere lysdioder ved at tilslutte et skiftregister (Se denne instruktion af JColvin91 for at lære hvordan.) Tilføj en lyssensor, soloplader og timer til en "sæt den og glem den" -funktion! Rod med koden for at tilføje din egen flare til fejlene. Del hvad du laver og nyd !!

OPDATERING: I de sidste to uger siden denne Instructable blev offentliggjort, har mange bidragydere foreslået strålende forbedringer af kode, hardware og udførelse af dette projekt. Jeg anbefaler kraftigt, at hvis du planlægger at bygge dette, læser du gennem kommentarerne og svarene for at få ideer til, hvordan du laver disse lynfejl på måder, jeg ikke havde planlagt. Det er i ånden med open source, at jeg glæder mig over alle ideer, der hjælper med at udvikle dette projekt til mere, end jeg troede var muligt … og jeg takker alle, der fik det til at ske.

Gå. Lave!!!

Anbefalede: