Indholdsfortegnelse:

LED -ur ved hjælp af Neopixels: 4 trin (med billeder)
LED -ur ved hjælp af Neopixels: 4 trin (med billeder)

Video: LED -ur ved hjælp af Neopixels: 4 trin (med billeder)

Video: LED -ur ved hjælp af Neopixels: 4 trin (med billeder)
Video: Lesson 03: Project LED Blink Breadboard and Resistor | Robojax Arduino Step By Step Course 2024, November
Anonim
LED -ur ved hjælp af Neopixels
LED -ur ved hjælp af Neopixels
LED -ur ved hjælp af Neopixels
LED -ur ved hjælp af Neopixels
LED -ur ved hjælp af Neopixels
LED -ur ved hjælp af Neopixels
LED -ur ved hjælp af Neopixels
LED -ur ved hjælp af Neopixels

Velkommen til min instruktør om, hvordan man laver et LED -ur ved hjælp af 60 Neopixels.

Du finder 3 PDF'er vedhæftet en er til urets segmenter, en anden er til basen og endelig er en en skabelon til at hjælpe med at lime sektionerne sammen.

Så for at fuldføre dette skal du bruge følgende

  • Ring på 60 neopixel kommer i 4 kvartaler. søg efter "ws2812 ring 60" (£ 12,00)
  • RTC -søgning efter "DS3231 -modul" (2,50 £)
  • Arduino Nano (4 £)
  • 3 mm/1/8 "krydsfiner.
  • stykker tråd. forhåbentlig vil du have nogle omkring?
  • 5v USB strømforsyningsenhed. Den type dine børn vil have ødelagt stikket på.

Nedenfor er de Lipo -batteridrevne varer, men efter afprøvning brugte uret for meget strøm, så batteriet blev tabt til fordel for en net -USB -PSU.

  • DC-DC-konverter søg "boost-konverter" (£ 3)
  • Ladekreds TP4056 søg "tp4056" (£ 2)
  • LiPo 1000Mah enkeltcelle. søg efter "1000mah lipo 3,7" ELLER "503450 lipo" (8,00 £)

LiPo -nummeret er 503450, og det kan være rart at vide, at dette betyder 50 mm langt 34 mm bredt og 5,0 dybt.

Trin 1: Træbiderne

Træbidene
Træbidene
Træbidene
Træbidene
Træbidene
Træbidene

Du skal kunne se på billederne, at jeg har udskrevet designet og stukket det også af krydsfiner. Det, der måske ikke er indlysende, er, at jeg har skåret 3 sektioner ud på én gang, og den nederste sektion skæres først ud omkring omkredsen, derefter fjernes en sektion (fra bagsiden), derefter blev hullet skåret ud i de resterende to sektioner og derefter en anden sektion fjernes, så kun den forreste bit er tilbage, og derefter blev slidsen til ledningerne skåret.

Når alle bitene er skåret ud, skal du først kontrollere, hvordan de alle passer sammen og derefter lime dem alle sammen. Jeg byggede de 3 lag oven på en plan for uret for at sikre, at alt var korrekt cirkulært. Sørg også for at få de nederste bits i den korrekte retning, og den komplette midterste skive er monteret på hovedet, så du vælter over leddene.

Hullerne i de forreste sektioner tillader lodning af samlingerne i kvartererne at sidde i. Og den nederste sektion tillader ledningerne at passere igennem.

Billedserien viser også, hvordan basen er sat sammen.

Trin 2: Tilslutning af LED -ringen

Tilslutning af LED -ringen
Tilslutning af LED -ringen
Tilslutning af LED -ringen
Tilslutning af LED -ringen
Tilslutning af LED -ringen
Tilslutning af LED -ringen
Tilslutning af LED -ringen
Tilslutning af LED -ringen

Ikke meget at sige om dette trin, men bare hvis du ikke har brugt en stribe WS2812LED'er, er de intelligente, så hver enkelt har data ind og ud. I lysbuerne på 15 lysdioder håndterer printkortet alle forbindelser, men når du kommer til at deltage i sektionerne, skal du oprette strømforbindelser og data. Du kan ikke miste forbindelserne, fordi de er i en cirkel, men når du er færdig med cirklen, skal du have et link mangler på dataene IN/OUT, så du kan forbinde ledningerne til data IN. Hvor ledningerne tilsluttes dataene IN vil være den første LED eller som den er korrekt nummereret NUL.

Jeg spekulerede på, hvordan var den bedste måde at fastgøre ringen af LED'er til træringen? men i sidste ende besluttede jeg mig for at bruge truende ledning og væve omkring omkredsen og springe en LED hver gang over.

Trin 3: Tilslutning af Arduino Nano og strøm

