Klok maken met 120 LEDS

Hi iedereen!

Ik ben nog totaal nieuw op het gebied van Arduino's, maar ik vind het supergaaf welke mogelijkheden er allemaal mee zijn. Alle meubels in huis heb ik gemaakt, het lijkt mij nu eens een uitdaging om met elektronica aan de slag te gaan. Komend weekend wil ik beginnen met het maken van een klok. Hiervoor ga ik eerst het e.e.a. zagen/frezen/timmeren.

Voor de klok wil 120 rgb leds (WS2812/13) die als één strip aan elkaar afzonderlijk aan/uit en kleur ingesteld kunnen worden.

Nou heb ik al een boodschappenlijstje qua hardware:

  • Arduino UNO Rev3
  • LEDstrip WS2812 2meter
  • Male Jumpers (uitgaan dat ik ook een deel zal moeten knippen en solderen)
  • Drukknopjes
  • USB voor PC naar Arduino

Mijn volgende vragen:

  1. Heb ik een weerstand nodig? Zo ja, waar en hoeveel ohm (op basis van 120 leds)?
  2. Kan ik 120 leds aan 1 strip koppelen aan de Arduino, of moet ik dit opdelen in tweeën? of moet ik halverwege een adapter toevoegen?
  3. Wat voor adapter heb ik nodig? En wat als ik een accu zou nemen?
  4. Vergeet ik nog wat van mijn boodschappenlijstje?

Hopelijk dat jullie mij kunnen helpen met de eerste stappen :slight_smile:

Hallo Lucas,

Wat je volgens mij zeker nodig hebt is een klok, met batterij. Ik denk bv aan deze. De link staat beneden, dit is moeilijk op een smartphone. Op die andere vragen is eigenlijk moeilijk te antwoorden maar ik zou persoonlijk voor 2 groepen van 60 leds opteren. Denk er vooral aan dat de maximale stroom die een Arduino uitgang kan leveren rond de 40mA ligt. Of je een weerstand nodig hebt hangt af van welke strip je gaat gebruiken. Ik vindt dit eigenlijk wel een leuk project. Als ik jou was zou ik zeker eens op GitHub.com kijken en een gratis account aanmaken, daar vind je werkelijk zeer veel info.
Hier is de link voor het klokje
https://banggood.app.link/YmgBOM2y52
Als je nog vragen hebt, dan hoor ik het graag.

Veel succes en plezier,

Groetjes
Mike

Hoi LucasNL, welkom.

Mike's tip over de klokmodule is een prima tip, want die modules zijn veel nauwkeuriger dan je kunt programmeren met een Arduino of een andere controller.

De WS2812 LED modules die op de strip zitten, worden maar met 1 draadje op de Arduino aangesloten.
Dus 120 LEDjes met maar 1 pinnetje.
Je kunt er ook voor gaan om het met meer pinnen te doen, maar of dat gemakkelijker en/of beter zal zijn durf ik niet te zeggen.
De strip heeft naast die data pin natuurlijk ook nog een plus en een min aansluiting voor de voeding, en als je 2 meter bestelt, dan kun je aan 2 kanten de spanning aansluiten.
Maar die strip kan best wel eens moeite krijgen om dan de middelste LED modules van voldoende stroom te voorzien, zeker wanneer die LEDs lekker fel moeten oplichten.
Daarom is het ook een goed idee om de strip door te knippen (er zullen markeringen en soldeeraansluitingen op zitten waar je dat kunt doen), en aan elke zijde die je zo krijgt de voeding aansluiten.
Als je dat gedaan hebt, kun je DI (Data In) van de 2e aansluiten op DO (Data Out) van de 1e strip wanneer je het met 1 pin van je Arduino bedient, of ieder aan een eigen pin als je voor meer pinnen kiest.

Wanneer je een aantal artikelen hebt gelezen over deze strips, dan zul je meestal vinden dat je inderdaad een weerstand zou moeten gebruiken.
Die weerstand zorgt er voor dat de signalen tussen de Arduino en je module kloppen en netjes blijven.
In dit Engelstalige onderwerp op het forum (klik !)word dat uitgelegd en zichtbaar gemaakt met 2 plaatjes.
In het linker plaatje zie je hoe de elektrische signalen er niet zo netjes meer uitzien na 30 centimeter draad (van onbekende diameter en constructie), en hoe een weerstand dat kan oplossen is dan in het rechter plaatje te zien.
Voor mij is dit een heel duidelijke indicatie om gewoon een weerstand toe te passen.

