Ledmatris med ATmega16 Hjälp!?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
gurgalof
EF Sponsor
Inlägg: 1311
Blev medlem: 18 februari 2004, 22:15:06
Ort: Göteborg
Kontakt:

Ledmatris med ATmega16 Hjälp!?

Inlägg 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)
Användarvisningsbild
exile
EF Sponsor
Inlägg: 496
Blev medlem: 21 oktober 2005, 23:32:07

Inlägg 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)
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg 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.
Användarvisningsbild
oJsan
EF Sponsor
Inlägg: 1541
Blev medlem: 11 november 2005, 21:36:51
Ort: Umeå
Kontakt:

Inlägg 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
danei
EF Sponsor
Inlägg: 27427
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg av danei »

Jag skulle nog säga mer än 75Hz
Användarvisningsbild
JimmyAndersson
Inlägg: 26579
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg 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. :)
danei
EF Sponsor
Inlägg: 27427
Blev medlem: 2 juni 2003, 14:21:34
Ort: Östergötland
Kontakt:

Inlägg 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.
Användarvisningsbild
gurgalof
EF Sponsor
Inlägg: 1311
Blev medlem: 18 februari 2004, 22:15:06
Ort: Göteborg
Kontakt:

Inlägg 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)
Användarvisningsbild
JimmyAndersson
Inlägg: 26579
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Ser bra ut! :tumupp:

Hur hur snabbt byter du vilken lysdiod som ska vara tänd?
Användarvisningsbild
gurgalof
EF Sponsor
Inlägg: 1311
Blev medlem: 18 februari 2004, 22:15:06
Ort: Göteborg
Kontakt:

Inlägg 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.
Skriv svar