Odpovídáte na názor ke článku Řízení diodové matice na Arduino UNO R4 Wifi (jinak).
ad ad 6). Já sem si neuvědomil, že tam jsou ty rezistory 2, takže ten proud není 10 mA na diodu ale cca 5 a to navíc ještě platí pokud svítí jen jedna. Pokud svítí dvě, tak se to komplikuje. V takovém nastavení tam má každá jeden rezistor u sebe a pak mají jeden společný a protože na tom teče součet proudů který teče všemi diodami, tak na něm roste úbytek napětí a to také přispíva k poklesu proudu, který teče samotnými diodami a tedy i nižšímu jasu. Zároveň to neškáluje lineárně, takže rozvícení druhé diody nezdvojnásobí spotřebu (to odpovídá předpokladu že obou LED poklesne jas, pokud by se proud zdvojnásobil, tak by měli stejný jas). Po troše hraní s kirhochovým zákonem, jsem dsotal že při sepnutí n LEDek proud tekoucí jednou ledkou je Iled(n) = (5 - 1.7) / (330 * (n + 1)) a proud tekoucí společným bodem je přirozoně n-násobek, takže Icelk(n) = (5 - 1.7) * n / (330 * (n + 1)). No po vyhodnocení tedy vychází, že jste měl pravud a LED jde paralelně spínat celkem bezpečně. Vychází to z toho, že ten nárust úbytku U na společném rezistoru to dělá velmi nelineární. Konkrétně v konfigurace, kteoru používá Arduino je možné bezpečně sepnout až cca 4 LED ve stejný okamžik a ani všech 10 limit nepřekračuje nějak výrazně. Na wolframu si můžete vykreslit jak cca klesá intenzita jasu s množstvím sepnutých LED (https://www.wolframalpha.com/input?i=%285+-+1.7%29+%2F+%28330+*+%28n+%2B+1%29%29+from+1+to+10). Pořád ten výpočet ale stále předpokládá Vf ledky konstantně 1.7V, to v reálu taky není pravda. Zkuste si pohrát třeba v tomto simulátoru: https://www.falstad.com/circuit/circuitjs.html?ctz=CQAgjCAMB0l3BWcMBMcUHYMGZIA4UA2ATmIxAUgoqoQFMBaMMAKADdxCqUAWKsLuAyEoovtSqToCFgJQhe-QYoX4FIACZ0AZgEMArgBsALg0N0N4UVMis5CvHk7dHqp-K16jp85YiSoWFYAJwVxNHdwjHkqbFwWUJRXTHkk9zVY+MSEETAkhRyQQh5ROMgWAHcCkWLnIpLyqoF+YTraxrqVZpBcBsqHJ16BhWiofq7lcTynDq78lELpsaqEHhKEPIp8jZjxqNTxIfKAczqh7uw0axZTlSG7q8kb4fvXS4DZ1yW0uo643Py-1+zyBQ1Bj2WPWwIjB0JGu1CQJSUJEEVK8XsQIucLRHh0BhMZgsVg+QXGX3mU3yfzh3wpM1khHk2DwJQurLc6k8BJ8xP81jJiI5yJZJTRmT+HLBwtGJx6UsgJVFPQhkrZgI53Q6PEu4HyOvkWueBp6ipAJve1yqFrNJuR5VCdtGdoyUPK9hN3Rd7k0+O8RL81kCtn6yqWWOp-U9GvVDKAA
ad ad 7) Způsob jak jsou zapojené taky koresponduje, ale ne s logickým pořadím. Ten layout je zvolený aby se dal dobře naroutovat na PCB. V programu je to pak ale hodně na přeskáčku. Oni to mají vyřešené tak že tam v poli mají nadefinovaný jaké logické číslo pixelu odpovídá kombinaci "napájeích pinů" pro danou LED. Kdyby si to popřeházeli v tom poli, tak taky nepotřebují reverse().
ad ad 12) IOPORT_CFG_PORT_DIRECTION_INPUT je wrapper Arduina nad Renesas API. Pokud tam mají nějaký bug, tak jim to nahlaste. Stejně jako uživatel Arduina byste měl ale používat pinMode a ne jejich teoreticky interní API.
ad ad 13) tak tím že máte 9.6x větší duty cycle, tak máte cca 9.6x vyšší jas než knihovna Arduina. Rozdíl jasnosti vašich framů je maximálně 5.5x podle toho kolik svítí led. Viz. poměr Iled(1) / Iled(10) dle vzorečků výše. Extrémní případ toho chování je když si uděláte animaci kde na jednom snímku bude 1 LED svítit a na druhém celá matice, nebo alespoň těch 10 LED, které jsou připojené k jedné "řadě". Lidské oko a kamera fungují trochu jinak, takže i pocit z toho může být v reálu jiný než na videu.
Intenzivně se zabývám programováním zejména v jazyce C++. Vyvíjím vlastní knihovny, vzory, techniky, používám šablony, to vše proto, aby se mi usnadnil život při návrhu aplikací. Pracoval jsem jako programátor ve společnosti Seznam.cz. Nyní jsem se usadil v jednom startupu, kde vyvíjím serverové komponenty a informační systémy v C++
Přečteno 51 398×
Přečteno 24 146×
Přečteno 22 952×
Přečteno 21 210×
Přečteno 17 919×