De keuze voor de Uno levert je een wat meer universele Arduino variant op, waar je shields op kunt prikken.
Maar als het alleen maar om een klok gaat, dan heb je de shields niet nodig, en kun je ook voor een veel compacter variant zoals de Arduino Nano kiezen.

Mikeb1970:
Hallo Lucas,

Wat je volgens mij zeker nodig hebt is een klok, met batterij. Ik denk bv aan deze. De link staat beneden, dit is moeilijk op een smartphone. Op die andere vragen is eigenlijk moeilijk te antwoorden maar ik zou persoonlijk voor 2 groepen van 60 leds opteren. Denk er vooral aan dat de maximale stroom die een Arduino uitgang kan leveren rond de 40mA ligt. Of je een weerstand nodig hebt hangt af van welke strip je gaat gebruiken. Ik vindt dit eigenlijk wel een leuk project. Als ik jou was zou ik zeker eens op GitHub.com kijken en een gratis account aanmaken, daar vind je werkelijk zeer veel info.
Hier is de link voor het klokje
https://banggood.app.link/YmgBOM2y52
Als je nog vragen hebt, dan hoor ik het graag.

Veel succes en plezier,

Groetjes
Mike

Dankjewel voor je tips Mike! Ik houd jullie op de hoogte van de vorderingen, lijkt mij leuk om de vooruitgang een beetje te bloggen met tussendoor wat vragen, want daar zullen er genoeg van komen ><. Die klokmodule lijkt mij idd een goede, wat betreft het coderen ed. zal de volgende fase zijn :slight_smile: Ik ben nu even benieuwd wat ik moet bestellen :slight_smile: Ik ook eens wat snuffelen op GitHub!

Digitale RGB Led Strip 60 x WS2813 - zwart, 5V, per 5 meter - Opencircuit van deze ledstrip wil ik 120 LEDS gebruiken (dubbele datalijn, is dat echt nodig? of overbodige luxe en gewoon WS2812 doen?), dit is toch gewoon ca 40-60mA? Trouwens, die maximale 40mA in je reactie, is dat geen 400?

1 Like

MAS3:
Hoi LucasNL, welkom.

Mike's tip over de klokmodule is een prima tip, want die modules zijn veel nauwkeuriger dan je kunt programmeren met een Arduino of een andere controller.

De WS2812 LED modules die op de strip zitten, worden maar met 1 draadje op de Arduino aangesloten.
Dus 120 LEDjes met maar 1 pinnetje.
Je kunt er ook voor gaan om het met meer pinnen te doen, maar of dat gemakkelijker en/of beter zal zijn durf ik niet te zeggen.
De strip heeft naast die data pin natuurlijk ook nog een plus en een min aansluiting voor de voeding, en als je 2 meter bestelt, dan kun je aan 2 kanten de spanning aansluiten.
Maar die strip kan best wel eens moeite krijgen om dan de middelste LED modules van voldoende stroom te voorzien, zeker wanneer die LEDs lekker fel moeten oplichten.
Daarom is het ook een goed idee om de strip door te knippen (er zullen markeringen en soldeeraansluitingen op zitten waar je dat kunt doen), en aan elke zijde die je zo krijgt de voeding aansluiten.
Als je dat gedaan hebt, kun je DI (Data In) van de 2e aansluiten op DO (Data Out) van de 1e strip wanneer je het met 1 pin van je Arduino bedient, of ieder aan een eigen pin als je voor meer pinnen kiest.

