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

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

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 enkele 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 leds - de exacte keuze is aan jou, maar ik heb deze superscherpe 3 mm blauwe LED's (3.2v 30ma) @ £ 2,64 voor 50.
  • 16 weerstanden van 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”, zoek dan gewoon naar die waarde op eBay.
  • Sommige ambachtelijke draad om de basisstructuur en decoratie te versterken - dat gebruikte ik 0.8mm dikte.
  • EEN prototypingbord van een type waar je al je bits aan 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.
  • Krokodil clips 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 al deze instructies leest eerste voordat je dit voor jezelf 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 afzonderlijke LED - maar in een 4x4x4-kubus zou dat wel nodig zijn 64 pinnen - die we zeker niet hebben op een Arduino Uno. Een oplossing zou zijn om schuifregisters te gebruiken Arduino Programmeren - Spelen met schuifregisters (a.k.a Nog meer LED's) Arduino Programmeren - Spelen met schuifregisters (a.k.a Nog meer LED's) Vandaag zal ik proberen je iets over schuifregisters te leren. Deze zijn een vrij belangrijk onderdeel van Arduino-programmering, voornamelijk omdat ze het aantal uitgangen dat je 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 pin voor die laag.

Op de anode (positief) kant, elke LED zal worden aangesloten op de bijbehorende 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:

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 schema. (Het maakt niet echt uit of je het naar links of rechts buigt, zolang je maar consistent bent en de anode nooit raakt)

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 als uw LED's, meet en boor vervolgens een 4 × 4 matrix van op gelijke afstand 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 je hem er niet weer uit krijgt, anders krijg je problemen bij het verwijderen van een volledig gesoldeerde laag.

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.

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 geweldige tijd zijn om te testen - laad gewoon de standaard Arduino-knipperapp in, en met een aangesloten weerstand, leg je de grond op het laagframe en druk je op zijn beurt de positieve draad naar elke led.

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.

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.

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.

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.

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 passen is eigenlijk moeilijker. De makkelijkste manier was om per keer door 4 te steken, ze eronder vast te zetten met krokodilleklemmen en dan door te gaan naar de volgende rij van 4. Gebruik een markeerstift om afstand vooraf te markeren als het helpt.

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:

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

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.

Dat is het. Afgewerkt!

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 havens A2 (onderste laag) door 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, met +15 en +16 analoog worden A0 en A1. (Gebruik GEBIED en GND niet)

Download de demopatronen en code van de te instrueren gebruiker 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 niet de enige manier om je kubus te programmeren, dus laat me een paar minuten besteden aan het leren van de basisprincipes van het maken van je eigen patronen programmatisch, 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 a vlak (laag) nummer 0-3, en een LED pincode 0-15. Draai het vliegtuig naar LOW-uitgang (omdat dit het negatieve been 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 vliegtuigen uit zijn - dat betekent dat ze op HIGH-uitvoer 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 vanaf 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.

Samenvatting

Laat je niet misleiden door deze build - ik heb echt geen soldeervaardigheden en ik heb dit goed gedaan (I denk?). 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 comments!

Ontdek meer over: Arduino.