Inhoudsopgave:
- Stap 1: Lijst met materialen
- Stap 2: De pin-headers aansluiten
- Stap 3: Het WS2812 Breakout Board aansluiten op een Arduino
- Stap 4: Het laten knipperen met de Arduino IDE
- Stap 5: Een strook RGB-LED's maken
- Stap 6: In de duisternis, laat er licht zijn
Video: Beste RGB-LED's voor elk project (WS2812, ook bekend als NeoPixels) - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
Wanneer we met LED's werken, houden we er vaak van om hun status (aan/uit), helderheid en kleur te regelen. Er zijn heel veel verschillende manieren om dit aan te pakken, maar geen enkele is zo compact als de WS2812 RGB LED. In zijn kleine pakket van 5 mm x 5 mm bevat de WS2812 3 superheldere LED's (rood, groen en blauw) en een compact drivercircuit (WS2811) dat slechts één gegevensinvoer nodig heeft om de status, helderheid en kleur van de 3 LED's te regelen. Ten koste van het feit dat er slechts één datalijn nodig is om 3 LED's aan te sturen, komt er een vraag naar zeer nauwkeurige timing in de communicatie met de WS2811. Om deze reden is een realtime microcontroller (bijv. AVR, Arduino, PIC) vereist. Helaas kan een op Linux gebaseerde microcomputer of een geïnterpreteerde microcontroller zoals de Netduino of Basic Stamp niet de voldoende timingnauwkeurigheid bieden die nodig is. En dus loop ik in deze Instructable door het proces van het opzetten en besturen van een van deze LED's met een Arduino Uno. Vervolgens laat ik zien hoe gemakkelijk het is om er meerdere met elkaar te verbinden voor een geweldig lichtscherm! Moeilijkheidsgraad: BeginnerTijd tot voltooiing: 10-15 minuten
Stap 1: Lijst met materialen
Deze prachtige RGB-LED wordt geleverd in een 5050 (5 mm x 5 mm) verpakking met 6 pads die vrij eenvoudig op een breakout-bord te solderen zijn. Omdat de enige extra component die nodig is een ontkoppelingscondensator is, biedt de WS2812 eerlijk gezegd de beste oplossing voor het regelen van de kleur en helderheid van een RGB-led. De ingebouwde LED-driver met constante stroom (WS2811) is om twee redenen opmerkelijk nuttig: - Een constante stroom van ~18 mA zal elke LED aansturen, zelfs als de spanning varieert. - Het is niet nodig om stroombeperkende weerstanden (ook wel smoorweerstanden genoemd) toe te voegen tussen de voeding en de LED's. Het enige dat we nodig hebben, is een heel eenvoudig ontwerp om Power, Ground en 1 Control Input te bieden om een geweldig verlichtingsdisplay te creëren dat niet uit één, maar uit een hele reeks RGB-LED's bestaat. Klopt! Door de Data Out-pin van een van deze LED's te verbinden met de Data In-pin van een andere, kunnen we ze allebei onafhankelijk aansturen met dezelfde Control Input! Als het niet duidelijk is hoe je dit moet doen, maak je geen zorgen, aan het einde van deze Instructable ben je goed op weg om WS2812 toe te voegen aan elk project dat je wilt! Voor deze Instructable is hier wat we zullen gebruiken: Materialen: 3 x WS2812 RGB-LED's (vooraf gesoldeerd op een klein breakout-bord) 1 x Solderless Breadboard Solid Core Wire (diverse kleuren; 28 AWG) 1 x Arduino Uno R3 1 x Breakaway-pinconnector, 0,1" pitch, 8-pins mannelijk (rechthoekig) 1 x pinconnector, 0,1" pitch, 8-pins vrouwelijk (rechthoekig) 1 x breakaway-pinconnector, 0,1" pitch, 8-pins MaleTools: PC USB A/B Kabel Draadstripper Soldeerbout Opmerkingen: Afhankelijk van uw project zijn de WS2812 RGB LED's ook verkrijgbaar zonder breakout board voor ongeveer $ 0,40 per stuk, maar het gemak van de voorgesoldeerde optie is aantrekkelijk voor eenvoudige toepassingen.
Stap 2: De pin-headers aansluiten
Met alle materialen die in de vorige stap zijn genoemd, is het vrij eenvoudig om een WS2812 RGB LED te verlichten. Eerst willen we de WS2812 Breakout Boards voorbereiden om ze op het soldeerloze breadboard te plaatsen. Om dit te doen, gebruiken we een draadknipper (de meeste gangbare snijgereedschappen werken net zo goed) om elke 8-pins strip in 2 x 3-pins stukken te scheiden. Houd er rekening mee dat het maken van de snede een beetje lastig is; vaak heb ik geprobeerd de groef tussen twee mannelijke headers te gebruiken als richtlijn voor de snede, en uiteindelijk heb ik te veel plastic van een header afgeschoren die ik wilde behouden. Door de pin op te offeren waar we de snede willen maken, vermijden we het probleem helemaal. Met een tang trekken we de pin los waar we willen knippen (in dit geval de 4e en 8e pin). Nadat de pinnen zijn verwijderd, kunnen we gemakkelijk het midden van de nu lege headers doorsnijden. Deze techniek werkt even goed met de vrouwelijke kop. Na het wrikken en snijden, zouden we 6 x 3-pins headers moeten hebben, dat wil zeggen 2 x standaard en 4 x haaks (2 x mannelijk, 2 x vrouwelijk). Met behulp van een soldeerbout kunnen we nu de pinnen op de volgende manier op elk van de drie breakout-boards aansluiten. Eén bord moet de 2 x standaard headers hebben, terwijl de andere twee borden elk 1 x haakse header moeten hebben. Op het bord dat de standaard pin-headers heeft, plaatsen we de pinnen op de onderkant van het bord (de kant tegenover waar de LED is). Op de andere twee kunnen de rechthoekige koppen (één van elk geslacht) op het boven- of onderoppervlak worden geplaatst. Merk op dat het belangrijk is om consistent te zijn, van het ene bord naar het andere, over de plaatsing van de mannelijke en vrouwelijke headers. Het is handig om de opbouwcondensator te gebruiken voor het oriënteren van de borden; gebruik dit als referentie, de mannelijke header moet worden gesoldeerd aan het uiteinde dat zich het dichtst bij de condensator bevindt. Zodra de pinnen zijn gesoldeerd, zijn we klaar om een van hen aan te sluiten op de Arduino!
Stap 3: Het WS2812 Breakout Board aansluiten op een Arduino
In deze stap maken we de nodige verbindingen tussen een Arduino en een van onze WS2812 Breakout Boards. Voor dit doel gebruiken we het soldeerloze breadboard en 3 x jumperdraden. Als je een draadspoel gebruikt, is dit het moment om 3 stukken af te knippen, elk ongeveer 10 cm lang. We kunnen nu het WS2812 Breakout Board (degene met de standaard headers) over de scheidingswand van ons breadboard plaatsen. dat de Arduino is losgekoppeld van zowel een stroombron als USB, gaan we verder met het bedraden van de verbindingen. Aan de onderkant van het WS2812 Breakout Board kunnen we de naam van elke pin vinden: VCC, DI (DO), GND. dit als richtlijn gaan we verder met het verbinden van de 5V- en GND-pinnen van de Arduino met respectievelijk de VCC- en GND-pinnen van het WS2812-bord. Vervolgens verbinden we pin 8 aan de digitale kant van de Arduino met de DI-pin van het WS2812-bord, wat de middelste pin is van de kant die het dichtst bij de condensator ligt. Nu zijn we klaar om ons programma in de Arduino te laden en de WS2812 te laten knipperen!
Stap 4: Het laten knipperen met de Arduino IDE
Ik neem aan dat je de Arduino IDE al op je computer hebt geïnstalleerd --- tal van handleidingen op het web leggen het proces vrij goed uit. Het programma dat we naar onze Arduino moeten laden, kan hier worden gedownload. Nadat we eenvoudig op het primer.ino-bestand in de firmware> voorbeelden> primer-map kunnen dubbelklikken om het op de Arduino IDE te laden (wirtten voor versie 1.0.5). Het pakket bevat de benodigde bibliotheken om de code te compileren, dus er zouden geen fouten mogen zijn, plaats een opmerking als u problemen ondervindt bij het compileren. Na het selecteren van het Arduino-bordtype en de USB-poort met behulp van de menuoptie Tools, uploadt u de code en moet de WS2812 afwisselend rood, groen en blauw gaan knipperen. Het leukste aan deze WS2812 RGB-LED's is dat ze vrij eenvoudig kunnen worden 'doorgelust' om lange strips en arrays te maken die veel van deze LED's bevatten. In de volgende stap doen we dit precies met de 3 planken die we hebben voorbereid.
Stap 5: Een strook RGB-LED's maken
De ingebouwde LED-driverschakeling (WS2811) maakt het mogelijk om de ene LED naar de andere te 'daisy-chainen' met slechts 1 datalijn (!). Door de data-uitgang van de ene WS2812 te verbinden met de data-ingang van een andere, kunnen we de helderheid en kleur van een hele reeks LED's tot 500 op een Arduino regelen! Om veel LED's aan te sturen, zijn er natuurlijk enkele overwegingen van belang: - Elke pixel trekt tot 60 mA (wit bij volledige helderheid vereist dat alle LED's aan zijn, elke tekening ~20 mA). - Een Arduino zal zijn RAM maximaal benutten door 500 LED's aan te sturen met een verversingssnelheid van 30 Hz. - Om twee kaarten met elkaar te verbinden, is de aanbevolen maximale scheiding 6" om stroomstoringen en gegevensbeschadiging te voorkomen. Met deze overwegingen in het achterhoofd, kunnen we alle LED's aansturen met 24-bits kleurresolutie, met consistente helderheidsniveaus, en vrij veerkrachtig tegen veranderingen bij (kleine) veranderingen in batterijvermogen. Om de planken die we voor deze Instructable hebben voorbereid te 'daisy-chain', beginnen we door het vrouwelijke uiteinde van het ene naar het mannelijke uiteinde van het andere van de twee planken te verbinden met de rechter- hoek headers. Vervolgens, met ons Arduino-bord losgekoppeld van stroom en USB, plaatsen we het mannelijke uiteinde van de twee-board ketting op het soldeerloze breadboard. We zorgen ervoor dat de pinnen uitgelijnd zijn met die op het WS2812 Breakout Board dat was aangesloten op het breadboard Bij een dergelijke uitlijning zijn de VCC- en GND-pinnen van zowel het straight-headerbord als de ketting op dezelfde rij van het breadboard. We plaatsen de ketting met twee kaarten aan het einde van het derde Breakout-bord dat zich tegenover de condensator bevindt. EEN nadat alles is aangesloten, kunnen we de Arduino IDE opstarten en de teksteditor gebruiken om de definitie "#define NUM_LEDS 1" te wijzigen in "#define NUM_LEDS 3". Nadat we het bord weer op Power en/of USB hebben aangesloten, kunnen we het nieuwe programma uploaden… en… BAM! Alle drie de LED's zouden zo moeten knipperen!
Stap 6: In de duisternis, laat er licht zijn
Deze Instructable liet je snel zien hoe je de WS2812 RGB-LED gebruikt die vooraf op kleine breakout-borden is gesoldeerd. We gebruikten een Arduino om de helderheid en kleur van de LED's te regelen. Een ding dat enigszins teleurstellend was, is dat de code die we gebruikten ervoor zorgde dat de LED's allemaal tegelijk knipperen, met dezelfde intensiteit en kleur. Deze manier van werken vertoont niet het volledige potentieel van de 'slimme' LED-driver (WS2811) die in dit pakket is ingebouwd. Laten we daarom de volgende aanpassingen aan de originele code proberen. Zoals eerder download en pak je het bestand uit en open je vervolgens de firmware die in de Arduino moet worden geladen (firmware > effecten > effecten.ino). Alle bestanden die nodig zijn voor deze demo zijn inbegrepen, dus het is niet nodig om bibliotheken van derden toe te voegen; de code zou zonder enige wijziging moeten worden gecompileerd --- het is al ingesteld om de 3 LED's te verwerken. Nu is het aan uw verbeelding om het volgende project te bedenken waar deze zeer nuttige, compacte RGB-LED's hun licht kunnen laten schijnen. Voel je vrij om enkele van je eigen creaties te plaatsen met behulp van de WS2812 in het opmerkingengedeelte!
Aanbevolen:
Crawl Space Monitor (ook bekend als: No More Frozen Pipes!!): 12 stappen (met afbeeldingen)
Crawl Space Monitor (ook bekend als: No More Frozen Pipes!!): Water naar mijn huis komt uit mijn put via een onverwarmde kruipruimte. Al het sanitair in de keuken en badkamer loopt ook door deze ruimte. (Binnen sanitair was een bijzaak in het midden van de jaren 70 voor dit huis!) Ik heb warmtelampen gebruikt op
De taak die de Arduino-machine geeft (ook bekend als: je eigen Bop-it maken!): 5 stappen
The Task Giving Arduino Machine (aka: Making Your Own Bop-it!): Voor de studie die ik momenteel volg kreeg ik de opdracht om iets te maken met een Arduino. Ik had voor mezelf een standaarduitrusting van materialen van de school gekregen en iets bedacht dat daar omheen zou werken, met minimale buitenmat
Start een Guerrilla Drive-in (ook bekend als MobMov): 6 stappen (met afbeeldingen)
Start een Guerrilla Drive-in (ook bekend als MobMov): Heb je ooit een openluchttheater ala MobMov.org of de Santa Cruz Guerrilla Drive-in willen runnen? Deze instructable vertelt je welke apparatuur je nodig hebt en hoe je deze moet instellen. Cyberpunk stedelijk theater, hier komen we
Bureaublad weergeven in Mac Osx (ook bekend als Alles verbergen): 3 stappen
Show Desktop in Mac Osx (ook bekend als Hide All): sinds ik een mac heb, mis ik de functionaliteit van "show desktop" die Windows heeft, met zijn sneltoets: Windows-toets + D. F11 snijdt het gewoon niet en creëert rommelige randen aan de rand van het scherm. Dit is mijn doel: alle vensters verbergen met
USB-menorah (ook bekend als chanukiyah): 4 stappen
USB Menorah (AKA Chanukiyah): Dit is een kleine desktop USB-aangedreven LED Menorah. Er zijn veel kerstversieringen en gadgets op het bureaublad, maar weinig of geen Channakah-versieringen. Dit is een eenvoudige, goedkope LED-array die wordt aangedreven door een standaard USB-poort