www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik viele led's mit einem Atmel ansteuern


Autor: sucker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Für mein Schulprojekt muss ich 40 und evtl. mehr Rgb Led's ansteuern
können. Und da habe ich gleich an eine Art Matrix gedacht, diese kommt
aber für mich nicht in frage, da ich jede led einzeln ansteuern können
muss, und sobald da mehr als zwei led's leuchten würden, würden andere
unerwünschte led's mitleuchten.. deswegen frage ich hier einmal, welche
anderen Möglichkeiten ich sonst noch hätte?
Evtl. andere Controller oder so.. die ich mit einem Bus mit dem Atmel
verbinden kann, da habe ich nämlich so einen Chip aus einem alten
LCD-Display.... da schickt man eine Zahl hin, und dann wird an einem,
der zahl entsprechendem Pin, spannung angelegt...
Auf jeden Fall wäre ich für Vorschläge sehr dankbar.

Thx in advance

Autor: Karl heinz Buchegger (heinzi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schieberegister

Autor: sucker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo, kann ich damit auch mehrer Led's gleichzeitig leuchten lassen?
dh. wirklich nicht hintereinander, sondern wirklich zur gleichen zeit?

Autor: Berti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wo liegt das problem bei einer Matrix? macht doch ein LC Diplay genau
das gleiche Prinzip!

Autor: sucker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, aber da wird doch led nach led eingeschaltet.. halt nur ganz schnell
hintereinader..
Bei einer Matrix ist es nämlich so, dass wenn ich zwei bestimmte Led's
leuchten lasse, dann leuchtet eine 3 unerwünschte automatisch auch mit,
und das darf bei meinem projekt nicht passieren..ich muss mehrer oder
gar alle leds gleichzeitig zur gleichen zeit leuchten lassen, und zwar
wirklich zur gleichen zeit..

Autor: Karl heinz Buchegger (heinzi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Yep.
Ein Schieberegister must Du Dir wie Deine Ports vorstellen.
Nur kannst Du nicht jeden Pin 'direkt' erreichen.
Du taktest die Ausgabedaten durch. Bei jedem Takt wird
die komplette Belegung um eins weitergeschoben.

Ist so wie bei der Feuerwehr in den alten Tagen.
Die Maenner bilden eine Kette. Dem ersten drueckst
du einen gefuellten oder nicht gefuellten Eimer in die
Hand. Wenn Du ihm den naechsten Eimer gibt, dan gibt er zuerst
seinen an seinen Nachbarn weiter (der ebenfalls seinen an seinen
Nachbarn weitergibt, etc.). D.h. wenn du 40 Maenner hast
und dem ersten insgesamt 40 Eimer gegeben hast, dann hat jeder
einen. Auf Kommando drehen dann alle ihre Eimer um, und je nachdem
in welcher Reihenfolge du die gefuellten Eimer beim ersten Mann
eingespeist hast, entsteht am Boden ein tolles Muster aus
Wasserflecken.

So aehnlich halt, nur mit IC's :-)

Autor: Karl heinz Buchegger (heinzi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh. Ich vergass.
Das weiterschieben geht in einem Schieberegister natuerlich
ohne dass man es an den Ausgaengen sieht.
Die Ausgaenge behalten ihren alten Zustand bis der Befehl
zur Uebernahme aus der Schiebekette kommt.

Autor: Ithamar Garbe (antimon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@sucker (toller Name übrigens :P):

Klar kannst du mehrere gleichzeitig leuchten lassen... und das
prinzipiell sogar beliebig weit kaskadierbar...

Such dir mal ein Datenblatt von nem Schieberegister, das Prinzip sollte
dir (hoffentlich) klar sein. Du schiebst deine Daten erst rein, und wenn
alle eingetroffen sind übernimmst du die parallel an den Ausgang, das
HC595 kann das beispielsweise...

Autor: sucker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann mir da jemand ein beispiel dafür geben? bin auf der FOS und weis
noch nicht was ein schieberegister ist und wie das funktionier..
Aber wenn das geht, dann wäre das natürlich sehr sehr gut für mich
geeignet..

danke für die info!

Autor: Matthias Beitz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du kannst das auch in einer Matrix machen. Dafür brauchst du dann 5x8
Ports pro Farbe. Du musst das dann Zeilenweise Ansteuern und das
schneller wie das Auge sehen kann also mit sagen wir mal 50Hz. Dann
kannst du auch Belibig LEDs ein und Ausschalten ich hab das irgendwann
mal mit einer 8x8 Matrix gemacht.

Autor: sucker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das geht leider nicht:( weil ich vor habe etwas ähliches wie eine
litfassäule zu machen, da habe ich eine Spalte leds (20 Leds
untereinander) und diese Spalte wird dann 360° gedreht bei einer hohen
umbrehungszahl.
und deswegen müssen alle led's auch gleichzeitig, ohne geringe
verzögerung an und ausgehen, da sonst das bild verziehen würde wenn ich
die leds von oben nach unten leuchten lassen würde..

Autor: bluppmator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
(Gibts eigentl. nen Schieberegister dessen 8 Ausgänge ich mit 20mA
belasten kann, allerdings bei allen Ports gleichzeitig ?)

Autor: sucker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nimm halt einen transistor bei jedem ausgang ..

Autor: bluppmator (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..genau die Dinger wollte ich mir dadurch sparen ;D

Autor: Berti (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
und ein ULN?

Autor: Philipp Burch (philipp_burch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@sucker:
Wie wär's denn mit mehreren µCs? Wenn du 120 IOs brauchst, dann
könntest du ja z.B. 3 ATmega64 (Einen pro Farbe z.B.) verwenden, die
haben je 53 IOs. Und dann über irgendeine Schnittstelle die Komm
regeln. Kostet aber ordentlich Geld nehm' ich mal an.

Autor: Sssssss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!

Ah ne Propeller Clock ;)
Bei meiner hängt an jedem Atmel Pin eine led die 15mA zieht.
Insgesamt ein wenig ausserhalb der Spezifikationen, aber
die Atmels sind ja sehr robust. ;D

Guck dir zb mal die ispf propellerclock an:
http://www.ispf.de/modules.php?name=News&file=arti...
http://www.ispf.de/files/propellerclock/decoder_sch.gif
Dort werden 2 ULN2003 verwendet.

Sonst nimm halt kleine mosfets in sot23 Bauform (smd).

Oder such mal hier im Forum nach "propeller" dort findest du einige
Anregungen ;)

Autor: Schoaschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder wie wärs mit einem IO-Expander?! Gibt welche mit 28Ausgängen die
direkt LEDs treiben können. Davon nimmst du halt 2.Angesteuert werden
diese entweder über I²C oder SPI.

Aber eine Matrix würde doch auch gehen.
Ich steuer damit 64 Leds.. naja ok sagen wir 32, da immer 2 in serie
sind... an :-)

Autor: Christof Rieger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sollen die virtuellen Lichtpunkte auch noch in der Helligkeit variert
werden können ? (mehr als 8 Farben)

Autor: TobyTetzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe seiner Zeit HC595 Schieberegister verwendet.
Diese leuchteten so lange im alten muster, bis die neuen Daten
"durchgeschoben" waren, und dann vom Storage Register ins
Anzeigeregister "geschoben" wurden.
Als MC nutzte ich einen Mega8, denn der hat eine Hardware SPI.
So habe ich im Hintergrund die Daten in die HC`s geschoben,
während der AVR mit der Umdrehungsgeschwindigkeit und der
Spaltenzeitberechnung zu tun hatte.

Es gibt VHC595, die können pro Ausgang 20mAh treiben.
Das spart die Transistoren, bzw. das ULN.

Gruß Toby

Autor: AntonWert (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie geht das mit dem SPI? kann ich das direkt mir dem Schieberegister
verbinden?

Autor: TobyTetzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

suche mal unter "HC595" hier im Forum.
Du hast am AVR eine Datenleitung (MOSI), darüber gehen die Daten,
eine Taktleitung (SCK),
eine Enableleitung (Portpin von AVR, EN an HC595),
und dann noch Plus und Minus.

Also 5 Leitungen vom AVR zum Schiberegister.

Dann schreibst Du einfach 8 Bit ins SPI Register,
Enable Leitung einmal High/Low, und die Daten vom Storageregister
(Speicher der HC595) ins Anzeigeregister zu kopieren,
und die Ausgänge der HCs zeigen dein Bitmuster an, bis du neue Daten
ins HC schiebst.

Die Beschaltung findest du auch hier, schau mal unter "Hagens"
Schaltplan, der hat einwandfrei funktioniert.

Gruß Toby

Autor: sucker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo, danke für euere tollen Beiträge.
Ich denke ich nehme ein Schieberegister, matrix geht wirklich nicht..
aber das mit dem IO-expander hört sich auch gut an..

Habe da einen chip da, der hat 60 anschlüsse oder so, und bestitzt 7
pin  bus leitung.. über die man eine zahl übertragen kann, sodass dann
derjenige pin auf High geht.. Ist einer aus einem alten LCD display.

thx

Autor: olda (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sowas nennt sich multiplexer wenn ich mich nicht irre. mit sowas kannst
du aber nur einen aus den 60 leds ansteuern.

Autor: sucker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
oh, na dann ist das nichts für micht. Dann nimm ich mal das
Schieberegister.
ich denke ich mache das so, dass ich 3 µcpus nehme (für jede Farbe
eine) und dann jeweils 5 Schieberegister anschließe.
ich muss ja dann jeweils für jede Farbe 40 bits hintereinander an die
Schieberegister ausgeben, wie lange (wie schnell) dauert das, bis alle
40 bits ausgegeben wurden, sodass alle Leds leuchten?
Gibt es auch Schieberegister die mehr als 8 bit haben?
16Bit zb?



danke

Autor: TobyTetzi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

beim Mega kannst du mit 1/2 des MCU Taktes die SPI Schnittstelle
nuten.
Ich hatte mit 4 Schieberegistern, 8 MHz MCU Takt, 720 Spalten pro
Umdrehung keine Probleme.

Probier es einfach mal aus.

Wie teilst Du den 3 Prozessoren mit, bzw. den 2 Anderen, was sie machen
sollen?
Ich hatte mal eine Idee, einen als Master laufen zu lassen,
der die Bilder hat.
Die anderen 2 als Slave, die nur die Leds treiben.

Gruß Toby

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guckst Du hier:

http://home.arcor.de/juergen.schuhmacher/eagleseve...

Geht auch für normale LEDS!

Autor: rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
^Hallo, mache grad auch sowas ähnliches.
Ich benutze da einen I2C LED Treiber, der kann je Modul 16Led's
treiben "PCA9532". Den gibt es als Dimmer und als Blinker.
Des weiteren kann man die PWM (Helligkeit) pro LED einstellen. Perfekt
also für RGB ansteuerung. Mit 3 Bausteinen (1Baustein pro Farbe) davon
kannst du das gesamte Farbspektrum abbilden

Autor: sucker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey, das mit dem PCA9532 gefällt mir, kann ich da auch alle 16led's
gleichzeitig leuchten lassen?
Und da hätte ich gleich noch eine frage, nämlich: Wozu sind Latches
gut? Was ich rausbekommen habe ist: es sind transparente flip-flops,
wobei ich weis, dass filp-flops als speicher verwendet werden... Wozu
kann man diese Latches denn bei Schieberegistern verwenden, welchen
Zweck haben die?

danke

Autor: Jürgen Schuhmacher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Latches speichern die einmal eingeschriebene Information - siehe
Funktion des AdressLatchs  bei kombinieren AdressDatenbussen.

Die Latches HIER werden mit einem einzigen Datenbus parallel
beschrieben, aber nur eins per chip select aktiviert. Damit leuchten
die LEDS dauerhauft, während die auf dies Weise angesprochenen
LED-Maxtrix-Systeme immer blinken und hohe update-Raten benötigen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.