hallo co´ers

ik heb een led matrix dat ik aanstuur met een pic
dit werkt perfekt

en heb een simpel progje draaien dat alleen alle led´s een voor een laat branden maar nu wil ik wel iets anders

weet iemand of kan iemand mij helpen hoe ik zoiets programeer

ik kan zelf wel wat bedenken maar moet dan elke led een voor een aan of uit zetten dit moet denk ik makkelijker kunnen

graag hulp alvast bedankt

Doe dat een voor een aansturen een beetje sneller zodat je oog niet meer kan volgen, en je ziet verschillende leds tegelijk oplichten ;)

oke maar hoe programeer ik op een simpel manier complexe structuren

Ik was ook met zoiets bezig tot mijn wisp het opgaf. Je kunt de rijen van boven naar beneden om de beurt aanzetten, en dan telkens je 'rij' op de kolommen zetten. Stel je wilt dit maken: (Een soort smiley)

-o-o-
-----
o---o
-ooo-

Dan laat je je pic eerst rij 1 hoog maken, en kolom 2 en 4 laag. (Draai laag en hoog om als je matrix andersom werkt) Vervolgens maakt de pic rij 1 laag, twee hoog, en alle kolommen hoog. (Hoog-hoog = geen licht) Daarna gaat rij 2 weer laag en rij 3 hoog, en kolom 1 en 5 hoog. Etc..

Je kunt hierbij natuurlijk heel goed gebruik maken van binaire waardes. Voor de bovenste regel, ervan uitgaand dat de 5 kolommen op pin A0 tot en met A4 zitten:
PORTA = %11110101

Dat kun je eerst bouwen met seconden ertussen, en als alles goed werkt maak je daar milliseconden van. Voilla: plaatje.

Als je trouwens meerdere leds per rij tegelijk wil laten branden, dan moet je met transistors gaan werken. Je pic kan maar max 25mA per pin aan geloof ik, met BC557 en BC547 kun je resp de positieve en negatieve kant schakelen.

[Bericht gewijzigd door mr.stijntje op (12%)]

je kan het plaatje in een array zetten:


dim smiley[4] as byte
dim x as byte
trisa = 0
trisb = 0
smiley[0] = %1110101
smiley[0] = %1111111
smiley[0] = %1101110
smiley[0] = %1110001

En dan uitvoeren


while 1=1
for x = 0 to 4
porta = 255
clearbit porta, x
portb = smiley[x]
next x
wend