Wanneer je een aantal artikelen hebt gelezen over deze strips, dan zul je meestal vinden dat je inderdaad een weerstand zou moeten gebruiken.
Die weerstand zorgt er voor dat de signalen tussen de Arduino en je module kloppen en netjes blijven.
In dit Engelstalige onderwerp op het forum (klik !)word dat uitgelegd en zichtbaar gemaakt met 2 plaatjes.
In het linker plaatje zie je hoe de elektrische signalen er niet zo netjes meer uitzien na 30 centimeter draad (van onbekende diameter en constructie), en hoe een weerstand dat kan oplossen is dan in het rechter plaatje te zien.
Voor mij is dit een heel duidelijke indicatie om gewoon een weerstand toe te passen.

De keuze voor de Uno levert je een wat meer universele Arduino variant op, waar je shields op kunt prikken.
Maar als het alleen maar om een klok gaat, dan heb je de shields niet nodig, en kun je ook voor een veel compacter variant zoals de Arduino Nano kiezen.

Thanks voor je bericht MAS3! nee, ik heb persoonlijk de voorkeur om alle 120 leds op 1 pin te zetten, logischer en structureler denk ik. Qua technische beschrijving, denk ik dat het verstandig is om voor mijzelf een schema te maken die jullie misschien kunnen beoordelen :). Vanavond of morgenavond teken ik wel wat op autocad!

Zoals ik het begrijp moet ik de voeding dus aansluiten op meerdere plekjes van de ledstrip? Geldt dit ook voor de ground?

Ok, dus een weerstand is enkel nodig voor die signalen? En dus geen weerstand voor de voeding? En op welke manier bereken ik dat, of is er een betrouwbare website met rekenmodel die je voor mij hebt?

Die Nano variant, kan ik daar in de toekomst nog wel een bluetooth module en wat drukknopjes aankoppelen? Of adviseer je dan wel de Uno?

Hoi.

Ik weet niet precies hoe vaak je de voeding moet aansluiten, dat is afhankelijk van hoe goed de LED strip gemaakt is.
Zou er nou heel veel koper in de voedingsbanen in die strip zitten, dan zou je je daar ook geen zorgen over hoeven te maken.
Maar koper is duur, en fabrikanten kiezen om een of andere reden liever voor minder duur om te maken, en wat duurder om te verkopen.

Zoals ik beschreef, kun je je strip meestal in stukken knippen op de juiste plaatsen.
Elk stuk kun je dan een eigen voeding geven.

Even een stukje onderbouwing:
RGB staat er voor dat er een Rode, een Groene en een Blauwe LED in de module zit.
In de WS2812 datasheet (klik !) (en bedankt Adafruit !) staat vermeld dat elk van deze LEDs in de module tot maximaal 20 mA kan verbruiken.
En dat betekent dus ook dat als je een felle witte LED wil, dat die dan een fractie meer dan 60 mA zal verbruiken (meer omdat er wat meer elektronica in zit die ook wat zal verbruiken).
120 maal 60,1 mA is 7212 mA, oftewel 7,212 Ampere (!)
Dat word ineens een getal om rekening mee te houden.
En ik zou me geen milliseconde verbazen als je strip dat helemaal niet aan kan, en zelfs ook warmte zal gaan ontwikkelen wanneer je je strip via 1 aansluiting zou voeden.

Een trucje zou dan kunnen zijn om de strip in het midden te voeden.
Dan gaat er 3,6 A linksom, en 3,6 A rechtsom wanneer je alle LEDS op vol vermogen laat oplichten.
Maar dat is nog steeds een aanzienlijke stroom.
Overigens zie je nu ook dat je een erg stevige voeding nodig zal hebben voor je klok, wanneer je veel LEDs tegelijk zal hebben branden.

Dat gezegd (nou ja, getypt) hebbende, de kans dat je veel LEDs tegelijk aan zal hebben voor deze toepassing lijkt me niet zo heel groot.

GND is onderdeel van je voeding ("de min"), en in principe moeten alle punten die GND gemarkeerd zijn met elkaar verbonden zijn.
Zie mijn opmerking onder elk van mijn berichten.

In de boven vermelde datasheet, staat ook deze passage:

Datasheet:
Built-in signal reshaping circuit, after wave reshaping to the next driver, ensure wave-form distortion not accumulate.

