Inhoudsopgave:

Eenvoudige LED-vakantielichtshow: tovenaars in de winter - WS2812B LED-strip met FastLED en een Arduino-zelfstudie - Ajarnpa
Eenvoudige LED-vakantielichtshow: tovenaars in de winter - WS2812B LED-strip met FastLED en een Arduino-zelfstudie - Ajarnpa

Video: Eenvoudige LED-vakantielichtshow: tovenaars in de winter - WS2812B LED-strip met FastLED en een Arduino-zelfstudie - Ajarnpa

Video: Eenvoudige LED-vakantielichtshow: tovenaars in de winter - WS2812B LED-strip met FastLED en een Arduino-zelfstudie - Ajarnpa
Video: 5 SIMPLE INVENTIONS 2024, Juli-
Anonim
Image
Image

Ik heb deze feestlichtshow ontworpen en geprogrammeerd om overal weer te geven. Ik gebruikte een WS2812B ledstrip met een pixeldichtheid van 30 pixels/meter. Sinds ik 5 meter gebruikte, had ik in totaal 150 LED's. Ik heb de code eenvoudig gehouden, zodat iedereen die nieuw is in het gebruik van WS2812B LED-strips de code gemakkelijk kan volgen. Dit betekent ook dat als u verschillende hoeveelheden pixels gebruikt, de timing niet goed is, dus u moet zich houden aan 150 LED's. Om het simpel te houden, wordt het muzieksysteem helemaal niet beheerd door de Arduino. Aan het begin van het programma zijn er 3 flitsen groen en 1 flits rood, daarna begint de eigenlijke lichtshow. Aangezien u de muziek handmatig moet starten, geven deze eerste flitsen u een indicatie wanneer u met het afspelen van de muziek moet beginnen. Ik heb de onderstaande code toegevoegd. Voel je vrij om deze code aan te vullen of te wijzigen voor niet-commerciële doeleinden.

Benodigdheden

- WS2812B LED-strip

- Arduino

- Draden

- 5V 10A voeding | Als u meer dan één strip gebruikt, moet u een grotere voeding gebruiken. Elke pixel gebruikt 60mA, dus 150 pixels * 60mA = 9A. Je voeding moet dit aankunnen als je van plan bent om volledige helderheid bij wit te gebruiken. U moet een 5V-voeding gebruiken als u 5V-ledstrips gebruikt en als u 12V-ledstrips gebruikt, moet u een 12V-voeding gebruiken, maar ook een 12-5V-converter om de 5V Arduino van stroom te voorzien.

Stap 1: Download de FastLED-bibliotheek

Definieer een paar variabelen
Definieer een paar variabelen

Als je de FastLED-bibliotheek nog niet hebt gedownload, download dan de nieuwste versie van github.com/FastLED/FastLED/releases

Download de FastLED-bibliotheek en verplaats deze naar uw Arduino-bibliothekenmap. Wijzig de naam van deze map NIET. Ga in de Arduino IDE naar Sketch, Include Library en vervolgens naar Add. ZIP Library. Selecteer de FastLED-map.

Zodra uw bibliotheek is ingesteld, voegt u de regel #include toe. Deze regel vertelt het programma dat u die bibliotheek gebruikt.

Stap 2: Definieer een paar variabelen

Zoals ik eerder al zei, om de code eenvoudig te houden, zal het veranderen van het aantal pixels de timing of de lichtshow veranderen.

De regel #define NUM_LEDS 150 is waar u het aantal gebruikte pixels plaatst. In dit geval zal het 150 zijn.

De regel #define DATA_PIN 5 is waar u de digitale pin plaatst waarop u de datadraad hebt aangesloten.

De regel #define BRIGHTNESS 255 is waar u de helderheid plaatst op een schaal van 0-255, waarbij 255 de helderste is.

Stap 3: Het setup-gedeelte van de code

Het Setup-gedeelte van de code
Het Setup-gedeelte van de code

In het setup-gedeelte is er een vertraging van 2 seconden en de lijn

FastLED.addLeds(leds, NUM_LEDS).setCorrection(TypicalLEDStrip);

WS2812B gaf het type LED-strip aan dat we gebruikten en DATA_PIN is de variabele die we in een vorige stap hebben gedefinieerd. GRB is de kleurvolgorde. Dit kan variëren afhankelijk van de gebruikte ledstrip. Probeer de code zoals deze is, en als de kleuren niet hetzelfde zijn als in de video, probeer dit dan te veranderen in RGB of BRG bijvoorbeeld. U kunt de rest van deze regel hetzelfde laten. De lijnen

FastLED.setBrightness (max_bright); set_max_power_in_volts_and_milliampère (5, 8000);

beperk het stroomverbruik van de ledstrip. Dit is een geweldige functie van de FastLED-bibliotheek. Het getal 5 is de spanning die we gebruikten, en het getal 8000 is de maximale stroom die de ledstrip kan gebruiken in mA. Het wordt aanbevolen om slechts 80% van het vermogen van de voeding te gebruiken om de levensduur te verlengen. Aangezien ik een 10A voeding heb, 0,8*10 = 8A, oftewel 8000mA.

Stap 4: De lussectie | Aka, het coole deel van de code

De Loop-sectie | Aka, het coole deel van de code
De Loop-sectie | Aka, het coole deel van de code
De Loop-sectie | Aka, het coole deel van de code
De Loop-sectie | Aka, het coole deel van de code

Nu we klaar zijn met het instellen van het programma voor onze specifieke LED-strip, kunnen we beginnen met het daadwerkelijk maken van de strips. Om dit gedeelte er netjes uit te laten zien, heb ik geschreven functies gebruikt om de strips te besturen en verschillende effecten te doen. De bovenstaande afbeelding aan de linkerkant maakt deel uit van de lussectie, die de functies uitvoert. De afbeelding aan de rechterkant staat daaronder en daar heb ik geschreven wat elke functie doet.

Stap 5: Bedrading

Bedrading
Bedrading

De WS2812B LED-strips hebben aan elk uiteinde 3 aansluitingen. 2 voor stroom, en 1 voor het datasignaal afkomstig van onze Arduino. Sluit eenvoudig 2 draden aan op de stroomaansluitingen van de Arduino en sluit 2 stroomdraden aan op de LED-strip. U moet ook 2 stroomdraden, de zogenaamde stroominjectiedraden, aan het einde van de strip toevoegen, omdat spanningsverlies kan leiden tot gedimde LED's aan het einde van de strip als u dit niet doet. Controleer de labels op de strip om te zien welke terminal waarvoor is. Het verwisselen van de polariteit kan leiden tot een gebakken reep. Sluit ook de aardingsdraad van de Arduino aan op de aardingsdraad op de LED-strip om een gemeenschappelijke basis tot stand te brengen voor een betere gegevensoverdracht. Ik heb gezegd dat je stroominjectiedraden moet toevoegen, maar je KUNT dit NIET doen voor de datakabel. Dit komt omdat elke LED het datasignaal opnieuw uitzendt naar de volgende, dus zorg ervoor dat u 1 datadraad aansluit op de opgegeven Arduino-pin en de LED-strip. De strip moet een kleine pijl hebben die de richting van de gegevensoverdracht aangeeft. Zorg ervoor dat u de datasignaaldraad aan het begin plaatst en niet aan het einde. Dit mengen kan leiden tot een gebakken reep.

Stap 6: De LED-strip monteren

Ik monteerde mijn LED-strip aan de binnenkant van een raam door er simpelweg op te plakken. Er zijn echter veel andere manieren waarop u uw LED-strip kunt monteren. Je zou een aluminium kanaal zoals https://tinyurl.com/s2km4v3 kunnen gebruiken om de strips buiten op je daklijn te plaatsen. Als je je LED-strips buiten plaatst, raad ik aan om de ip65-strips te gebruiken als je een aluminium kanaal gebruikt, omdat ze semi-waterdicht zijn en dunner zijn dan de 1p67, die mogelijk niet in sommige kanalen past. Wil je deze buiten zonder kanaal monteren, gebruik dan de ip67 strips, die praktisch waterdicht zijn. Om een hoek om te gaan, zoals die op de toppen van uw daklijn, moet u idealiter de strip doorknippen en draden gebruiken om de hoek om te gaan. Je kunt misschien wegkomen door alleen de strip te buigen, maar wees op je hoede voor hoeveel je ze buigt, want het is gemakkelijk om een LED los te laten.

Aanbevolen: