Cookies op Tweakers

Tweakers maakt gebruik van cookies, onder andere om de website te analyseren, het gebruiksgemak te vergroten en advertenties te tonen. Door gebruik te maken van deze website, of door op 'Ga verder' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt, bekijk dan ons cookiebeleid.

Meer informatie

Door Willem de Moor

Redacteur componenten

Bouw je eigen ledtafel

Duizend ledjes en draadjes

Tot slot

Je tafel is klaar en functioneel. Je kunt met de Adafruit-libraries en een Arduino Mega allerlei effecten op je tafel toveren, maar het wordt nog leuker als je er een beetje pixelart op kunt tonen. We hadden het er eerder al even over, maar je kunt niet simpelweg een afbeelding in een sketch gooien. Je zult die eerst moeten vertalen in een formaat waar de Arduino iets mee kan. We gebruiken de UTFT ImageConverter om een willekeurige afbeelding te converteren naar een utf-bestand. Die laden we met een sketch in progmem, oftewel het flashgeheugen, en roepen die afbeeldingsdata op in een sketch.

Afbeeldingen op ledtafel

Zo kunnen we kleine plaatjes, liefst vierkante en herkenbare afbeeldingen, converteren en op de ledtafel tonen. We gebruiken daarvoor de MatrixGFXDemo-sketch uit de NeoMatrix-library van Adafruit. Om jouw afbeeldingen te tonen, moet je de c-file met afbeeldingsdata samen met de sketch naar je Arduino uploaden en uiteraard de juiste pin definiëren waarop je je matrix hebt aangesloten.

Als we het toch over de aansluitingen van de Arduino hebben, moeten we overigens nog even de voeding en aarde melden. We sluiten de Arduino gewoon aan op dezelfde 5V-voeding als de ledstrips. In principe delen ze dan de aarde of massa met de ledstrips, maar we onderstrepen nog even dat je de aarde of massa van de ledstrips en de Arduino met elkaar moet verbinden. Dat voorkomt storingen. Zo kun je ook een weerstandje van een paar honderd ohm tussen je ledstrip en je Arduino, of andere controller, zetten om eventuele beschadiging te voorkomen en het kan evenmin kwaad een flinke condensator op de voeding van je ledmatrix te zetten.

We hebben met bovenstaande sketch allerlei afbeeldingen op de tafel getoond. Daarbij zetten we de helderheid van de leds vrij conservatief. Je kunt die namelijk instellen op 0-255, maar om je ogen een beetje te beschermen en de Chinese voedingen niet te laten klappen, hebben we die op 40 ingesteld. Alles boven de 100 vonden we bizar fel worden en zal bovendien je ledjes flink opwarmen.

We hebben nog wat geëxperimenteerd met een Raspberry Pi en gestoeid met de rpi_WS281x-library. Daarmee kun je met behulp van python je ledmatrix aansturen en in principe elke afbeelding op je Pi op je tafel tonen. Als we dat een tijdje lieten lopen, zagen we echter veel glitches, dus helemaal perfect werkte dat voor ons niet. Nu kun je natuurlijk altijd zelf rondstruinen op internet en inspiratie opdoen van een van de vele ledmatrixprojecten die anderen hebben gebouwd. Zo kun je zelfs games spelen op je tafel, of animated gifs of video op je matrix tonen. Je budget, handigheid en creativiteit zijn je enige beperkingen.

Reacties (135)

Wijzig sortering
Volgens velen is dat namelijk een voorwaarde om de leds aan te sturen: een rtos, of realtimebesturingssysteem.
Grote onzin. Je PC die Linux of Windows draait en absoluut niet real-time is, heeft ook geen probleem met afspelen van geluid, ook al moet hij dan precies getimed 44100 keer per seconde een audio sample op de output zetten. De crux is dat niet het hele OS real-time hoeft te zijn, alleen het laatste stukje. Voor je PC is de realtime eis voor audio verzwakt van "44100 keer per seconde" tot "je moet elke seconde de buffer een beetje aanvullen", en de DMA controller van de geluidskaart doet de rest.

Datzelfde geldt ook bij het aansturen van de LED strips. De SPI controller (doorgaans op elk embedded platform te vinden) die de informatie naar buiten stuurt kan op de meeste hardware zelfstandig met DMA een blok geheugen naar buiten sturen. Voor een vloeiende animatie hoeft 't systeem niet elke LED te timen, maar alleen elk "frame" klaar te zetten in RAM en de SPI controller doet het realtime werk van het bit-voor-bit uitsturen in de achtergrond.

Onder Linux heb je de optie om dit soort displays als gewone framebuffer te gebruiken. Er wordt dan een stuk RAM als display geheugen aangewezen en de memory hardware (MMU) houdt in de gaten of er delen aangepast worden. Deze "dirty pages"worden dan op gezette intervallen naar de LEDs gestuurd. Daarmee heb je geen speciale software meer nodig voor het aansturen. Je kunt zelfs je console op dat display krijgen, al kun je in 32x32 pixels niet bijster veel tekst kwijt (ongeveer 6x6 karakters als je een 5x5 font gebruikt).
Nou ja en nee. Toegegeven dat hele realtime OS gebeuren is ook redelijk overdreven, maar wat jij nou doet is ook niet echt eerlijk.

Wat jij doet is een systeem pakken die factoren sneller/groter is als je behoefte en dmv een buffer je timing probleem oplossen. Vul dat buffer maar aan en wacht tot je een signaaltje krijgt dat de buffer weer leeg is. Dat je in de tussen tijd niks doet, maar wel een hoop stroom verbruikt is niet echt een ideale situatie. Daar kan wel iets worden gezegd over de kosten effectiviteit. Daarnaast is dit redelijk platform afhankelijk, kijk maar eens naar de Allwinner H3 (o.a. OrangePI) die vaste SPI RX/TX buffers heeft van 64kB. Dan kan je wel heel veel dingen roepen, maar jij gaat niet meer als 5 RGB LED's aansturen met die buffers.

Daarnaast ga je ook niet een volwaardige PC neerzetten om een ledstrip aan te sturen, die PC verbruikt meer dan de strip. Daarom snap ik je verhaal over MMU niet zo goed.

Voor hobby projecten kan je dit soort dingen wel door de vingers zien. Pak een rPi 3B+, pak een grotere accu, pak een grotere zonnepaneel, pak een grotere voeding, etc. etc. etc. Kan allemaal geen probleem, maar als je het gaat hebben over commerciële producten dan komt cost effectiveness om de hoek kijken en dan loont het om het product strak af te stellen.

Daarom zeg ik dat een RTOS veelal overdreven is voor een hobby project en mensen die erover beginnen in hobby fora zijn ook mensen die even moeten patsen of niet weten waar ze het over hebben. Voor commerciële producten kan er wel het een en andere over gezegd worden.

[Reactie gewijzigd door SizzLorr op 9 december 2018 00:28]

Ook op low-power hardware (M0 processor enzo) maak je van DMA controllers enzo gebruik als het mogelijk is.

Een CPU die niks te doen heeft kan lekker gaan slapen. Een systeempje dat een paar keer per seconde wakker wordt om een DMA buffer te vullen en daarna weer in een deep-sleep mode kan, gebruikt veel minder energie dan eentje waarbij de CPU wakker moet blijven.

Dat zie je ook in moderne microcontrollers, de huidige 32-bit controllers gebruiken veel minder energie dan de 16 en 8 bitters die we voorheen gebruikten. De nieuwe CPUs hebben veel beter power management en vallen in sleep modes die minder dan een microampere gebruiken. Gedurende 1 ms op hogere snelheid draaien en dan enkele ms in sleep doorbrengen is zuiniger dan continu op lage snelheid draaien.

De rPI, orange pi, die je noemt, en vergelijkbare systemen hebben zware applicatie CPUs die met een MMU zijn uitgerust. Ze zijn gemaakt om een volledig OS (meestal Linux) te draaien.
Ja maar nou ga je weer richting andere dingen. Je gaat richting embedded design. In dat geval denk ik dan weer, is het niet beter als je een RTOS gebruikt juist om het jezelf een stuk makkelijker te maken. De ARM binary headers zitten al een soort RTOS ingebouwd.
Ze zijn gemaakt om een volledig OS (meestal Linux) te draaien.
Dat bedoel ik dus, je gaat een volwaardige Linux computer draaien, voor een LED strip. Dat is redelijk overdreven lijkt mij.
Hangt er vanaf... Voor wat statische content, of als domme "driver" kom je wel toe met een microcontroller.

Als je echt iets leuks wil maken, zoals synchroniseren met geluid en je TV beeld, met "je hebt mail" of vergelijkbare meldingen, domotica support, etcetera, dan is het wel heel praktisch om er ook wat meer in te stoppen. Met 100+ Watt aan LEDs doet die ene Watt voor de hele aansturing (stroomgebruik van een ARM computer als de rPI ligt in die orde) er ook niet meer toe.

In dit geval is een kleine volwaardige computer (van pakweg 1W) een prima keus, dan kun je heel veel op het bordje zelf doen, zonder meteen naar een PC te moeten grijpen, en heb je snel ook (wifi) netwerk en bluetooth in je LED paneel.
[...]

Voor je PC is de realtime eis voor audio verzwakt van "44100 keer per seconde" tot "je moet elke seconde de buffer een beetje aanvullen", en de DMA controller van de geluidskaart doet de rest.
Is dat waarom je als een game crashed soms heel irritant een kort stukje sample in een loop krijgt te horen?
Of zo'n beetje elke keer je buffer niet aangevuld kan worden (CPU die bevriest ofzo). Maar ja, da's gewoon dezelfde buffer die zich herhaalt.
Exact! De output blijft over hetzelfde stukje geheugen 'loopen', er van uit gaande dat je het tussentijds ververst.
hahaha source engine!
Dank @cdwave ik had het niet beter kunnen verwoorden! In Linux gewoon vanuit userland SPI/DMA en geen enkel probleem. Al houd ik mijn voorkeur bij baremetal (Orange Pi Zero / Raspberry Pi), dat is plug 'n play (geen overhead van Linux configuratie, settings, etc).
Mijn persoonlijke voorkeur is om APA102 leds te gebruiken zoals andere hier in de comments ook al zeggen: deze zijn eenvoudig met een Raspberry Pi aan te sturen waardoor je veel vrijer ben met wat je op de leds animeert. Zo heb ik hier bijvoorbeeld een simpele web interface gemaakt om een strip realtime aan te kunnen sturen

Het wel nog wat tips van punten wat ik hier in dit artikel niet (of niet duidelijk) in terug zag komen:
1. Zorg er voor dat je de negatieve kant van alle onderdelen (leds, voedingen, arduino/pi, level-converter etc.) aan elkaar aan sluit. Doe je dit niet, kan je (zeker bij APA102) rare glitches krijgen

2. Zorg er voor dat je de 5v van de voedingen goed verspreid over de leds aansluit. Als je de leds aan een lange strip houdt, het liefst iedere meter / max 2 meter een extra draadje aan de 5v solderen. Doe je dit niet, dan kan door de weerstand in de leds de kleuren verder van de voeding bruiner worden.

3. In tegenstelling tot de negatieve kant waarbij je alles door lust, is het verstandiger om de 5v te onderbreken "per voedingsblok". Dat wil zeggen als je in dit geval 1024 leds hebt en 3 voedingsblokken, dat je 341 leds per blok aansluit. Dit is vooral om de levensduur van je voedingen te verbeteren, met name als je goedkopere voedingen gebruikt of voedingen van verschillende vermogens aansluit.

4. Als je meer dan 1022 leds APA102 leds wil aansluiten aan een raspberry pi, zorg er voor dat je de spi buffersize vergroot. Deze is namelijk standaard 4096 bytes (4 startbytes + 4 eindbytes voor spi + 4 x 1022 bytes voor de leds). Ook bij Arduino's moet je goed opletten hoeveel leds je wil aansturen. Met een beetje googelen kan je wel methodes vinden om meer leds aan te sturen dan wat standaard in het geheugen past van een Arduino.

5. zorg met solderen dat alle aansluitingspunten schoon / vetvrij zijn voordat je er een aan soldeert. Nu zal bij een korte strip een slechte soldeerpunt zijn werk nog goed kunnen doen, maar als tussen led 20 en 21 een slecht punt zit, kan het zo zijn dat je dit pas bij led 300 ziet. Zo heb ik een keer gehad dat de laatste 10 leds (van de 320) bleven glitchen, en ik 80 punten opnieuw heb moeten solderen voordat het weg glitchen weg was.

6. Houd bij het solderen altijd een multimeter bij de hand om mogelijke kortsluitingen te meten voordat je ergens stroom op zet. De 5v en de min horen van begin tot eind van je strip stroom door te laten, en je data (en bij APA102 ook je klok) niet. En de 3 of 4 kanalen horen onderling natuurlijk geen contact te hebben.

7. Blijf altijd goed opletten dat je data-out aan data-in soldeert (idem voor clock bij APA102). Gelukkig gaan je leds er niet snel door stuk als je dit fout doet en is de fout snel te zien (leds branden simpelweg niet), maar het scheelt een hoop werk door het in 1x goed te doen. Beter 2x meten en 1x uitvoeren, dan andersom ;-).

8. Het beste is om de leds altijd op aluminum te plakken, maar eigenlijk doe ik dat niet altijd meer gezien het risico op kortsluiting aardig groot is en als de leds niet continu op 100% staat te branden dan is de warmteproductie goed onder controle te houden. Als je de strips wel op aluminium wil plakken, let dan op het volgende:
- Aluminium geleid zelf stroom, maar bij de meest gangbare strips zit een coating / oxicatielaag wat isoleert. Zorg er voor dat je deze laag dus niet beschadigd en al helemaal niet bij de connectie punten van de ledstrips. Soldeer o.a. dus eerst de kabels aan de led strips voordat je de leds aan de aluminium plakt
- De meeste ledstrips die je koopt hebben een plakkende laag aan de onderkant wat ook voor voldoende isolatie zorgt bij de connectie punten om geen stroom door te laten. Let er op dat je deze laag niet beschadigd als je de leds op aluminium plakt. Dit is met name van belang bij de punten waar je soldeert.
Tof voor de kerstdagen
Leuk om te zien dat Tweakers nu ook tijd gaat steken in dit soort projecten. Toch wil ik Tweakers en de mensen hier een paar verbeteringen meegeven, of ja noem het persoonlijk irritaties van dingen die ik steeds maar weer zie gebeuren. Voor een hobby projecten is dit alles nog wel door de vingers te zien, maar als je het ding langdurig ergens gaat neerzetten dan is het toch goed als je rekening houdt met het een en ander. Vooral op mechanisch vlak valt er veel te halen met kleine aanpassingen.

1a. Stop eens met de al oude kroonsteen met isolatietape praktijken. Gebruik lasklemmen, mijn voorkeur gaat uit naar soepele wago's. Een doosje van 100 stuks (niet bij de bouwmarkt kopen want daar wordt je opgelicht) kost iets meer als een tientje dus dat zijn de kosten niet.

/edit: Oe ik zie nu pas dat ze in de links 26 euro vragen voor 100 wago's, heb gegoogled en zomaar wat links gepakt. Ik koop ze bij de groothandel in voor 13 euro voor 100 stuks. Dus kijk zelf even rond, zou zeggen dat 16 a 20 euro wel een acceptabele consumenten prijs is.

1b. Als je het dan echt goed wil doen stop die klemmen in een mini lasdoos. Ik gebruik altijd de els mini 25 omdat die oogjes hebben waar je een tiewrap doorheen kan doen. De mini 25 is verkrijgbaar in verschillende kleuren dus de doos kan altijd matchen bij je project. OBO en ABB hebben ook mini lasdozen in verschillende maten. Als je echt fancy wil doen dan kan je ook een Wagobox gebruiken, maar die vind ik te duur voor wat ze bieden.

2. Ik kan dit niet vaak zat zeggen. Soepele draad met schroefklemmen is vragen om problemen! Altijd! Maar dan ook echt altijd een adereindehuls erop zetten. Soepele draad zonder adereindehulzen erop is de nummer 1 oorzaak van elektrische branden.

3a. Even rekenen! 50mA per led op full bright maal 32 stuks, wil zeggen dat dat er uiteindelijk 1,6A staat op een strip. Die 0,5mm^2 draadjes die je gebruikt zijn daar niet op bedacht. 1mm^2 is geen overbodige luxe. Nou hoor ik mensen al zeggen: "ja maar dat is op full bright he". Je moet altijd rekening houden met absoluut max, klaar!

3b. Als je dan toch bezig bent meet even de weerstand van een spoor op de strip. Dit doe je door op elk uiteinde van de strip een pen van je multimeter op de + of op de - te houden. Het gebeurt wel eens dat een strip geknikt is waardoor het spoor slecht geleid of dat de verkoper op Ali troep heeft opgestuurd. Ik zie wel eens weerstanden van 1 a 2 ohm over de strip. Als we mijnheer Ohm er dan even bij halen dan kunnen we uitrekenen dat je 12,5 watt staat te dissiperen alleen al over de sporen van de strip. De ervaring leert dat het simpelweg beter is om een strip van beide eindes te voeden en bij langere stukken om midden op de strip ook te voeden.

4a. Ik zie geen inrush condensator. Veelal wordt er gezegd dat als je een voeding pakt die dik genoeg is dat dat helemaal niet nodig is en daar zit wel wat in. Afhankelijk van wat je er nou precies mee gaat doen zijn de condensatoren op de voeding zelf vaak ook voldoende om alles af te vangen, maar dat is niet altijd het geval. Als je snel gaat schakelen of PWM dimming toepast wil het wel eens gebeuren dat je voeding dat helemaal niet leuk vindt.

4b. Ik zou toch wel even een weerstand van 300 tot 500 ohm op de datalijn zetten zoals Neopixel ook aanraadt. Daarmee voorkom je dat je je LED's gaat voeden over de datalijn en daarmee je processor of LED's kapot trekt.

4b is later toegevoegd, pas na de discussie hieronder.

5. Als je meerdere voedingen gaat gebruiken dan moet je er echt voor gaan zorgen dat de spanningen van die voedingen nagenoeg gelijk zijn. Ik kan nu wel moeilijk gaan doen over dingen als dat je de voedingen moet isoleren en reverse current protection moet inbouwen, maar dat is redelijk overdreven voor een hobby project. Beste wat je had kunnen doen is alle voedingen parallel aan elkaar zetten of op z'n minst alle nullen aan elkaar knopen. Dit om reverse current toestanden te voorkomen. Het zal bij een rPi of officiele arduino niet zoveel uitmaken, maar een chinese namaak arduino's en allwiner rpi clones wil het wel eens gebeuren dat ze redelijk slecht zijn ontworpen.

6. Gebruik zoveel mogelijk connectoren en clipjes om alles aan elkaar te knopen. LED verkopers op Ali verkopen ook de clipjes en connectoren die erbij horen en ze vragen vaak niet meer als een euro voor een zakje. Het maakt onderhoud makkelijker en daarnaast zijn die Chinese strips niet altijd juh van het dus solderen wil ook niet altijd even goed lukken (vooral die watervaste strips waar mega veel lijm en plastic op zit).

Voor de rest top, ga zo door. Hopelijk kunnen jullie deze puntjes meenemen bij de volgende publicatie.

[Reactie gewijzigd door SizzLorr op 9 december 2018 00:45]

Als elektronica man ga ik je verhaal toch echt op grote vlakken onderuit moeten schoppen dat je een +3 krijgt verbaast mij een beetje. Het is goed dat je mee probeert te denken maar op diverse vlakken schrijf je alsof je heel zeker bent van je zaak echter kloppen je statements daar niet. Heb het per punt voor je uitgeschreven

1a. dat is voorkeur heeft verder niks te maken met of een kroonsteen ondergeschikt is of niet.
1b. ook voorkeur
2. Er zijn ook kroonstenen met een plaatje erin die wel geschikt zijn voor soepele draden. Wel is het beter om gebruik te maken adereind hulsjes om kabelbreuk te voorkomen echter is het niet noodzakelijk als je beschikt over de juiste schroefklemmen. Kroonsteentjes hebben dit over het algemeen niet en zijn inderdaad niet geschikt hiervoor. Brand oorzaak nummer 1 is de wasdroger en slechte verbindingen op het gebied van 230V. Op 12v slecht contact moet het heel raar lopen wil daar echt brand van ontstaan. Onmogelijk is het inderdaad niet maar het brand oorzaak nummer 1 noemen is onzin. Dat is de wasdroger met de motor waar stof in komt op den duur.

3a. Ken je de wet van ohm? Ik zou hem er eens op naslaan.
Weerstand 0,5mm² = 8,9Ohm per 100 meter. In dit project zal de lengte maximaal 2 meter zijn. Hebben we het over 0,178ohm weerstand. Dat is ronduit verwaarloosbaar. Als je een kabel van 100 meter zou nemen had je gelijk gehad. Richtlijn in veel toepassingen is 10A per mm² tot lengtes van 5 meter. 1,6A valt dus ruim binnen die marge zeker in dit project.

3b. 12,5W op 1 ohm hmm die is wel heel erg optimistisch berekend.
I = U/R = 12/1 = 12A dat is dus einde led strip in dat geval... 12,5W bij 1 ohm weerstand is dus inderdaad als er totaal maar 1 ohm weerstand zou zijn dit is natuurlijk niet het geval. De 1-2 ohm weerstand komt bovenop de weerstand van de leds zelf.
Gaan we uit van de 1,6A die je eerder had gebruikt als stroom hebben we een weerstand van
R = U/I = 12/1,6 = 7,5Ohm gaan we van 7,5ohm naar 9,5 ohm hebben we een verschil van
I = U/R = 12/9,5 = 1,26A meer weerstand laat het opgenomen vermogen niet toenemen. Het heeft wel invloed op de spanning die de leds krijgen en daardoor zullen de leds minder fel branden.

4a. Als je daar last van hebt houdt het in dat je voeding niet zwaar genoeg is en de piekstromen niet kan handelen. Staat dus los van de inrush condensator. Inrush condensatoren worden vrijwel alleen gebruikt bij motoren. Als je ze nodig hebt bij een led bord houdt het in dat je voeding niet zwaar genoeg is. Een inrush condensator heeft als nadelig gevolg dat je piekstroom in het begin vaak nog groter is.

4b. Datalijnen zijn ingangen en dus uit zichzelf hoog ohmig. De voorgeschreven weerstand wordt vrijwel altijd gedaan om te voorkomen als er een programmeer fout wordt gemaakt dat de uitgang niet wordt opgeblazen dat is de reden dat ze veelal worden voorgeschreven.Dit kan ook gebeuren als je software op nieuw moet laden dat de betreffende data ingang in eens even kort een uitgang wordt op dat moment gaat het wel fout.

5. Dit ligt er maar helemaal aan hoe je de voedingen inzet, de min draad bij verschillende voedingsbronnen moet altijd gekoppeld worden om te voorkomen dat je een zwevende nul krijgt. Plus draden parallel zetten bij geschakelde voedingen kan juist negatief uitpakken omdat geschakelde voedingen de uitgang bij kunnen regelen en ze daarmee elkaar op drift kunnen jagen. Dus nee juist niet parallel zetten. Je kunt er beter voor zorgen dat je de ledstrips verdeeld over de diverse voedingen.

6. Voor het onderhoud is het prima, echter voor het contact overdracht is solderen verreweg te prefereren. Goede soldeer verbindingen zijn beter dan die goedkope rommel klemmetjes. je had eerder zelfs nog geroepen over de kroonstenen en dat die brand gevoelig zouden zijn. Deze veer clipjes van chineze makelarij zijn helemaal ten treure van kwaliteit over het algemeen.

Het is prima dat je probeert creatief mee te denken maar in dit geval sla je de plank wel diverse keren mis. Uiteindelijk maak je het project hier mee een behoorlijk stuk duurder en op veel vlakken niet eens beter. 0,5mm² is prima geschikt om tot 5A te gebruiken. Ik zou de kabel temperatuur kunnen uitrekenen maar met 1,6A ben ik daar niet eens bang voor dat die meer dan 15 graden oploopt ten opzichte van de omgevings temperatuur.

Kroonsteentjes en tape zijn misschien wat primitief en zeker niet de netste manier van werken. In een project als deze zou ik eerder een print met schroefklemmen gebruiken of phoenix connecteren voor de dinrail. Maar die laatste zijn te groot en die eerste houdt in dat er een print gemaakt moet worden of ingekocht moet worden.
Volgens mij lees jij veel van mijn tips als bevelen ofzo. Ik zeg toch nergens dat je geen kroonsteentjes mag gebruiken of lasdozen moet gebruiken? Het is alleen netter als je het doet.
Op 12v slecht contact moet het heel raar lopen wil daar echt brand van ontstaan.
We hebben het hier over 5V DC en rond de wat zal het hem zijn, rond de 16A stroom, dat gaat geen brand veroorzaken? Ze zullen wel voor de lol DC arc fault bescherming inbouwen in zonnepanelen. Stiekem is DC best naar, vooral als het gaat om hoge stromen.

Buiten dat het gaat hier om het mechanische aspect. Soepele draad die langdurig op een schroefklem zit zat op dn duur kapot gaan. Is toch mooi dat iemand die tip meegeeft?
Ken je de wet van ohm? Ik zou hem er eens op naslaan.
We hebben het hier over soepele draad he. Kijk je koperdraadtabel nog eens na. Misschien ook handig als je naar de normen en specificaties van de fabrikant kijkt,
12,5W op 1 ohm hmm die is wel heel erg optimistisch berekend.
En wat als ik ben uitgegaan van 2 ohm? Je bent leuk bezig om allerlei basis formules uit te schrijven, maar het valt je dan niet op dat je er een factor 2 naast zit?
De 1-2 ohm weerstand komt bovenop de weerstand van de leds zelf.
De LED's zijn parallel geschakeld he. Daarnaast het gaat hier om light emitting DIODE, d'r is een reden waarom je er een weerstand voor moet zetten. Ooit wel eens geprobeerd om een LED aan te sturen zonder weerstand ervoor? Dan zegt hij poef, weet je waarom dat is? Omdat het een diode is.
Als je daar last van hebt houdt het in dat je voeding niet zwaar genoeg is en de piekstromen niet kan handelen.
Wat als mijn PWM frequentie harmonisch is aan de SMPS?
Datalijnen zijn ingangen en dus uit zichzelf hoog ohmig.
Lees de hele discussie met dmantione nog eens na. Er zit veel meer in zo'n ingang of open uitgang dan jij denkt.
De voorgeschreven weerstand wordt vrijwel altijd gedaan om te voorkomen als er een programmeer fout wordt gemaakt dat de uitgang niet wordt opgeblazen dat is de reden dat ze veelal worden voorgeschreven.
Je hebt het over een pull-up of pull-down weerstand, dat is dit niet. Dit heeft niks met programeerfouten te maken en is puur elektrisch.
je had eerder zelfs nog geroepen over de kroonstenen en dat die brand gevoelig zouden zijn
Volgens mij is de strip zelf massief, maar ik kan me vergissen. Maar je zei net zelfs dat de weerstand die je introduceert verwaarloosbaar is en nu ga jezelf klagen over extra weerstand.
Plus draden parallel zetten bij geschakelde voedingen kan juist negatief uitpakken omdat geschakelde voedingen de uitgang bij kunnen regelen en ze daarmee elkaar op drift kunnen jagen.
Wat als je nou een reverse current situatie creëert over de LED's of over het bordje? Zal datgene wat jij nu aankaart dan niet gebeuren? Zou het misschien kunnen dat er in de LED's of op het bordje iets zit waardoor je de voedingen kort kan sluiten aan elkaar?

Misschien is het gewoon even handig als je met een multimeter de voedingen aan elkaar afstemt door de bias pot aan te draaien. Daar voorkom je een hoop nare situaties mee zonder dat je er rare constructies voor hoeft te bedenken. De uitgangfilter van de SMPS zal er voor zorgen dat de controller niet zomaar weg zal lopen, om dat voor elkaar te krijgen moet je echt beter je best doen dan een paar mV verschil.
Het is prima dat je probeert creatief mee te denken maar in dit geval sla je de plank wel diverse keren mis.
Het is maar dat ik een paar jaartjes mee draaien, denk misschien zelfs een paar decennia in de EE wereld.
In een project als deze zou ik eerder een print met schroefklemmen gebruiken of phoenix connecteren voor de dinrail.
Je roept net dat soldeerverbindingen beter zijn en nou ga je zelf ineens connectoren gebruiken? Is het dan niet beter dat je de kabels aan elkar soldeert en er een krimpkous op zet? Is denk makkelijker dan dure connectoren en PCB's,

Je roept zelfs dat mijn aanbevelingen niet goed genoeg zijn en dan ga jezelf ineens iets anders aanbevelen? Ik snap het niet meer. En wat als ik nou een hekel heb aan Phoenix en TE of Molex wil gebruiken, mag dat wel van jou?

Zullen we gewoon zeggen dat als je twee kabeltjes aan elkaar wil maken, dat mijn aanbevelingen gewoon beter en netter zijn zonder dat je er al teveel moeite voor hoeft te doen en zonder dat je er teveel kosten voor moet maken. Die 13 centen en 2 seconden werk die ik introduceer is echt niks i.v.m. met de handelingen die jij suggereert.

[Reactie gewijzigd door SizzLorr op 9 december 2018 08:32]

Ik heb nergens gezegd dat jouw opmerkingen bevelen zijn wel dat jouw opmerkingen erg stellig zijn dat wat tweakers doet niet goed is.

Dat je nu met wat termen gooit is leuk maar als je weerstand toevoegt in een keten zal de stroom nooit oplopen. Dat is de weg van ivm. Dus als je meer weerstand genereert in een circuit zal de stroom juist afnemen tenzij je de spanning gaat verhogen ter compensatie maar dat is hier niet ten sprake. Dus er kan door die overgang weerstanden nooit meer vermogen gaan lopen wat jij claimt. Je voorbeeld van een led zonder weerstand houdt in dat je juist weerstand verwijderd.

Schakelende voedingen die kan je wel bijregelen maar ga je op den duur nooit 100% gelijk houden. Dan moet je met load balancers gaan werken en dat is juist hier onzin. Gewoon weg de led strips verdelen over de voeding is vele malen beter en stabieler.

Over soepel en massief draad is genoeg te vinden wat betreft stroom dat er door een kabel mag lopen. Maar in die tabellen wordt altijd aangegeven bij hoeveel meter een bepaalde stroom mag lopen. Je hebt daarbij met twee factoren te maken. Spanningsverlies en warmte in de kabel. In dit geval praat je over korte lengtes waardoor de 0.5mm draad dikte meer dan voldoende is. Ik heb hier draad waar de fabrikant op 4mm2 zelfs 120A continue voor op geeft maar dat is bij een lengte van 1 meter. En dat is ook soepel draad.
Betreffende de input van een IC hier staan in de datasheets heel schema's van. Waar het omgaat is als jij de datalijn als output instelt is deze laagohmig als die dan ook nog eens de pin state laag heeft is die 0V. Dan direct 5V op de betreffende pin van de databus is einde IC. Dit heeft te maken met de eigenschappen van de poort. Pull up speelt helemaal geen rol in dit verhaal.

Dat je al 10 jaar in de EE zit is leuk maar daarin ben je niet alleen op dit forum. Ik heb je ook met diverse dingen proberen duidelijk te maken dat je verhaal niet volledig klopt. Het gaat mij niet om roepen wat beter is of niet. Het gaat mij erom dat je heel hard roept dit zijn mijn tips maar ik breng ze als feiten. Echter als je dat doet zorg dan wel dat je tips ook daadwerkelijk kloppen en noem ze niet zo stellig op als dit lijstje als je daar niet zeker van bent.
Ik heb nergens gezegd dat jouw opmerkingen bevelen zijn wel dat jouw opmerkingen erg stellig zijn dat wat tweakers doet niet goed is.
Dan snap ik deze opmerkingen niet zo goed.
1a. dat is voorkeur heeft verder niks te maken met of een kroonsteen ondergeschikt is of niet.
1b. ook voorkeur
Dat dat mijn voorkeuren/ervaringen zijn is inderdaad duidelijk. Is toch niks mis mee dat ik dat deel met de mensen hier?
Dat je nu met wat termen gooit is leuk maar als je weerstand toevoegt in een keten zal de stroom nooit oplopen. Dat is de weg van ivm. Dus als je meer weerstand genereert in een circuit zal de stroom juist afnemen tenzij je de spanning gaat verhogen ter compensatie maar dat is hier niet ten sprake. Dus er kan door die overgang weerstanden nooit meer vermogen gaan lopen wat jij claimt. Je voorbeeld van een led zonder weerstand houdt in dat je juist weerstand verwijderd.
Termen? Bedoel je diode? Ik snap even niet waar je op reageert.

Teken het anders even uit. Ik heb een hele lange keten aan weerstanden en tussen elke weerstand is parallel een lampje gesoldeerd, de weerstand van dat lampje is nagenoeg 0. Nou zal het voor het eerste lampje niks uitmaken, maar wat zal er met het achterste lampje gebeuren? Hoeveel stroom zal er lopen over de gehele lengte van de weerstanden?

Volgens mij zeg ik ook nergens dat er meer stroom gaat lopen, waar haal jij dat eigenlijk vandaan? Ik zeg alleen dat als de weerstand van de sporen op de strip 2 ohm is, dat je dan 12,5 watt moet disiperen over de sporen wil je het geheel met 5v voeden. Hoeveel stroom daar loopt heb ik helemaal geen uitspraken over gedaan.

Dan komen we weer terug op het schema wat we net hebben uitgetekend (dat heb je gedaan toch?), hoe langer die strip, deste groter de spanningsval over de strip. Dat wil dus zeggen dat je vooraan je LEDjes netjes branden en de juiste kleur hebben, maar achteraan krijg je die dingen niet meer gevoed.
Schakelende voedingen die kan je wel bijregelen maar ga je op den duur nooit 100% gelijk houden.
Volgens mij zeg ik ook dat die enkele mV's niks uitmaken.
Dan moet je met load balancers gaan werken en dat is juist hier onzin.
Load balancers? Wat moet ik daarbij voorstellen dan? Ik heb wel is gehoord van DC isolatie, filtering en dat soort dingen, maar een load balancer? Het is geen HTTP server he, leg eens uit wat is een load balancer?
Gewoon weg de led strips verdelen over de voeding is vele malen beter en stabieler.
Um nee, dat probeer ik juist uit te leggen. Alleen je wil het niet lezen.
Over soepel en massief draad is genoeg te vinden wat betreft stroom dat er door een kabel mag lopen. .... Ik heb hier draad waar de fabrikant op 4mm2 zelfs 120A continue voor op geeft maar dat is bij een lengte van 1 meter.
Leuk allemaal, ik heb hier nog 30 meter 6 kwadraat liggen, hoeveel mag die dan? Eigenlijk interesseert het me niet, wat me wel interesseert is wat de fabrikant of de norm zegt over deze draad? Wat is volgens de fabrikant of de norm een veilige DC karakteristiek? Dan zal je iets verder moeten kijken dan het ohmse. Kom daar eens mee, wat is de veilige DC karakteristiek van deze draad?
Waar het omgaat is als jij de datalijn als output instelt is deze laagohmig als die dan ook nog eens de pin state laag heeft is die 0V.
Oh god, lees aub de discussie hierboven na. In het kort, d'r zit een clamping diode in de input. Dus als het potentiaal verschil tussen DI en VCC groter wordt als 0,7v zal er via die diode stroom lopen van DI naar VCC. Aangezien de output aan de kant van de controller open is is er effectief een kortsluiting tussen je voeding en VCC over de chip. Daarmee trek je of de controller of de LED kapot.

Daar heb je die current limiter van 300 tot 500 ohm voor nodig, om de stroom te begrenzen.

Je maakt een klassieke school fout, zonder te weten hoe de zwarte doos werkt er kromme aannames over doen. Ze hebben jou ooit verteld dat je mag uitgaan van een hoge input impendatie, dat er een hoge input impedantie is, is allicht. Maar er is een situatie waarin die input impedantie 0 is, dus kort gesloten is.

Een lijntje van een output naar een input tekenen kan iedereen. Weten wat er gebeurd en begrijpen hoe bepaalde dingen in elkaar zitten, dat is iets heel anders.
Pull up speelt helemaal geen rol in dit verhaal.
Eigenlijk wel, want wat jij beschrijft is juist dat en dat heeft niks te maken met de clamp.
Dat je al 10 jaar in de EE zit is leuk maar daarin ben je niet alleen op dit forum.
Ok, dan zullen die mensen toch echt wel moeten weten hoe bepaalde dingen werken. Dingen als diodes, reverse current, SMPS, DC arc fault, clamping diode, PWM en harmonische zullen geen vreemde termen moeten zijn voor die mensen.
Het gaat mij niet om roepen wat beter is of niet.
Oh?
zou ik eerder een print met schroefklemmen gebruiken of phoenix connecteren voor de dinrail. Maar die laatste zijn te groot en die eerste houdt in dat er een print gemaakt moet worden of ingekocht moet worden.
Het gaat mij erom dat je heel hard roept dit zijn mijn tips maar ik breng ze als feiten.
Waar heb ik dat gedaan? Ik begin mijn relaas met:
Toch wil ik Tweakers en de mensen hier een paar verbeteringen meegeven
Volgens mij, ligt het meer aan jou dan aan mij. Jij begint je relaas immers met:
Als elektronica man ga ik je verhaal toch echt op grote vlakken onderuit moeten schoppen
Je wilde geen beter weter zijn, toch?
Echter als je dat doet zorg dan wel dat je tips ook daadwerkelijk kloppen en noem ze niet zo stellig op als dit lijstje als je daar niet zeker van bent.
Dat zeg je verkeerd, jij vindt dat het niet klopt. Klopt anders best redelijk. Dat jij niet weet dat er een clamp zit in die input, dat jij het schema van een ledstrip niet goed begrijpt en dat jij niet weet wat een reverse current situatie is, maakt allemaal niks uit hoor. Maar ga aub niet zo hard andere mensen afkraken.

[Reactie gewijzigd door SizzLorr op 9 december 2018 13:22]

Punt 5 is niet relevant, omdat zoals ik het begrepen heb, de voedingen alleen met de massa verbonden zijn, elke voeding voorziet afzonderlijke strips van stroom, er kan dus geen stroom tussen de voedingen lopen.
En data lijntje dan?
Is geen probleem, een datalijntje in ingangsmodus heeft een héél grote weerstand, dus daar gaan geen ongewenste stromen lopen.
Ok, dan nog een vraag. Waarom raadt Neopixel aan om een 300 tot 500 ohm weerstand op je datalijn te zetten?

https://learn.adafruit.co...rguide/powering-neopixels

Als de input impedantie hoog is, dan is dat toch niet nodig?
Volgens het gegevensblad van de WS2812 is de ingangsstroom maximaal 1 microampère, met 5 volt levert de Wet van Ohm een weerstand van 5 megaohm op. Die 300-500 Ohm zal daar op niet heel veel uitmaken. Ik snap de opmerking niet. Er wordt gewaarschuwd voor spanningspieken die de led kunnen verwoesten, maar een Arduino kan echt geen gevaarlijke spanningen op zijn uitgangen creëen. Er is ook geen sprake van spoelen die spanningspieken kunnen veroorzaken, dus waar die vandaan zouden moeten komen... ik zie het niet.

Wat ik ze wel zie doen, is batterijen als spanningsbron aanbevelen, die minder dan 5V leveren. De Arduino levert dankzij zijn spanningsregelaar te allen tijde 5V. Volgens het gegevensblad van de WS2812 mag de spanning op de data-ingang maximaal 0,5V hoger zijn dan de voedingsspanning. Als je je led met 3,7V voedt en dan met je Arduino 5V op de ingang zet, overschrijdt je dus de toegestane maxima: 1,3V verschil i.p.v. 0,5. Een weerstand zal in dat geval bescherming bieden, door de ongewenste stromen die dan in de led ontstaan te beperken. Met de omschrijving die ze geven is het evenwel lastig conclusies te trekken. Bovendien zou ik het een slechte beschermingsmaatregel vinden, omdat hij in praktijk wel werkt, maar je de gespecificeerde maxima nog steeds overschrijdt: Met 500ohm daalt het voltage op de Arduino-pin niet significant. Je zult voltageconversie moeten doen om het dan echt op te lossen.

