Beste mensen,
Ik heb wat hulp nodig.
ik wil een led array matrix van 5x7 gebruiken om bv de letter A te zien.
ik gebruik hiervoor een pic16f877a en 2x een i/o expander (via I2C protocol) en een uln2003 driver.
*De outputs van de eerste i/o expander staat op de anode's van de led matrix. op de elke anode staat een voorschakel weerstand van 120ohm
*De output's van de 2e i/o expander is aangesloten op de input van de uln2003.
*De output's van de uln2003 staan aangesloten op de kathode.
Op zich werkt het wel, ik kan elk ledje afzonderlijk laten branden via de microcontroller..
Maar nu.
Wat is de juiste manier om in dit blokje de letter A te voorschijn te krijgen.
Is dat om de juiste ledjes afzonderlijk heel snel op te laten lichten zodat je de letter A te zien krijgt.
Of is het is het de bedoeling dat je alle horizontale leds van de letter a tegelijk laat branden, en dat weer heel snel afwisselen met de verticale ledjes.
Beide heb ik geprobeerd echter is het allebei niet perfect.
bij de 1e optie knippert de letter A continue. Ik heb nergens een delay geprogrameerd, maar je ziet de gehele letter a duidelijk knipperen.
--kan het zijn dat het i2c protocol hier niet snel genoeg voor is???
en als er dan toch maar 1 ledje tegelijk brand, heb ik dan de uln2003 driver wel nodig???
Bij optie 2 knippert de A-letter een stuk minder. echter hier krijg ik weer dat de horizontale lijn van de a-letter (5 stuks) feller branden dan de vertikale lijn(7 stuks).
Weet iemand hoe ik het met deze opstelling wel goed kan krijgen.
of is het gewoon niet de juiste manier om een led matrix te gebruiken.
ik hoor graag van jullie.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
Da's dus multiplexing. Dat kun je per rij of per kolom doen, dat maakt niet uit. Laten we zeggen dat je per kolom multiplexed.
Je stuurt dan de rij data voor kolom 1 naar het display, doet kolom 1 aan, en wacht een aantal milliseconden. Dan doe je kolom 1 weer uit.
Daarna de rij data voor kolom 2, enz... tot je weer opnieuw met 1 begint.
Als multiplexfrequentie is iets van 60Hz prima, dat zie je niet (meer). Met 5 kolommen krijg je dan een wachttijd van 1 / (5 * 60) = 0.0033 seconden. (3.3mS) tussen elke kolom weergave.
De I2C bus beste op 400kHz zetten.
Hoi Arco Bedankt voor je bericht.
Als ik dat doe krijg ik dus dat de ledjes in de ene kolom, feller branden als in de andere.
dat is dan afhankeliJk van hoeveel ledjes er dan tegelijk branden. Wat kan ik hier aan doen. op de anode staan weerstanden van 120ohm
Ik heb 2 spanningsbronnen, de ene is een 5 volt 300ma en hangt aan de microcontroller.
De ander is een spanningsbron die 5 volt en 2a kan leveren. deze is verbonden met led matrix en uln2003. beide spanningsbronnen zijn met de min aan elkaar verbonden.
Stroom genoeg denk ik zelf.
Wat doe ik verkeerd dat de ledjes niet even fel branden?
rew
four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
Was er laatst ook niet iemand die iets over een 5x7 led matrix vroeg? Stuur hem eens een mailtje, vraag of je misschien kan samenwerken? http://www.circuitsonline.net/forum/view/115230
Hoi Rew,
dat was ik zelf, toen had jij mij nog geholpen. inmiddels ben ik een stap verder en gebruik nu een uln2003 driver..
Krijg dus geen perfect werkende led matrix nu. Leds branden niet even fel. indien er meer leds moeten branden, dan worden ze zwakker.. de ene kolom brand dan feller als de andere:s
ik denk dat ik nu weet waarom de leds niet even fel branden. Er is een verschil of je het via de kolommen laat multiplexen of per rij. ik doe het nu via rijen en alle leds branden even fel. of er nu 5 bij staat of maar 1.
Arco
Special Member
Arco - "Simplicity is a prerequisite for reliability" - hard-, firm-, en software ontwikkeling: www.arcovox.com
RobHoi
42
Is dat wel zo? Als er er maar een weerstand aanwezig is per kolom zal het wel uitmaken of je een of meer leds tegelijk laat branden per kolom.
Als er aan iedere anode een weerstand zit mag er geen verschil zijn.