Sida 1 av 1

Ledmatris med ATmega16 Hjälp!?

Postat: 21 februari 2006, 16:55:05
av gurgalof
Jag har kopplat upp en Ledmatris med en ATmega16.

Det jag behöver hjälp med är att skriva bokstäver till den, eller rättare sagt diagonala linjer.

BildBild
Om vi säger att det ska se ut som på första bilden, så blir det som på den andra bilden.

Jag programmerar i assembler.

(Det enda jag har lyckats med är att hmm bäst att förklara med Film)

Postat: 21 februari 2006, 17:45:50
av exile
Lösningen är enkare än vad du tror...
Man har bara "på" den rad man vill arbeta med, genom att uppdatera alla raderna snabbt så ser det ut som man kan tända och släcka dioderna var för sig....

Hoppas du för stog vad jag menar (lite flumit skivet)

Postat: 21 februari 2006, 17:46:39
av oJsan
Aha..du måste använda muliplexing! Det är en teknik som går ut på att man i snabb takt tänder [1,1] och sedan [2,2], sedan [1,1], sedan [2,2]...
ögat blir då lurat och tror att de lyser samtidigt fast de egentligen blinkar varannan gång. För att man inte ska se flimret så måste du växla ca 50ggr per sekund eller mer.
Hur du lämpligast löser programmeringen har jag inget direkt bra svar på, men jag skulle i allfall välja att konfigurera en avbrottsstyrd timer som körs med jämna mellanrum och i den göra utskrifterna. I huvudprogrammet skulle du kunna skriva till en global variabel som används av avbrottsrutinen.

Postat: 21 februari 2006, 17:49:48
av oJsan
exile vara lite snabbare... =)

Ett tips till... använd fem bytes för att lagra varsin kolumn. Avbrottsrutinen får sedan läsa bit för bit (utom den sista) i de fem byten och tända motsvarande LED. Så håller den på i evigheter... sen är det bara att uppdatera de fem byten från huvudprogrammet

Postat: 22 februari 2006, 01:52:52
av danei
Jag skulle nog säga mer än 75Hz

Postat: 22 februari 2006, 12:40:14
av JimmyAndersson
När vi ändå kommer in på den diskussionen igen:
"Blinkhastigheten" beror ju på hur snabbt lysdioderna kan tända/släcka och om de släcks med en gång eller snabbt tonar ner.

TV-apparater (gamla hederliga) kör ju med 50Hz och de upplevs ju inte som särskillt flimriga pga fosforet (om jag inte är ute och cyklar..)

Men visst, ju snabbare desto vänligare för ögonen. Dessutom blir det lättare/trevligare att filma om de blinkar snabbt. :)

Postat: 22 februari 2006, 13:19:23
av danei
Efterlysningen på en diod är obefintlig. Så där blir det flimmer. En TV funkar ju bättre. men även en glödlampa, som har efterlysning flimmrar vid 50Hz. Vid 75Hz är det svårt att se något. Men gå gärna över 100Hz. Ofta kommer man klart över de frekvenserna utan att anstränga sig.

Postat: 10 mars 2006, 23:28:34
av gurgalof
Sådär, har inte kunnat arbeta på den så jätte mycket men det funkar nu.

Tack allesammans för er hjälp!

En liten film på resultatet HIT ME (4.33Mb)

Postat: 10 mars 2006, 23:48:04
av JimmyAndersson
Ser bra ut! :tumupp:

Hur hur snabbt byter du vilken lysdiod som ska vara tänd?

Postat: 10 mars 2006, 23:55:39
av gurgalof
Jag vet faktiskt inte hur snabbt...
Jag har inte räknat på det men jag kan säga att det ser mkt bättre ut i verkligheten, än i filmen (mobilkamera...)

Då det här är det första jag har gjort i både assembler och på en AVR så är jag riktigt nöjd. Synd bara att man inte hade haft mer tid.