PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Atmega8 und viele LED?



burki
20.03.2006, 10:20
Hallo

ich möchte mit dem Atmega8 möglichts viele Leds ansteuern.
Es soll eine eindividuelle Lichtsteuerung werde.
z.b. Lauflichter, Lichtsymbole...

Leider hat der AT zu wenig Ausgänge.
Denkbar wären auch mehrere alphanumerische Displays.
Nur wie steuert man die mit z.b. 7 Datenpins an?

Hat wer Ideen?

SprinterSB
20.03.2006, 10:57
Dazu gibt es mehrere Ansätze:

-- LEDs in einer Matrix verschalten und im Zeitmultiplex ansteuern, das spart Ports
-- LEDs nicht direkt am µC betreiben, sonder Portexpander verwenden, z.B. I2C-Expander, oder SPI oder Schiebe-Latches, z.B. wie in https://www.roboternetz.de/wissen/index.php/Portexpander_am_AVR

RCO
20.03.2006, 13:31
LEDs in einer Matrix verschalten und im Zeitmultiplex ansteuern, das spart Ports


Siehe z.B.: http://home.wanadoo.nl/electro1/avr/scroll2.htm

teslanikola
20.03.2006, 15:41
Wann du ne MAtrix nimmst dann ein Tipp von mir:

Teile deine Matrix so auf, das sie zb ein Byte breit oder Hoch ist, dann erstellst du ein Feld ( Array ) aus so vielen Bytes wie die Matrix hoch bzw breit sit

Bsp.:

Matrix aus 5 x 1Byte Gibt ein Feld aus 5Bytes

x x x x x x x x
x x x x x x x x
x x x x x x x x
x x x x x x x x
x x x x x x x x

so nun stellst du den Timer so ein, das er in der sekunde mehr als 500mal in eine Interruptroutine springt, dort gibst du nun immer ein Byte aus und wenn er das nächste mal in die Interupt springt das nächste usw. Dadur ist dein Hauptprogramm fast unabhängig von deiner Ausgabe. Wenn du nun einzelne LEDs oÄ aktivieren/deaktivieren willst musst du nur per Bitmanipulation das etnprechende Bit des Byts ändern, das macht die sache recht bequem.

derbasti
22.03.2006, 20:46
Hi!

vielleicht hilft es Dir weiter mein LED-Matrix-Projekt anzuschauen, da steuert ein Mega8 640 einzelne LEDs:
http://www.derbasti.de/exponent/index.php?section=40
Schaltplan und Firmware gibts auch auf der Webpage.

Gruß, Basti