Vrij vertaald uit het Chinglish: elke module poetst het ontvangen signaal weer op voordat het doorgestuurd word naar de volgende module, zodat eventuele fouten niet opeengestapeld worden.
Er staat niet in dat ontvangen data word gecorrigeerd, en dus gebeurt dat ook niet.
Als je het eerder getoonde stukje over de aangetaste signalen goed begrepen hebt, dan weet je nu ook dat een en ander van meerdere variabelen afhangt.
Dat is dan weer de reden waarom je nergens een consequente waarde tegen zal komen:
Kabel lengte en diameter bepalen ook hoe sterk de signalen vervormd zullen raken, en daar moet je dus de weerstand op aanpassen.
Wel kan ik zeggen dat ik vaak de waarde 470 Ohm voorbij heb zien komen als een bruikbare begin waarde.

Een Nano heeft alle pinnen die een Uno ook heeft, en dezelfde chip in een andere behuizing.
Zelfs 2 pinnen meer, omdat de daar gebruikte chip door diens bouwvorm 2 extra analoge ingangen biedt, en deze ook op de print gebruikt kunnen worden (uitsluitend als analoge ingang, niet voor iets anders te gebruiken).
Het grote verschil tussen deze 2 boards is dat de Uno de aansluitingen dusdanig gerangschikt heeft, dat je er de eerder genoemde shields op kunt prikken, en iets andere stekkers voor voeding en USB.
Wanneer je geen shields gaat gebruiken, zijn ze eigenlijk gelijk.
De Nano sluit je aan door er header pins aan te solderen en die vervolgens met stekkertjes te verbinden, of je draden er direct aan te solderen.

Begin maar met een Arduino Uno, je kunt later altijd nog overstappen naar iets anders.

Een 5V ledstrip werkt op 5V, je hebt voor de voeding geen weerstanden nodig. Rondom en in ieder ledje zit een circuit om ze op 5V te laten werken.

Die weerstand in het data-signaal is om het een beetje te dempen. Dat is niet nodig, maar het levert een mooier signaal op. Neem gewoon 470Ω en als dat werkt, dan laat je het zo.

Een module met een klok en batterij heet een RTC module (Real Time Clock).
Koop nooit de onstabiele weirdo DS1302 module. De DS1307 was veelgebruikt, maar de DS3231 module is stabieler en nauwkeuriger.
De meest gebruikte module voor de DS3231 heeft een verkeerd laadcircuit waarbij de (oplaadbare) batterij stuk gaat. Dus daarmee even oppassen.

Een paar ampère door een ledstrip is nog best veel. Misschien valt het mee. Je kunt dat het beste zelf proberen of dat je ziet dat ze aan het eind wat minder fel zijn. De GND is vanzelfsprekend onderdeel van de voeding waar de grote stromen doorheen lopen. Dus extra aansluitingen op de ledstrip voor de voeding is zowel de 5V als de GND.
Een goede GND is meestal belangrijker dan een goede 5V.

Mikeb1970:
Hallo Lucas,

Wat je volgens mij zeker nodig hebt is een klok, met batterij. Ik denk bv aan deze. De link staat beneden, dit is moeilijk op een smartphone. Op die andere vragen is eigenlijk moeilijk te antwoorden maar ik zou persoonlijk voor 2 groepen van 60 leds opteren. Denk er vooral aan dat de maximale stroom die een Arduino uitgang kan leveren rond de 40mA ligt. Of je een weerstand nodig hebt hangt af van welke strip je gaat gebruiken. Ik vindt dit eigenlijk wel een leuk project. Als ik jou was zou ik zeker eens op GitHub.com kijken en een gratis account aanmaken, daar vind je werkelijk zeer veel info.
Hier is de link voor het klokje
https://banggood.app.link/YmgBOM2y52
Als je nog vragen hebt, dan hoor ik het graag.

Veel succes en plezier,

Groetjes
Mike

Github is interessant! Ik heb afgelopen weekend de mal gefreesd en het het nodige elektronica binnen gekregen. Ik kwam er achter dat de klok al gemaakt was op GH (meerdere malen zelfs!), dit is hem; https://github.com/jolau/QlockTwo_DIY

