Hoe maak je een pulserende Arduino LED-kubus die eruit ziet alsof hij uit de toekomst is gekomen

Als je met enkele Arduino-beginnersprojecten hebt gewerkt, maar op zoek bent naar iets een beetje permanent en op een heel ander niveau van geweldig, dan is de eenvoudige 4 x 4 x 4 LED-kubus een logische keuze. De bouw is veel eenvoudiger dan je zou denken, en met behulp van multiplexing kunnen we alle LED's rechtstreeks aansturen vanaf slechts één Arduino Uno-bord.

Als je met enkele Arduino-beginnersprojecten hebt gewerkt, maar op zoek bent naar iets een beetje permanent en op een heel ander niveau van geweldig, dan is de eenvoudige 4 x 4 x 4 LED-kubus een logische keuze.  De bouw is veel eenvoudiger dan je zou denken, en met behulp van multiplexing kunnen we alle LED's rechtstreeks aansturen vanaf slechts één Arduino Uno-bord.
Advertentie

Arduino frequentie geleid Als je met enkele Arduino-beginnersprojecten hebt gewerkt, maar op zoek bent naar iets een beetje permanent en op een heel ander niveau van geweldig, dan is de eenvoudige 4 x 4 x 4 LED-kubus een logische keuze. De bouw is veel eenvoudiger dan je zou denken, en met behulp van multiplexing kunnen we alle LED's rechtstreeks aansturen vanaf slechts één Arduino Uno-bord. Het is een geweldige manier van solderen en de totale kosten van componenten mogen niet hoger zijn dan ongeveer $ 40.

Vandaag zal ik de constructiekant van de dingen uitvoerig beschrijven en een aantal software aanbieden om erop te draaien die er indrukwekkend uitziet en je de basis leert.

Je zal nodig hebben

  • Een Arduino. De meegeleverde code gaat uit van een Arduino Uno, maar kan ook worden aangepast aan een groter model.
  • 64 LED's - de exacte keuze is aan u, maar ik heb deze super heldere 3 mm blauwe LED's ( 3, 2 v 30 mA ) @ £ 2, 64 voor 50 gebruikt.
  • 16 Weerstanden met de juiste waarde voor uw LED's. Voor de LED's hierboven heeft 99 pence er 100 gekocht. Gebruik ledcalc.com - voer 5v in voor de voedingsspanning, de spanning van de LED's (in mijn geval 3.2) en de stroom in milliampères (3.2). De gewenste weerstand wordt weergegeven in het vak met het label 'Dichtstbijzijnde hogere nominale weerstand' en zoekt vervolgens naar die waarde op eBay.
  • Wat ambachtdraad om de basisstructuur en de decoratie te versterken - ik gebruikte een dikte van 0.8 mm.
  • Een prototypingboard van een soort waar je al je bits op kunt solderen. Ik heb er een gebruikt die geen volledige sporen had, omdat ik geen rupsmes heb, maar gebruik wat je het beste uitkomt. Een prototype van een Arduino-schild is echter een beetje te klein, tenzij je je LED's echt samen knijpt.
  • Willekeurige componentdraad - sommige netwerkkabelstrengen en sommige prototypedraden van een uitrusting zullen prima werken.
  • Krokodilklemmen of "helpende handen" zijn handig om bits op hun plaats te houden.
  • Soldeerbout en soldeer.
  • Sommige sloophout.
  • Een boormachine met hetzelfde bit als uw LED's.

Opmerking: de 3D-tekeningen in deze zelfstudie zijn in enkele minuten gemaakt met behulp van TinkerCAD. Ik volgde een bestaande build gedetailleerd op Instructables door gebruiker forte1994, die je misschien ook wilt lezen voordat je dit probeert.

Zorg ervoor dat u eerst deze instructies doorleest voordat u dit voor uzelf probeert.

Het principe van dit ontwerp