De opmerking op die pagina om een condensator te plaatsen om het beschadigen van de pixels te voorkomen is even merkwaardig: Het gebrek aan een condensator kan zorgen dat de voeding opeens een grote stroom moet gaan leveren en het niet bijbeent, maar het zijn de leds die al die stroom dan vragen. Als je een condensator plaatst, kun je met de energie in die condensator méér stroom leveren, dus zou je zeggen dat de condensator de voeding beschermt en het juist voor de leds iets vervelender wordt met een nog grotere stroom in korte tijd.
Nou heb je heel veel opgeschreven, maar de inhoud kan ik reduceren tot 1 zin.
Die 300-500 Ohm zal daar op niet heel veel uitmaken.
Inderdaad, die 300 tot 500 ohm weerstand zal daar niet veel uitmaken. Waarom is het dan dat Neopixel, de bedenkers en makers van deze LED's dat dan aanraden? Dat zullen ze toch niet zomaar doen lijkt mij? Ook die inrush condensator, zal ook niet zomaar zijn toch?

Leg dat eens uit, pak het algemene schema van een dataport er eens bij zou ik zeggen en probeer het te verklaren. Of je mag van mij ook zeggen dat Neopixel (en ik) onzin praten, maar dan moet je denk ik wel van hele goede huizen komen.

/edit: Je mag van mij ook om uitleg vragen hoor, dat is ook een optie. Ik zal je alvast een beetje helpen. De ingang is tevens ook capacitief, samen met die weerstand vormt het een RC circuit om parasieten eruit te filteren. Kleine duw in de goeie richting.

/edit2: Overigens is een dergelijke current limiting resistor niet alleen bij LED's maar ook in vele andere I/O circuits gebruikt, om in eerste instantie te beschermen tegen nare situaties en als tweede als filter. Dus ik denk dat als je een schema van een dataport erbij pakt dat je al heel ver komt.

[Reactie gewijzigd door SizzLorr op 8 december 2018 21:26]

Voor zover ik weet is Neopixel een naampje bedacht door Adafruit en wordt de WS2812 door Worldsemi gemaakt :? In ieder pak ik het gegevensblad erbij:

https://cdn-shop.adafruit.com/datasheets/WS2812.pdf

... en zie nergens opmerkingen over aanbevolen weerstanden, noch zie ik in het toepassingscircuit op de laatste bladzijde een weerstand staan. Conclusie: Dit is een aanbeveling van Adafruit en niet van de fabrikant. Nu zal Adafruit zijn redenen hebben, alleen is het een beetje gissen waarom.

Een RC-circuit is geen goede verklaring: 500 ohm op 5 megaohm blijft amper een verschil, de eigenschappen van dat circuit worden dus niet significant veranderd. Dat hoeft ook niet, een RC-circuit is een laagdoorlaatfilter, maar zolang het om incidentele pieken gaat is alleen een condenator al voldoende om pieken uit te filteren. Bovendien blijft de vraag waar die parasieten vandaan zouden moeten komen een fenomeen wat er niet is, hoef je ook niet uit te filteren.
https://www.adafruit.com/category/168

Tja wie moet ik nou geloven, Neopixel een grote fabrikant van LEd producten, of een willekeurig persoon op internet?

Overigens staat het ook in de datasheet waar je naar linkt, alleen je moet wel even weten hoe je hem moet lezen.
Bovendien blijft de vraag waar die parasieten vandaan zouden moeten komen een fenomeen wat er niet is, hoef je ook niet uit te filteren.
Ok, als jij het universum even uitzet dan is dat probleem ook opgelost.

Maar goed, dit schiet niet op. Ik zal je helpen. Er zitten in die chip clamping en parasitische diodes. Als het verschil tussen de VCC en DI meer als 0,7v wordt dan ga je via de DI de VCC voeden. Als er geen current limiter tussen zit dan kan er onbeperkt veel stroom van de bron via die diodes naar de VCC stromen. Daar komt die hele 0,7v threshold ook vandaan in de datasheet.

[Reactie gewijzigd door SizzLorr op 8 december 2018 22:24]

Tja wie moet ik nou geloven
Niemand; je moet zelf verifieren en je eigen conclusie trekken op basis van de informatie en argumenten die je wordt aangeboden en zelf kan vinden.

[Reactie gewijzigd door Durandal op 8 december 2018 22:45]

SizzLor, je weet heel veel, en het is ook erg fijn dat je ons het een en ander probeert uit te leggen, maar man wat geeft alles wat jij typt mij een naar gevoel. Hoe je alles zegt, het is zo denigrerend. Nogmaals, het lijkt erop dat je veel weet, maar het is zo jammer dat je het allemaal zo vervelend overbrengt.

"Stop eens met dat"
"En wat als uuum... iemand per ongeluk"
"Ik kan dit niet vaak zat zeggen."
etc.

Als je alles op een wat rustigere manier zou vertellen zou je een groter publiek aanspreken, denk ik.

[Reactie gewijzigd door voxl_ op 9 december 2018 13:18]

Dan nog maar een reactie van mij: Natuurlijk zit er een clamper in. Maar ja, dat is wel degelijk een aanname die ik en jij doen uit algemene kennis die we hebben. We kennen het specifieke ontwerp van deze chip niet, we hebben niet het schema met alle interne transistoren en diodes erin.

Als ingenieur dienen we chips te behandelen als een zwarte doos en af te gaan op de specificaties in het gegevensblad. Binnen de redelijkheid, chips kunnen bugs bevatten, buiten hun eigen specificaties treden e.d., maar in beginsel zijn de specificaties in het gegevensblad de wet. Als die wet zegt niet meer dan 0,5V overschrijden, dan betekent dat niet dat je er toch lekker wel een te hoge spanning op gaat zetten met een weerstandje erbij, het blijft niet minder buiten specificatie. Doe je dat namelijk, dan is het een kwestie van tijd totdat je het een keer verkeerd gezien hebt en er problemen mee krijgt.

Wat betreft wat Voxl aanhaalt, je doet alsof de ander niet weet waar hij over schrijft, bijvoorbeeld dat ik niet weet wat een clamping diode is (terwijl ik daar nota bene zelf op wijs in mijn reactie, maar goed), doet alsof te dom ben dat je mij moet helpen, en dan komt uiteindelijk de aap uit de mouw: Je denkt net als mij dat de waarschuwing (wellicht) slaat op de spanningsverschillen met Vcc.

En merk op dat ik in mijn taalgebruik bewust slagen om de arm hou, zou hierboven het gebruik van het woordje wellicht: Ik kan niet in de gedachten van Adafruit kijken, dus ga niet glashard lopen beweren dat Adafruit doelt op clampingdiode-effecten. Juist een iets voorzichtiger taalgebruik i.p.v. heel stellig doen alsof je meer weet dan je discussiepartner is denk ik een goede raadgever voor wat je anders kan doen, ook dan kan je iemand ergens van overtuigen.
Neopixel zal niet zomaar aanraden om er een weerstand voor te zetten, toch?
Adadruit (nogmaals, Neopixel is een merk van Adafruit) is geen fabrikant, maar een wederverkoper van deze ledstrips en stelt dus niet de specificaties van de chip vast. Als zij een waarschuwing afgeven, dan is ik die zeker serieus nemen, maar het is ook belangrijk zelfstandig te blijven nadenken. De waarschuwing van Adafruit is niet heel goed onderbouwd, want de spanningspieken in hun letterlijke bewoording, daar hebben we beiden tot nog toe geen bron voor gezien, dus nijpt juist tot nadenken wat ze precies bedoelen. We zijn beiden uitgekomen bij de clampingdiodes. En dan zou ik in mijn voorzichtige stijl zeggen: Ik acht het het meest waarschijnlijk dat ze daar voor waarschuwen.

Ik sta achter mijn uitleg over weerstand/impedantie.
Ik kan hierop ook gaan reageren, maar er is een reden waarom open uitgangen bestaan en waarom je pull-up of pull-down weerstanden moet gebruiken.
Open uitgangen zijn weer een heel ander onderwerp dan uitgangen zoals de Arduino heeft, dat zou bijzonder off-topic gaan, dus dat lijkt me terecht.
Je kan nu wel makkelijk met de vinger naar mij wijzen,
Doe ik niet. Je manier van reageren viel mij wel op tijdens onze discussie, maar ik heb er voor gekozen de discussie inhoudelijk te houden. Het zijn anderen die gereageerd hebben op de manier van discussiëren, waarna ik me nu geroepen voelde er ook een woordje aan te wijden.
Open uitgangen zijn weer een heel ander onderwerp dan uitgangen zoals de Arduino heeft, dat zou bijzonder off-topic gaan, dus dat lijkt me terecht.
http://ww1.microchip.com/...-328-P-DS-DS40002061A.pdf

pagina 84
All AVR ports have true Read-Modify-Write functionality when used as general digital I/O ports. This means that
the direction of one port pin can be changed without unintentionally changing the direction of any other pin with
the SBI and CBI instructions. The same applies when changing drive value (if configured as output) or
enabling/disabling of pull-up resistors
(if configured as input). Each output buffer has symmetrical drive
characteristics with both high sink and source capability
. The pin driver is strong enough to drive LED displays
directly. All port pins have individually selectable pull-up resistors with a supply-voltage invariant resistance.

[Reactie gewijzigd door SizzLorr op 9 december 2018 16:11]

Tja wie moet ik nou geloven, Neopixel een grote fabrikant van LEd producten, of een willekeurig persoon op internet?
Neopixel bestaat niet (althans niet dat ik weet). Er bestaat Worldsemi en Adafruit. En Neopixel lijkt een produkt van Adafruit.
Als het verschil tussen de VCC en DI meer als 0,7v wordt dan ga je via de DI de VCC voeden.
Nou breekt me de klomp. Lees mijn stukje over batterijen die ze aanraden om het ding te voeden nog maar eens: Je gaat de uitleg die ik jou eerst gaf over dit fenomeen, nu gebruiken om mij iets uit te leggen. :?

Hoe dan ook, als dit is waar Adafruit op doelt, dan is die weerstand overbodig in een normale situatie waarbij Arduino en led uit dezelfde bron gevoed worden: Een Arduino-pin kan natuurkundig onmogelijk boven Vcc uit komen.
Nou breekt me de klomp. Lees mijn stukje over batterijen die ze aanraden om het ding te voeden nog maar eens: Je gaat de uitleg die ik jou eerst gaf over dit fenomeen, nu gebruiken om mij iets uit te leggen.
Toegegeven je zat in de buurt, maar toch las ik daar verkeerde dingen. Ten eerste zei je dat die weerstand niet nodig was terwijl dat een uitstekende verklaring is waarom die weerstand juist nodig is. Ten tweede zei je intern... dat is niet intern dat is gewoon een kortsluiting naar VCC. Dat alles zegt mij dat jij niet zo goed begrijpt wat daar aan de hand is. Als je nou had gezegd dat het verschil tussen DI en VCC op de strip boven de 0,7v is dan had ik dat geaccepteerd.

Buiten dat snap ik niet hoe je komt op 0,5v. In de datasheet staat toch echt duidelijk dat het 0,7v moet zijn.
Een Arduino-pin kan natuurkundig onmogelijk boven Vcc uit komen.
En wat als uuum... iemand per ongeluk de VCC afbreekt terwijl het bordje en de strip van twee afzonderlijke voedingen worden gevoed (zoals beschreven in de tekst)? Of uuum dat de bias van een voeding op 4,5 en de bias van de andere voeding op 5,2 is afgesteld?

[Reactie gewijzigd door SizzLorr op 8 december 2018 22:58]

En wat als uuum... iemand per ongeluk de VCC afbreekt terwijl het bordje en de strip van twee afzonderlijke voedingen worden gevoed (zoals beschreven in de tekst)?
Als dat een realistisch scenario is, dan kun je daar een bescherming tegen inbouwen. Over het algemeen ga je evenwel binnen een apparaat van uit dat daar geen rare dingen gebeuren, als je twee chips op elkaar aansluit ga je daar tussen geen beveiligingen bouwen voor het geval dat. Wat naar de buitenkant van een apparaat gaat wordt vaak wel beschermd.
Of uuum dat de bias van een voeding op 4,5 en de bias van de andere voeding op 5,2 is afgesteld?
Het is zoals ik eerder schreef: De weerstand zal in praktijk waarschijnlijk bescherming bieden, maar je overschrijdt nog steeds de specificatie van de WS2812, want je zet ook met weerstand nog steeds meer dan 0,5V t.o.v. Vcc op de data-ingang. Je gaat immers uit van vermeende kennis over het binnenwerk, maar weet dat niet zeker. Om te zorgen dat het langdurig blijft werken wil je binnen de specificaties werken en de enige manier is zorgen dat je niet een dergelijk spanningsverschil gaat krijgen. Stel je voedingen bijvoorbeeld goed af.
Als dat een realistisch scenario is
Nou, als je aan het hobbyen bent wil wel eens dingen gebeuren. Is ook de reden waarom ik clipjes en connectoren aanraad in de TS. Dus tja, als je er tijdens het hobbyen even een weerstand tussen zet (zoals Neopixel ook aanraadt een verkoper van producten voor hobbyisten) dan kan je de schade beperken als het fout gaat of als een draad los schiet of als je vergeet om de bias pot van je voedingen bij te draaien.
want je zet ook met weerstand nog steeds meer dan 0,5V t.o.v. Vcc op de data-ingang
Klopt, daarom heet het ook "current limiting resistor". Dat die kortsluiting er is ga je niet tegenhouden, de stroom die er is kan je wel beperken. Overigens, het is nog steeds 0,7v (de threshold spanning van een diode). Staat ook in de datasheet waar jij naar linkte.
Je gaat immers uit van vermeende kennis over het binnenwerk
Dus volgens jou zou er geen clamp in zitten?

[Reactie gewijzigd door SizzLorr op 9 december 2018 00:25]

Dit is de verkeerde RGB led. APA102C is een betere keuze tegenover die WS2812b.

Reden? Heel simpel. De led's zijn het zelfde op het communicatie protocol na. WS2812b gebruikt een ingewikkeld tijd protocol, je moet hiervoor bitbangen.

De APA102C maakt gebruik van SPI. Zo'n beetje iedere uC heeft een SPI peripheral. Het is een kwestie van data naar een register schrijven, eventueel via DMA. Zo is het aansturen van al die led's ineens niet blocking of tijdkritisch.
Jij slaat de spijker op z'n kop.

Het statement in het artikel over dat je een mcu of RTOS nodig hebt, is gewoon niet waar. Wellicht voor dit type ledstrip, maar APA102 niet, werkt met elk apparaat met SPI en daarnaast is SPI makkelijker te bitbangen.

Daarnaast, omdat de timing niet hard is, heb je de mogelijkheid om sneller data te versturen, of "on the fly" je volgende LED te berekenen.

Ik zou dit heel graag aangepast zien in het artikel, zo zet het mensen op het verkeerde been.
SPI valt inderdaad prima met een embedded of volwaardig OS op acceptabele snelheid te versturen.

Wil je een bepaalde refreshrate halen, dan zul je iets meer moeten doen. Maar hard realtime op 1000hz is prima mogelijk met een volwaardige Linux distributie.
Je kan elke WS28xx/SK6812/APA102 netjes aan de praat krijgen op een Orange Pi Zero board (of een Raspberry Pi board). Maak dan gewoon gebruik van baremetal programming.
Mocht je toch Linux Rasbian willen gebruiken, dan kan je in userland ook gewoon DMA/SPI doen, allemaal geen probleem. Geen glitches.
Al de WS28xx chips kan je netjes aansturen met SPI. Het verschil met de APA102(/WS2801) is, is dat deze een clock signaal nodig hebben.

Totaal geen bitbang. Tenminste niet op een Orange Pi Zero (Raspberry Pi) board -> https://github.com/vanvught/rpidmx512/tree/master/lib-ws28xx

[Reactie gewijzigd door RaspberryPiDMX op 8 december 2018 13:52]

Ik heb die methode even bekeken. Als ik het goed heb gezien wordt voor iedere bit aan data een complete byte via SPI naar buiten gegooit. Het kan, beter dan bitbangen, maar nog steeds heel lelijk. Lijkt me niet geschikt voor grote aantallen led's.

Nu zal het met een raspberry niet snel veranderen , maar je bent erg afhankelijk van de interne klok. Komt dat niet uit door een snellere of langzamere klok, dan hang je.
De SPI methode werkt perfect op een Orange Pi Zero (of een Raspberry Pi board).
Met SPI in DMA hoeft de CPU niets te doen.

Hoezo lelijk ? Gaarne een uitvoerige goed onderbouwde uitleg.
Wat zijn grote aantallen led's?

Houd er rekening mee dat je niet oneindig led's aan elkaar kan koppelen -> signaal verlies -> clock snelheid moet omlaag -> refresh rate omlaag.
Lelijk omdat SPI nooit bedoeld is om zo te gebruiken. Voor iedere bit moet je een byte naar buiten sturen. Als je DMA gebruikt moet die data vooraf in geheugen klaar worden gezet. Met pakweg 1000 led's x 3 bytes (RGB) moet je 24000 bytes (1000x3x8) aan data in geheugen klaar zetten.

Daarmee zeg ik niet dat het niet zal werken en in de hobby sfeer is het prima. Maar wanneer voor een product ontwerp een keuze moet worden gemaakt, waarbij ontwikkeltijd, stabiliteit en onderhoudbaarheid een rol speelt en er keuze is voor een beter alternatief, dan zal een SPI interface altijd boven dit timing protocol worden gekozen.
Als ik op Ali kijk, is een 60 led 3m strip APA102 zo'n 28 euro en de WS2812b is voor 60 leds 3m zo'n 14 euro.. Da's toch een aardig verschil. Dat terwijl de fastled library op de arduino prima werkt.
Ongetwijfeld dat die library zal werken. Maar het zijn nog steeds blocking functies.

Ik geloof er niks van dat die library een generieke oplossing heeft wat interrupts en DMA gebruikt en ook nog voor een brede selectie van processoren / microcontrollers
"WS2812b gebruikt een ingewikkeld tijd protocol, je moet hiervoor bitbangen." -> nee, dus.
Niets ingewikkeld aan bij de WS28xx, gewoon SPI - geen bitbangen.

De APA102/C heeft een extra clock lijn. En bij lange strips is ook 24Mhz niet te halen.
Jaaaaaa, LEDjes!

Gaaf idee, zo'n tafel. Weer een nieuwe Lack-Hack. :)

Ik zelf ook het een en ander gedaan met addreseerbare LED-strips en panelen, erg makkelijk om in te komen en leuke dingen mee te maken!

Afgelopen jaar heb ik een kubusje van LED-panelen gemaakt: https://polyfloyd.net/post/opengl-shaders-ledcube/

En het jaar daar voor een oprolbare LED-display van 5 meter breed: https://bitlair.nl/Projects/LED-Banner (er staan wat foto's onderaan de pagina)
Wow.
Dit is wel even next level.
Proficiat met dit project. Erg leuk. En nu nog bewegingssencoren inbouwen, als er dan een glas op gezet wordt, dan krijg je een rimpel, of wat anders. Dit vraagt om fase 2. Toch?
Ooit een kleine variant van dit gebouwd https://youtu.be/-i7eQDY9ZhE

Erg gaaf maar erg veel werk :D
Wat ontzettend gaaf gedaan.
Wat een puist werk. Jaren project denk ik.
Ik ben momenteel bezig met het bouwen van twee kleinere varianten hier op: https://www.reddit.com/r/.../a_hyperdimensional_cube/

Mijn hele bureau ligt vol met geanodiseerd aluminium, 4 verschillende soorten LED strips, halfdoorlatende spiegels, de verkeerde schroeven en een lege portemonnee :+

Tweakers helpt dat laatste niet echt met deze post! Ik heb nog een 8×8 en een 16×16 WS2812B matrix liggen, misschien dat ik daar op zijn minst een onderzetter en een placemat van kan maken :P

[Reactie gewijzigd door ThePendulum op 8 december 2018 15:22]

Ooit de 8x8x8 versie gemaakt: https://www.youtube.com/watch?v=npPQstjwdJ0
Was mijn eerste elektronicaproject ooit. Wat een hoop werk was dat zeg, maar wel veel van geleerd.
Niet een tafel, maar wel veel leds. (exacte aantal weet ik niet meer)
https://vimeo.com/277637193
Deze is ook leuk, een gitaar met een LED wall, aangesturd via DMX

https://www.youtube.com/watch?v=hCFKy4J_xGY
Doe het dan goed en ga voor de 3D LED cube variant
https://www.youtube.com/watch?v=dVHP7Nhsn4E
Ik heb op aanraden van Adafruit een 1000 microfarad condensator over de voedingslijn hangen van mijn ledstrips (300 stuks) om de eerste pixel te beschermen tegen startpieken.

Daarnaast heb in ook een poging gedaan om een gelijkaardig project te runnen op een esp32 maar de manier waarop de netwerkcontroller van die chip het hoofprocess onderbreekt vernielt de strakke klok timing voor de led strips. Als je Wi-Fi wilt gebruik de 8266.
Dat is vreemd, want de WIFI loopt op de ene core en de andere core is voor dit soort projecten.

Als je de juiste interface kiest kun je op hele hoge frequentie refreshen (I2S).

CNLohr heeft via deze interface zelfs een kleuren TV signaal aangestuurd (3D demo)
Hier trouwens een stukje theorie en de praktijk over het aansturen van een led-strip via I2S.

[Reactie gewijzigd door misterbennie op 8 december 2018 19:15]

Ik denk dat het een bug is in de arduino compatibility laag bovenop de espressif sdk want het is inderdaad vreemd dat het op de ene core draait en je toch timing issues hebt. Uiteindelijk had ik een esp8266 in een ander project zitten dat zo geen strakke timings nodig had dus heb ik die uitgewisseld. Heel de espressif sdk leren was veel meer moeite (en C geen C++ bah)

Interessante video maar no way dat ik dit ooit zelf programmeer.

[Reactie gewijzigd door redfox314 op 8 december 2018 12:52]

Plug 'n play op een Orange Pi Zero board: 4 Universes pixel controller-> http://www.orangepi-dmx.org/raspberry-pi-art-net-dmx-out
In theorie heeft zo'n voeding toch ook een condensator?
Voor het tweede probleem gebruik je een AP102 ledstrip (op spi gebaseerd, geen harde timing), dan kun je een leuke "connected" ledtafel met kleine webpagina of andere IoT functies.
https://learn.adafruit.co...-uberguide/best-practices
De redenering daar is, hoe meer pixels hoe groter de noodzaak voor een condensator op de voedingslijn. Als ik het goed begrijp compenseert die condensator een eventuele spanningsval in de voeding als je van 0 pixels aan naar alle pixels aan gaat. Het lijkt me bij goedkopere (chinese) voedingen helemaal geen garantie dat er zo'n condensator op zit. Iemand met meer kennis kan hier misschien opheldering bieden.
deze build door iemand anders gedaan dan de rest? Ductape op 230v? En 3 voedingen zullen op zo'n kleine oppervlakte nogal wat warmte produceren.
De warmte van leds zou je nog wat beter kwijt kunnen door ze op een alu plaat ipv karton of hardboard te plaatsen. Zelfde geldt voor de voedingen door ze op een alu te zetten en die onder de tafel te monteren. Neemt niet weg dat als je deze echt gaat belasten er veel warmte vrijkomt.
De warmte van leds zou je nog wat beter kwijt kunnen door ze op een alu plaat ipv karton of hardboard te plaatsen. Zelfde geldt voor de voedingen door ze op een alu te zetten en die onder de tafel te monteren. Neemt niet weg dat als je deze echt gaat belasten er veel warmte vrijkomt.
Niet zo erg gezien we toch van het gas af moeten :P
Stook ze heter en je kunt straks gourmetten op de tafel.
Ductape
't Is geen Ductape,maar elektriciteitstape zo te zien.
1 2 3 ... 6

Op dit item kan niet meer gereageerd worden.


Apple iPhone XS Red Dead Redemption 2 LG W7 Google Pixel 3 XL OnePlus 6T (6GB ram) FIFA 19 Samsung Galaxy S10 Google Pixel 3

Tweakers vormt samen met Tweakers Elect, Hardware.Info, Autotrack, Nationale Vacaturebank, Intermediair en Independer de Persgroep Online Services B.V.
Alle rechten voorbehouden © 1998 - 2019 Hosting door True