Ik ben nu alles op een breadboard aan het installeren en testen, maar loop eigen aan tegen het tekort aan kennis en ervaring.
Als ik het goed begrijp is dit project aangestuurd door die ESP8266 opde Wemos Mini? Die libraries snap ik nu hoe die geüpload moeten worden, maar is er dan een script die ik met arduino.cc moet schrijven op die Wemos module? Ik loop dus eigenlijk aan tegen de volgorde van de installatie, want ik zie niet echt een stappenplan. Kan iemand mij hierin wat tips geven? Alvast bedankt :slight_smile:

Van deze website heb ik veel geleerd: https://randomnerdtutorials.com/.
Dit is volgens mij het beginpunt: Installing ESP8266 in Arduino IDE (Windows, Mac OS X, Linux) | Random Nerd Tutorials.

Er zijn Arduino boards waar een processor op zit voor de sketch en daarnaast nog een ESP8266 voor de Wifi. Dat is alleen maar lastig. Je sketch op de ESP8266 draaien is veel handiger. Het is echter geen officieel Arduino board, dus je zult nog een en ander moeten doen.

hier is ook nog documentatie te vinden voor de esp8266.

Ik heb ook al een stuk of wat van die klokken ontworpen en geprogrammeerd, oa met bluetooth, Oled etc.
Zelf vind ik de DS3231 een prima RTC, zeker omdat de tijdaanduiding maar per vijf minuten gaat.
Ik heb ze in het begin gemaakt met schuifregisters om gewone (warmwitte) ledstrips aan te sturen op 12V.
Die klokken verbruiken wat minder dan de uitvoeringen met de WS2812 strips die gewoon op 5V werken.
Maar voor zo'n klok is een 5V2A voeding wel voldoende.. IPV een adapter gebruik ik ook wel die minivoedingen van Meanwell. Die kunnen zelfs in de klok gebouwd worden zodat er alleen een netsnoer uit komt.. Gelijk zetten doe ik met een paar membraanschakelaars op de achterkant of met de zelf geschreven app op mijn android telefoon via bluetooth. Op de Oled op de achterkant kan ik van alles aflezen zoals de tijd, datum, mode, helderheidscurve etc..
Belangrijkste is dat je eerst een plan maakt van hoe je de indeling wil maken en waar, welke leds komen.
Voor het aansturen van de leds kan je de adafruit library gebruiken maar de FastLed werkt iets beter bij een dergelijk aantal.
Tijd kan je per interval uit de DS3231 lezen en die waarden met switch() aan een serie leds toewijzen..

Ik heb nog wel een ino als je die wil uitspitten..

Kees

Die klokken verbruiken wat minder dan de uitvoeringen met de WS2812 strips die gewoon op 5V werken.
Maar voor zo'n klok is een 5V2A voeding wel voldoende

Ik weet niet zeker of je het hebt over de voeding voor de RTC of over de voeding voor de strip.

Iedere led in de strip verbruikt 60 mA als je maximaal wit gebruikt. Keer 120 leds is 7.2A. Wat speling toevoegen en ik zou voor minimaal 8A gaan.

Ik heb het over de strip. Theoretish kan je natuurlijk alle leds voluit laten branden, maar in de praktijk branden er maar een paar om de tijd in tekst weer te geven en voluit laten branden gebeurt ook niet. Zelfs bij een pwm van 1 (van 256) is het display nog goed leesbaar. En de toename in helderheid boven een PWM van 50 is marginaal. Je moet de warmte ook kwijt kunnen als je echt alle leds voluit wil laten branden en wie wil er nou een klok hebben die bijna 40W consumeert??
Bij de uitvoeringen met de schuifregisters heb ik gewone warm-witte ledstrips gebruikt. Dat licht staat heel wat netter dan het wit dat je uit R,G en B samenstelt.. Die werken dan wel op 12V maar de stroom per segment is hooguit 10mA. Het grootste vermogen dat ik gelogd heb bij dergelijke klokken was 2,8W.. Gemiddeld zelfs minder dan 1W voor de hele klok.
Het stroomverbruik van de RTC en Atmega328 + Oled is in de orde van 10mA, de Bluetooth voegt daar gepulseerd ook nog iets van 10mA aan toe. Niet bepaald waarden om je druk over te maken.

Kees