Voordat u met de bouw begint, is het belangrijk om een ​​compleet overzicht te hebben van hoe dit ding gaat werken, zodat u kunt improviseren en fouten kunt herkennen terwijl u verder gaat. Sommige LED-kubussen gebruiken een enkele uitgangspen voor elke LED - maar in een 4x4x4-kubus, die 64 pennen nodig heeft, die we zeker niet op een Arduino Uno hebben. Een oplossing zou zijn om schuifregisters te gebruiken Arduino Programmeren - Spelen met Shift Registers (ook bekend als Nog More LED's) Arduino Programmeren - Spelen met Shift Registers (ook bekend als Nog More LED's) Vandaag zal ik proberen je een beetje meer over Shift Registers te leren. Dit is een vrij belangrijk onderdeel van Arduino-programmering, voornamelijk omdat ze het aantal uitgangen dat u kunt gebruiken, uitbreiden in ruil voor ... Lees meer, maar dit is onnodig gecompliceerd.

Om al die LED's in slechts 20 pinnen te kunnen bedienen, gebruiken we een techniek die multiplexen heet. Door de kubus in 4 afzonderlijke lagen te breken, hebben we alleen controlepennen nodig voor 16 LED's - dus om een ​​specifieke LED te verlichten, moeten we zowel de laag als de controlepen activeren, waardoor we een totale behoefte van 16 + 4 pinnen hebben. Elke laag heeft een gemeenschappelijke kathode - het negatieve deel van het circuit - dus alle negatieve benen zijn samengevoegd en verbonden met een enkele pen voor die laag.

Aan de anode (positieve) zijde zal elke LED worden verbonden met de overeenkomstige LED in de laag erboven en eronder. In wezen hebben we 16 kolommen van de positieve benen en 4 lagen van het negatief. Hier zijn enkele 3D-weergaven van de verbindingen om u te helpen begrijpen:

Arduino frequentie geleid

arduino led-lichtprogramma

Bouw

Omdat we geen volledige metalen structuur gebruiken om op te solderen, willen we dat alle benen van de LED's ongeveer een kwart overlappen en de structuur stijfheid geven. Vouw de kathode van je LED's - de kant met de platte inkeping in de kop en de kortere poot - om, zoals weergegeven in het diagram. (Het maakt niet echt uit of je het naar links of rechts buigt, zolang je maar consistent bent en de anode nooit raakt)

arduino led-lichtprogramma

Het eerste cruciale onderdeel van dit project is het maken van een houten mal. Dit zal een laag LED's bevatten terwijl je de benen aan elkaar soldeert, dus het moet nauwkeurig zijn en niet te los. Gebruik dezelfde boor van dezelfde maat als uw LED's, meet en boor vervolgens een 4 × 4 matrix van op gelijke afstand liggende gaten. Houd in gedachten dat u ongeveer een kwart van het been wilt laten overlappen met zijn buurman en een echte liniaal wilt gebruiken. Controleer elke opening om er zeker van te zijn dat een LED precies past, maar niet zo strak dat u deze er niet weer uit kunt halen, anders krijgt u problemen bij het verwijderen van een volledig gesoldeerde laag.

arduino led-lichtprogramma

Soldeer de kathodes van 4 rijen LED's. Zorg ervoor dat de LED's niet doorbranden - u wilt een goed heet strijkijzer en in en uit zijn. Hier zijn mijn eerste vier rijen voltooid.

Arduino geleid

Nu, om de stijfheid van de laag te versterken, knipt u twee rechte stukken draad aan beide uiteinden en soldeert u deze, zodat u zeker weet dat ze verbinding maken met elke rij. Dit is je eerste laag compleet. Laat voorlopig alle overtollige poten aan de zijkant uitsteken.

Nu zou een goed moment zijn om te testen - laad gewoon de standaard Arduino-knipperapp in, en met een aangesloten weerstand, plaats je de grond in het laagframe en druk je de positieve afleiding naar elke led om de beurt.

Arduino geleid

Hopelijk zullen ze allemaal oplichten. Als dat niet het geval is, zorg er dan voor dat u niet zomaar een soldeerverbinding hebt gemist en vervang de LED indien nodig.

Verwijder die laag uit de mal en herhaal het proces nog 3 keer .

Maakt u zich geen zorgen als uw soldeer niet perfect is - zolang het niet zal breken en de verbinding solide is, heeft het geen invloed op het eindproduct. Ik geef toe, mijn solderen was behoorlijk hopeloos, mijn mal was uitgeschakeld en het leek allemaal op de scheve toren van Pisa. Toch ben ik trots op de voltooide kubus, en wanneer de LED's branden, ga je toch niet naar de soldeerverbindingen kijken!

Lagen samenvoegen

Zodra je 4 voltooide lagen hebt, wil je alle verticale benen samenvoegen. Ik vond dit het moeilijkste deel van de build, en om het proces te vergemakkelijken heb ik een riser uit de kaart gesneden.

Arduino geleid

Dit hield de lagen op de juiste hoogte, maar veel van de benen zouden nog steeds niet perfect uitlijnen - hiervoor gebruikte ik een aantal krokodillenklemmen om ze op hun plaats te houden.

Hoe maak je een pulserende Arduino LED-kubus die eruit ziet alsof het uit de toekomst is gekomen veilige veritcal poten met krokodil clips

1e dwaze fout te vermijden

Pas na het voltooien van een volledige laag realiseerde ik me dat mijn kaartstijgertje op zijn plaats zat, dus ik moest het eruit knippen! Maak niet dezelfde fout die ik heb gemaakt - maak de uitbreidingskaart langer aan de zijkant en voeg de stukjes kaart toe aan de buitenkant van de kubus, dus wanneer je de laag hebt voltooid, kun je de uitbreidingskaart deconstrueren en de kaart eruit trekken.

Hoe maak je een pulserende Arduino LED-kubus die eruit ziet alsof het uit de toekomst kaart-jiglaag 3 kwam

2e dwaze fout te vermijden

Soldeer de verticale poot niet aan het kathodeframe, uiteraard. Verticale benen mogen alleen worden verbonden met andere verticale benen en niets anders.

Nogmaals, test nadat elke laag is bevestigd. Test alle lagen, in feite alleen de positieve draad aanraken tot de punt van de bovenste laag, waardoor u verzekerd bent van goed contact door alle lagen heen.

Toen alle 4 lagen aan elkaar waren gesoldeerd, ging ik een beetje opruimen - ik liet een enkel been uit een laag uitsteken op een soort stapsteen-manier - dit zou later op het bord worden neergelaten. Andere vreemde stukjes metalen frame en poten werden afgesneden. Snijd duidelijk geen van de verticale poten - we moeten deze in ons protoytspanbord plaatsen.

Hoe maak je een pulserende Arduino LED-kubus die eruit ziet alsof hij uit de toekomst is gekomen 4 lagen compleet en afgeserveerd

Vaststelling aan het bestuur

Weet je nog toen ik zei dat het moeilijk was om elke laag op zichzelf te zetten? Ik loog. Proberen om 16 LED-poten in kleine gaatjes op een prototypingbord te plaatsen is eigenlijk moeilijker. De makkelijkste manier om te vinden was om per 4 door te steken, ze vast te zetten met krokodilleklemmen en dan door te gaan naar de volgende rij van 4. Gebruik een markeerpen om afstand vooraf te markeren als dit helpt.

Hoe maak je een pulserende Arduino LED-kubus die eruit ziet alsof hij uit de toekomst is gekomen en in het protoboard is bevestigd

Achteraf gezien had ik de weerstanden als eerste in het protoboard geplaatst. Zoals het is, heb ik eerst alle poten van de kubus in het bord gesoldeerd en vervolgens geprobeerd de weerstanden voorzichtig tussen beide te knijpen. Leer van mijn fout en plaats eerst je weerstanden.

Ik probeerde ze gelijkmatig op een afstand te plaatsen, zodat ik een hele zijkant van de kubus kon gebruiken voor alle laatste verbindingen met de Arduino. Dit is het schema waarmee ik ging:

Hoe maak je een pulserende Arduino LED-kubus die eruit ziet alsof hij uit het onderbouwschema van de toekomst stamt

Voor de vier negatieve lagen liet ik een enkele draad uit elke laag vallen en trok ze vervolgens opzij, zoals deze:

Hoe maak je een pulserende Arduino LED-kubus die eruit ziet alsof het uit de toekomst kwam van toptrapkathodes

Uiteindelijk heb ik een aantal stekkers toegevoegd die ik vervolgens in de betreffende Arduino-pinnen kon plaatsen. Gebruik de langste soort die je hebt. Opmerking Ik heb de bestelling op plaatsen verprutst vanwege een slechte planning. Elke rij LED's had echter een kleurcode.

Hoe maak je een pulserende Arduino LED-kubus die eruit ziet alsof hij uit de toekomst kwam aan de onderkant van de bedrading

Dat is het. Afgewerkt!

Hoe maak je een pulserende Arduino LED-kubus dat eruit ziet alsof het uit de toekomst is gekomen 4x4x4 led kubus klaar

Uw kubus programmeren

Ik weet dat je niet kunt wachten om dit ding op gang te krijgen, dus sluit de 4 negatieve lagen in analoge I / O- poorten A2 (onderste laag) via A5 (bovenste laag) (deze kunnen ook werken als digitale I / O) . Sluit vervolgens de 16 LED-controlepennen aan, te beginnen met +1 helemaal rechts naar digitale I / O- poort 0, waarbij +15 en +16 naar analoog A0 en A1 gaan . (Gebruik GEBIED en GND niet)

Arduino frequentie geleid

Download de demopatronen en code van instructable user forte1994 . Hij heeft ook een handige online tool geleverd voor het ontwerpen van de bytepatronen om je eigen volgorde aan te passen. Hier is een video van deze code in actie op mijn kubus (ik heb de snelheid aangepast naar 5, in plaats van de standaard 20) .

Dit is natuurlijk niet de enige manier om je kubus te programmeren, dus laat me een paar minuten besteden aan het leren programmeren van je eigen patronen, in plaats van het afspelen van vooraf ingestelde patronen zoals de bovenstaande demo doet.

Er zijn een paar dingen die u moet weten wanneer u probeert uw kubus te programmeren:

  1. Om een ​​enkele LED te adresseren, gebruikt u een vlak (laag) nummer 0-3 en een LED pincode 0-15. Draai het vlak naar de LAGE uitgang (omdat dit de negatieve poot is) en het LED pincode HOOG (de positieve poot) om de LED te activeren.
  2. Voordat u een enkele LED activeert, moet u ervoor zorgen dat alle andere vlakken uit zijn - dat betekent dat ze op de HOGE uitgang moeten worden ingesteld. Als u dit niet doet, zal een kolom met LED's oplichten in plaats van een enkele LED.

Met dat in gedachten heb ik twee heel eenvoudige programmatische sequenties gemaakt die je kunt bekijken - download de code hier. De eerste verlicht eenvoudig elke LED één voor één, in volgorde. We gebruiken hiervoor twee for-lussen, itererend over elke laag en elke controlepen.

De tweede is een willekeurige lus (je moet de eerste commentaar geven en dit in de hoofdlus inschakelen om het te testen). Het pakt eenvoudig een willekeurige laag en een willekeurige controlepen, die ze in- en uitschakelen.

Overzicht

Laat je niet door deze build leiden - ik heb echt geen soldeervaardigheden en ik heb dit goed gedaan (denk ik?) . De totale bouwtijd was een uur of zo per dag voor een week. De volgende keer zal ik proberen je wat meer ambitieuze programmering voor de kubus aan te leren, dus ik hoop dat je deze week met me meegaat om je eigen kubus te maken en een nieuwe code te laden - en als je er zelf een maakt geweldige apps of sequenties, upload ze naar Pastebin en laat het ons weten in de reacties!

In this article