Tilslutning af Arduino Nano og strøm
Tilslutning af Arduino Nano og strøm
Tilslutning af Arduino Nano og strøm
Tilslutning af Arduino Nano og strøm
Tilslutning af Arduino Nano og strøm
Tilslutning af Arduino Nano og strøm

Jeg besluttede oprindeligt at bruge en LiPo til dette projekt, men da jeg prøvede det, blev batteriet afladet natten over. Først troede jeg, at batteriet kunne have været duff, så jeg målte strømmen og opdagede, at kredsløbet tegnede 73mA, hvilket betyder, at det ved batteriet ville være mere. Faktisk målte jeg strømmen ved batteriet (før boost -konverteren) og opdagede, at den var over 110mA. Så det var tydeligt, at dette ur ikke ville køre på et batteri.

Så i stedet vælger jeg at bruge en 5V USB oplader. Jeg har en tendens til at have masser af døde USB -opladere rundt på grund af, at stikkene får misbrug fra to små børn.

Så fordi vi bruger WS2812 LED'er, har vi kun 3 forbindelser til Arduino Nano.

  • Strøm
  • Jord
  • Data IN. Orange til D2 på Nano

Dernæst har vi RTC, dette har kun 4 ledninger.

  • Effekt 5 volt
  • Jord
  • SCL (I2C ur) Blå til A5 på Nano
  • SDA (I2C Data) Gul til A4 på Nano

Endelig har vi brug for strøm, og dette går til 5V-terminalen på Nano. Vin er designet til at have en spænding større end 5 volt (dvs. 7-12 volt) og jorden.

Trin 4: Programmet

Jeg nyder virkelig at programmere, jeg er bare ikke særlig god til det.

Opgave 1

Sekunder og minutter er korrekt præsenteret som et tal fra 0-59. Men den første LED og dermed nul er i bunden. Så dette skulle rettes.

void correctPos (int A)

{hvis (A 30) {A = A - 31; }} temp = A; }

Opgave 2

Jeg forsøgte at rydde alle lysdioderne, før jeg viste den nye position, men det fik LED'erne til at blinke. Så jeg besluttede at tænde den næste LED og derefter slukke den forrige. Dette fungerede fint ?? NOPE, fordi hvis den nye position var nul, ville den prøve at slukke -1. så det blev behandlet på samme tid.

void deletePrevious (int B)

// slet den forrige led, hvis den var nul, // sluk 59 ellers træk bare 1 // fra og sluk for den. {if (B == 0) {strip.setPixelColor (59, 0, 0, 0); // All off} else {strip.setPixelColor (B - 1, 0, 0, 0); // alle off}}

Opgave 3

At gøre ovenstående fungerede rigtig godt, indtil den nye anden position var i stedet for det gamle minut. Hvilket betød, at det minut, der blev opdateret efter sekunderne, slukkede det! Det samme også for timen/minuttet

hvis (sek == min-1)

{strip.setPixelColor (minutter-1, 0, 30, 0); }

Opgave 4

Ting begynder at se godt ud, så lad os blande farverne, når de falder i samme position?

hvis (minutter == sek.)

{strip.setPixelColor (min., 15, 13, 0); // grøn og rød for at gøre gul. }

Opgave 5

Timerne starter som 24 timers format. så dette skal rettes først

hvis (timer> 12)

{timer = timer -12; }

Opgave 6

Og lad os ikke glemme, at der er 24 timer i døgnet, og jeg har 60 lysdioder. Let virkelig gange det med 5

timer = timer * 5;

Opgave 7

Efter at have gjort ovenstående har vi nu timen til at hoppe 4 lysdioder, det ville se meget bedre ud, hvis det brugte alle lysdioderne og korrekt viste brøkdele af en time? Igen var dette en let løsning, jeg tilføjede lige det originale minuttal divideret med 12 til timerne.

timer = timer + (addMin/12);

Opgave 8

Når timen eller minut -LED'en er i bunden, forsvinder sekunderne i et sekund før.

timer = hvis (minutter == 0)

{if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // green}} if (hours == 0) {if (secs == 59) {strip.setPixelColor (59, 0, 30, 0); // grøn}}

Opgave 9

Indstilling af tiden. Jeg besluttede at holde denne opbygning meget enkel, så der inkluderede ikke knapper til at justere tiden. Så det er bare et spørgsmål om at slutte uret til din computer og indlæse en ny tid. Du skal blot fjerne kommentaren til afsnittet herunder og indstille din nødvendige tid, og derefter indlæse programmet. Når den korrekte genkommenter linjen og sender programmet igen, ellers hvis du mister strøm, vil det genstarte opsætningen og indlæse den gamle tid igen.

// 12. april 2020 kl. 23.20 ville du ringe til:

//rtc.adjust(DateTime(2020, 4, 12, 23, 20, 0));

Anbefalede: