Ledstrips aansluiten op meerdere ingangen van arduino

Arduino specifieke Software
Berichten: 10
Geregistreerd: 15 Sep 2017, 08:18

Ledstrips aansluiten op meerdere ingangen van arduino

Berichtdoor Buddy73 » 25 Nov 2020, 18:47

Hallo,

Ik vroeg mij het volgende af: kan ik met 1 arduino (bijvoorbeeld de MEGA), meerdere ledstrips aansluiten met elk een eigen code?
Dit vroeg ik me namelijk af daar ik bezig ben met een modelspoorbaantje met huisjes. Elk huisje krijgt een klein ledstripje voor gewone verlichting te schakelen, maar wil ook een RGB ledstrip gaan gebruiken waar ik glasvezeltjes op ga zetten, die ik vervolgens aan de daken ga hangen en die worden dan afwisselend van kleur veranderd zodat je een ietwat kerstachtige huisjes krijgt met binnenverlichting.
Alleen snap ik niet zo goed hoe en of dit wel uberhaubt mogelijk is daar je overal leest over 1 ledstrip (bv de ws2812b) die je met Fastled aanstuurt.

Wie kan eens met me meedenken hierover?

Ik hoor het graag!!

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Ledstrips aansluiten op meerdere ingangen van arduino

Berichtdoor Koepel » 25 Nov 2020, 19:46

Ja, dat kan.
Maar dan heb je goede programmeerkennis nodig.
Het is eenvoudig als je slechts één bewegend patroon per keer per ledstrip doet. Volgens mij duurt het niet lang voordat je meer wilt. Als je echter meerdere ledstrips tegelijk wilt laten veranderen met een bepaald patroon, dan wordt het lastig.
Alle code voor ledstrips werkt met delay(). In de FastLED library zitten ook een aantal bewegende patronen, volgens mij werken die ook met delay().
Ik zocht nog even mijn eigen sketch op voor een ledstrip, en zelfs ik gebruik delay() :oops:
De FastLED.delay() is geen oplossing, die zorgt voor ditheren om de kleuren mooier te maken.

Om meerdere ledstrips tegelijk te kunnen gebruiken is het nodig om alle delay() uit de sketch te verwijderen en alles met millis() te doen. Daarvoor moet de hele sketch omgebouwd worden en een andere manier bedacht worden om hetzelfde patroon te krijgen. Dat vergt heel wat programmeerkennis.

Je kunt een klein (Arduino Nano) boardje voor iedere ledstrip gebruiken. Dat is wat extra gedoe met al die boardjes, maar de sketch blijft eenvoudig.
Misschien is er een library die een handige manier heeft om een bepaald patroon er in te zetten en die alles doet met millis(). Zo'n library weet ik niet :(
Er is nog een manier: Een MKR board of Arduino Zero met SAMD processor en dan de Arduino schedular zodat je meerdere taken kunt maken. Dat werkt, maar dan moet je goed weten wat je doet, omdat elke taak een eigen kleine stack heeft.

Als je niet zomaar RGB wilt, maar mooi warm wit licht dat je een andere kleurtoon kan geven, denk dan eens aan RGBWW. Ik bedoel RGB met een Warm Witte led er bij, er worden soms andere afkortingen gebruikt. Soms bedoelen ze met RGBWW vier leds waarbij een "Warm Witte" led, en soms bedoelen ze 5 leds: RGB + Warm Wit + Koud Wit. Er zijn ook ledstrips die om-en-om een RGB led en een witte led hebben.
Ik bedoel dat elk ledje van de ledstrip 4 dingen heeft: R + G + B + WarmWit. Dat ziet er heel mooi uit.

Berichten: 10
Geregistreerd: 15 Sep 2017, 08:18

Re: Ledstrips aansluiten op meerdere ingangen van arduino

Berichtdoor Buddy73 » 25 Nov 2020, 20:58

:D :arrow: Ha kijk,
ik dacht al dat dit zou moeten kunnen, maar mss heb je wel gelijk hoor en kan ik beter aparte nano's gebruiken. denk dat ik het mezelf anders veel te moeilijk ga maken.

Ga er nog eens een nachtje over slapen, maar denk dat het gewoon makkelijker is om bij onze chinese vrienden een paar Wemos te kopen....
toch fijn dat je even meedenkt.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Ledstrips aansluiten op meerdere ingangen van arduino

Berichtdoor Koepel » 26 Nov 2020, 02:57

Als je richting een Wemos ESP8266 gaat denken, dan kun je ook een ESP32 boardje kopen.

De ESP32 draait namelijk FreeRTOS, dan is het niet moeilijk om meerdere taken er bij te maken.
Dit is een voorbeeld van meerdere taken: https://github.com/copercini/esp32-iot-examples/blob/master/multiloop/multiloop.ino.
Je kunt dat zonder na te denken kopiëren.
Iedere taak heeft een eigen loop() en daar kun je doen wat je wilt met delay() en het blijft allemaal tegelijk goed werken.
Als je echter gegevens van een taak wilt overbrengen naar een andere taak, dan ga je echt gebruik maken van FreeRTOS en dan zul je er tijd in moeten investeren. Maar dan is het alsnog eenvoudiger dan communiceren tussen twee Arduino boardjes.

Koop een algemeen gangbaar ESP32 boardje met een "ESP32-WROOM-32" module.
Ik hou deze pagina er bij als ik pinnen ga gebruiken: https://randomnerdtutorials.com/esp32-pinout-reference-gpios/.

De ESP8266 draait geen FreeRTOS, dus daar is dit niet mogelijk.

Ik ben vergeten hoe het zat met een 3.3V processor die een 3.3V signaal geeft om een ledstrip aan te sturen. Kun je dat zelf uitzoeken ?

Berichten: 10
Geregistreerd: 15 Sep 2017, 08:18

Re: Ledstrips aansluiten op meerdere ingangen van arduino

Berichtdoor Buddy73 » 26 Nov 2020, 20:43

Ja heb ut gelezen, zeer interessant!!
Heb zelf een esp32 via onze chinese vrienden en die werkt idd op 3.3V maar de ledstrips kun je met een externe voeding van 5V voeden, zodat het signaal (data en/of clock) alleen via de arduino loopt.
Maar daar ga ik wel uitkomen....
Inmiddeks ook nog wat anders gevonden op modelbouwled.nl, 8 verschillende uitgangen willekeurig aansturen met een 0,5A max per uitgang.
Zit te denken om deze voor de verschillende huisjes te doen (algemene verlichting en dan een arduino met een WS2812B strip, waar op de leds meerdere glasvezeldraadjes plak, als buiten Kerstverlichting.

Dacht eerst alles via 1 arduino te doen, maar denk dat dit een makkelijkere oplossing is.

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: ehamafenu en 38 gasten