Forum: Mikrocontroller und Digitale Elektronik 1000 Leds an Atmega32


von Florian (Gast)


Lesenswert?

Hi

Für eine Weihnachtsbeleuchtung möchte ich mit einem Atmega 32 ca. 1000 
Leds ansteuern. Ich habe am Atmega 32 30 I/O zur Verfügung. Einen 
brauche ich für einen Taster. Es bleiben also 29 Pins für die Leds. Wenn 
ich diese nun multiplexe, kann ich damit höchstens 14x15 = 210 Leds 
ansteuern. Ich möchte allerdings mehr. Gibt es eine Möglichkeit wie ich 
mehr Leds ansteuern kann? Ausserdem habe ich bedencken, dass die Leds 
flackern könnten, wenn ich so viele multiplexe. Ich wäre sehr dankbar 
für Tipps!

Freundliche Grüsse
Florian

von Mike A. (Gast)


Lesenswert?

Florian schrieb:
> Gibt es eine Möglichkeit wie ich mehr Leds ansteuern kann?

Gibt es. Das Zauberwort heißt Schieberegister. Dann kannst du über das 
SPI soviele LEDs ansteuern, wie dein Prozessor schafft.

von Kai S. (kai1986)


Lesenswert?

Hallo,

wenn du mehr Pins benötigst kannst du z.B. mit Schieberegistern die 
Ports erweitern.
http://www.mikrocontroller.net/articles/Porterweiterung_mit_SPI

Bei den LEDs wirst du aber vermutlich auch noch Treiber benötigen, um 
die Ströme zu bewältigen.

Gruß Kai

von Motek (Gast)


Lesenswert?

Die Bausteine MAX7219-MAX7221 könnten helfen deine Aufgabe zu lösen. 
Allerdings brauchst du für 1000 LEDs 16 Stück.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Florian schrieb:
> ansteuern. Ich möchte allerdings mehr. Gibt es eine Möglichkeit wie ich
> mehr Leds ansteuern kann? Ausserdem habe ich bedencken, dass die Leds
> flackern könnten, wenn ich so viele multiplexe. Ich wäre sehr dankbar
> für Tipps!

 HCT574 und ULN2803 ?
 Wahrscheinlich die beste Wahl, weil du mit jeweils 4 Stück 1024 LEDs
 muliplexen kannst, mit 1/16 Ratio oder besser.

: Bearbeitet durch User
von Motek (Gast)


Lesenswert?

> HCT574 und ULN2803 ?
> Wahrscheinlich die beste Wahl, weil du mit jeweils 4 Stück 1024 LEDs
>  muliplexen kannst, mit 1/8 Ratio.

Kann ich nicht glauben: Bitte Schaltplan bzw. Skizze posten.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Motek schrieb:
> Kann ich nicht glauben: Bitte Schaltplan bzw. Skizze posten.

 Sorry, sollte heissen:
 jeweils 4 für Low und High Side.
 Dann aber UDN2981 an der Highside.

von Oliver R. (orb)


Lesenswert?

Marc Vesely schrieb:
> HCT574 und ULN2803

Also eigentlich einen TPIC6B595?

von ;-) (Gast)


Lesenswert?

Motek schrieb:
> Die Bausteine MAX7219-MAX7221 könnten helfen deine Aufgabe zu
> lösen.
> Allerdings brauchst du für 1000 LEDs 16 Stück.

Da kann er gleich nen ATmega8 nehmen und diesen mit ner firmware 
versehen die das macht. kommt günstiger ;-)

von Florian (Gast)


Lesenswert?

Hi

Danke für die schnellen Antworten!
Wenn ich MAX7219 verwende kostet mich das 63.48 Euro, was leider etwas 
teuer ist. Auf der Suche nach Portexpandern, habe ich den PCF8574 
gefunden. Wenn ich 8 davon nehme, habe ich 64 Pins. Damit kann ich eine 
32 x 32 = 1024 LED Matrix betreiben (Mit Treibern natürlich). Liege ich 
damit richtig? Hat einer von euch Erfahrungen mit diesen Chips?

Freundliche Grüsse
Florian

von Peter II (Gast)


Lesenswert?

Florian schrieb:
> Damit kann ich eine
> 32 x 32 = 1024 LED Matrix betreiben (Mit Treibern natürlich). Liege ich
> damit richtig?

rechnerisch ja, Praktisch wird es aber kaum gehen. die LEDs haben dann 
nur noch 1/32 ihrer Helligkeit. Und mehr als den 5fachen Strom bekommt 
man nicht durch.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Oliver R. schrieb:
> Also eigentlich einen TPIC6B595?

 LOL.
 Vom Prinzip her ja, aber nicht vom Preis.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Florian schrieb:
> teuer ist. Auf der Suche nach Portexpandern, habe ich den PCF8574
> gefunden. Wenn ich 8 davon nehme, habe ich 64 Pins. Damit kann ich eine
> 32 x 32 = 1024 LED Matrix betreiben (Mit Treibern natürlich).
 Und bezahlst 4 Mal so viel wie für HCT574 und ULN2803.
 Und bist 8 Mal langsamer.
 Und Ausgangpins sind durcheinander.

 HCT574 und ULN2803 kannst du direkt hintereinander auf eine Lochraster
 Platine mit Linien löten.

von Kai S. (kai1986)


Lesenswert?

Ist es für die Weihnachtsbeleuchtung überhaupt nötig alle LEDs einzeln 
ansteuern zu können? Vielleicht kannst du ja auch LED Gruppen machen, 
die dann angesteuert werden. Damit lässt sich der Schaltungsaufwand 
massiv reduzieren, wenn auch nicht mehr jedes beliebige Muster 
darstellen.

Gruß Kai

von avr (Gast)


Lesenswert?

Marc Vesely schrieb:
> LOL.
>  Vom Prinzip her ja, aber nicht vom Preis.

wer immer da kauft wo es am teuersten ist mag darüber lachen.
Den IC gibts für 30cent bei tme und ist deutlich sinnvoller als der alte 
und lahme uln.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

avr schrieb:
> wer immer da kauft wo es am teuersten ist mag darüber lachen.
> Den IC gibts für 30cent bei tme und ist deutlich sinnvoller als der alte
> und lahme uln.

 Wer noch nie etwas selbst gemacht hat, sondern nur fleissig googelt,
 wird auch nie wissen warum die Pins beim ULN und HCT574 gerade so
 angeordnet sind.
 Und wieso der ULN lahm sein soll ist mir erst recht unklar.

von avr (Gast)


Lesenswert?

Marc Vesely schrieb:
> Wer noch nie etwas selbst gemacht hat, sondern nur fleissig googelt

Woher glaubst du das zu wissen? Ich hab beide Varianten schon eingesetzt 
und werde den uln wohl nie mehr verwenden. Die zweite ist sowohl 
günstiger als auch schneller. Die Schaltgeschwindigkeit vom uln ist 
~1µs. Das ist ziemlich lahm. Aber selbst die Variante mit dem TPIC ist 
mMn nur bedingt geeignet. Wenn man ein Konstantstromschieberegister 
nutzt, spart man sich gleich noch die Widerstände (z.B. SCT2024, 16bit, 
~30cent). Den IC verwende ich in einem aktuellen Projekt gleich 16 mal. 
Und wer braucht bitte schön Pinouts für Loch oder Streifenraster?? Die 
Platinen werden geätzt oder bestellt. Die meisten interessanten Bauteile 
gibt es heute sowieso nur noch in SMD.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Es gibt doch die fertigen RGB-LED-Stripes mit dem Chip WS2812(b) - die 
sind alle seriell miteinander verbunden und können mit bis zu 25MHz 
"durchgeschoben" werden. Es gibt Freaks, die bauen damit ganze 
Matrixdisplays, indem sie die Stripes z.B. im Zick-Zack aufkleben.

Fünf Meter kosten ca. 50..70 Euro, je nach LED-Dichte (gibts bis 144 
LEDs pro Meter). Das Protokoll ist bekannt ...

von Melodram (Gast)


Lesenswert?

> Es gibt Freaks, die bauen damit ganze Matrixdisplays, indem sie die
> Stripes z.B. im Zick-Zack aufkleben.

Hast du einen Link auf ein Display aus Stripes?

von Melodram (Gast)


Lesenswert?

> Es gibt Freaks, die bauen damit ganze Matrixdisplays, indem sie die
> Stripes z.B. im Zick-Zack aufkleben.

Hat sich erledigt: es gibt ja Millionen :)

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?


von Blinkerbauer (Gast)


Lesenswert?

Ich habe sowas mit Hilfe dieses Artikel gemacht:

[Analog-IO_mit_digitalen_Bausteinen]

von Florian (Gast)


Lesenswert?

Hi

Danke für die Antworten!
Ich verstehe leider nicht genau, wie man so viele LEDs mit 
Schieberegister ansteuern kann ohne Matrix.

LG
Florian

von Max H. (hartl192)


Lesenswert?

Florian schrieb:
> Ich verstehe leider nicht genau, wie man so viele LEDs mit
> Schieberegister ansteuern kann ohne Matrix.
Im Falle der 75HC595 wären es 1000/8=125 hintereinander. Nach diesem 
Prinzip können theoretisch beliebig viele SR kaskadiert werden: 
https://www.mikrocontroller.net/wikifiles/d/dd/Hc595-porterweiterung.png

von Florian (Gast)


Lesenswert?

Hi

125 ICs sind mir zu zum löten. Gibt es keine andere Möglichkeit?

LG
Florian

von Mike A. (Gast)


Lesenswert?

Florian schrieb:
> Gibt es keine andere Möglichkeit?

Gemultiplexte Matrix Ansteuerung.

von Georg (Gast)


Lesenswert?

Florian schrieb:
> 125 ICs sind mir zu zum löten. Gibt es keine andere Möglichkeit?

Ein 595 bringt dir 8 Pins, also brauchst du zum Multiplexen 16 x 64 
(mehr als 16fach muxen ist ungünstig) insgesamt 10 St. dazu Anoden- und 
Kathodentreiber und Vorwiderstände (auch wenn hier noch tausendmal 
behauptet wird, dass man LEDs ohne betreibt).

So beschaltet hängen an jedem Anodentreiber 64 LEDs, also muss der, wenn 
jede LED 5 mA braucht, mit 5 x 64 = 320 mA belastbar sein. Geht nicht 
mit 2981.

Georg

von Kai S. (kai1986)


Lesenswert?

Ich bezweifel, das 1000 LEDs unabhängig anzusteuern wirklich nötig ist. 
Wenn du z.B. 4 LEDs gemeinsam ansteuerst (LED 1, LED 251, LED 501 und 
LED 751 "an einem Pin) reduzierst du deinen Schaltungsaufwand gewaltig. 
Dann benötigst du nurnoch 250 Kanäle. Dazu ein Multiplexing von 8 mal 
32. Dazu benötigst du dann 5 Schieberegister plus Treiber.

Gruß Kai

von Joachim B. (jar)


Lesenswert?

Frank Esselbach schrieb:
> Es gibt doch die fertigen RGB-LED-Stripes mit dem Chip WS2812(b) - die
> sind alle seriell miteinander verbunden und können mit bis zu 25MHz

die zeige mir mal! manno, ich habe gerade eine wordclock am Bau, der 
Takt ist maximal 800kHz, reicht für ein Bit 1,25µs mit fastLED2! weder 
ws2811 noch fastled1 erreichte das, da brauchte ich ca. 300ms und für 
eine LED mit 24 bit sind das 30µs. Somit komme ich auf 100 LEDs auf ca. 
3ms.
sind aber nicht so billig mit 51€ für 300 LEDs, aber mit 17ct pro 
individuell einstellbarer LED doch noch günstig

sollen es Stripes oder flächen werden, flächig habe ich das in 100te 
LEDs deutlich billiger gesehen.

Florian schrieb:
> 125 ICs sind mir zu zum löten. Gibt es keine andere Möglichkeit?

s.o.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Georg schrieb:
> So beschaltet hängen an jedem Anodentreiber 64 LEDs, also muss der, wenn
> jede LED 5 mA braucht, mit 5 x 64 = 320 mA belastbar sein. Geht nicht
> mit 2981.


 Wieso soll der UDN das nicht aushalten ?
 Max. 350mA bei 33% Duty Cycle, also 1/3.

 Wenn man 4 ULN2803 Horizontal und 4 UDN2981 Vertikal anlegt, ergibt
 das einen Duty Cycle von 1/16, also 6,66 Prozent. Um auf 100Hz Refresh
 zu kommen, sollte das Multiplexen mit 1600Hz erfolgen, ist also
 durchaus machbar. Nur musste man halt die anderen 15 Blöcke immer
 ausschalten, deswegen ist das mit SER=>PAR schwer machbar.

____
     |---L--L--L--L--L--L--L--L--------L--L--L--L--L--L--L--L---
     |   |  |  |  |  |  |  |  |        |  |  |  |  |  |  |  |
     |---L--L--L--L--L--L--L--L--------L--L--L--L--L--L--L--L---
     |   |  |  |  |  |  |  |  |        |  |  |  |  |  |  |  |
  U  |---L--L--L--L--L--L--L--L--------L--L--L--L--L--L--L--L---
  D  |   |  |  |  |  |  |  |  |        |  |  |  |  |  |  |  |
  N  |---L--L--L--L--L--L--L--L--------L--L--L--L--L--L--L--L---
  2  |   |  |  |  |  |  |  |  |        |  |  |  |  |  |  |  |
  9  |---L--L--L--L--L--L--L--L--------L--L--L--L--L--L--L--L---
  8  |   |  |  |  |  |  |  |  |        |  |  |  |  |  |  |  |
  1  |---L--L--L--L--L--L--L--L--------L--L--L--L--L--L--L--L---
     |   |  |  |  |  |  |  |  |        |  |  |  |  |  |  |  |
     |---L--L--L--L--L--L--L--L--------L--L--L--L--L--L--L--L---
     |   |  |  |  |  |  |  |  |        |  |  |  |  |  |  |  |
     |---L--L--L--L--L--L--L--L--------L--L--L--L--L--L--L--L---
_____|   |  |  |  |  |  |  |  |        |  |  |  |  |  |  |  |
         |  |  |  |  |  |  |  |        |  |  |  |  |  |  |  |
       __|__|__|__|__|__|__|__|__    __|__|__|__|__|__|__|__|__
      |       ULN2803            |  |       ULN2803            |

 4 x 74HCT574 und 4 x ULN2803 als Columns,
 4 x 74HCT574 und 4 x UDN2981 als Rows.
 Insgesammt etwas mehr als 10-15 EUR.

 Allerdings ist bei Duty Cycle von 1/16 die Helligkeit auch
 entsprechend niedriger.
 Oder man nimmt 64 Transistoren und fährt mit einem Duty Cycle
 von 1/4.

von Joachim B. (jar)


Lesenswert?

Marc Vesely schrieb:
> 4 x 74HCT574 und 4 x ULN2803 als Columns,
>  4 x 74HCT574 und 4 x UDN2981 als Rows.
>  Insgesammt etwas mehr als 10-15 EUR.
>
>  Allerdings ist bei Duty Cycle von 1/16 die Helligkeit auch
>  entsprechend niedriger.
>  Oder man nimmt 64 Transistoren

wer will denn das verdrahten oder Leiterplatte für 1x bauen?

da bleibe ich lieber bei Stripes oder fertige Platinen mit ws2811/12/b

oder mit Modulen von 16 x 32 o.ä.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Joachim B. schrieb:
> wer will denn das verdrahten oder Leiterplatte für 1x bauen?

 Der TO.
 Er sprach von 1000 LEDs, nicht ich.
 Ich würde das auch mit Stripes und ws28xx machen, aber er will es
 anscheinend anders.

: Bearbeitet durch User
von Guest (Gast)


Lesenswert?

Mal abgesehen von der Hardwaretechnischen Ansteuerung, wie soll das 
Softwaretechnisch gemacht werden?
Bei einem so grossen Aufwand sollen ja auch anständige Leuchtmuster 
wiedergegeben werden. Ob das ein Atmega 32 schafft?

Ich würde WS2801 LED Strips oder Lichterketten nehmen, einen DMX oder 
ArtNet Converter und eine gescheite Lichtsteuersoftware oder ein Pult 
nehmen.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Guest schrieb:
> Bei einem so grossen Aufwand sollen ja auch anständige Leuchtmuster
> wiedergegeben werden. Ob das ein Atmega 32 schafft?

 Bleiben genügend Pins übrig für eine SD Card.
 Nur wird der TO seine Weihnachtsbeleuchtung wahrscheinlich erst für
 Weihnachten 2015 fertig gelötet haben.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Marc Vesely schrieb:
> Allerdings ist bei Duty Cycle von 1/16 die Helligkeit auch
>  entsprechend niedriger.

 Und bei einem Duty Cycle von 1/128 erst recht.
 Kopf ==> Wand (mehrmals).

von Georg (Gast)


Lesenswert?

Marc Vesely schrieb:
> Wenn man 4 ULN2803 Horizontal und 4 UDN2981 Vertikal anlegt

Und wie bitte steuerst du damit 1000 LEDs an? Für mich ist 16 x 16 = 
256, aber du weisst da sicher mehr drüber. Bitte klär mich auf.

Georg

von P. M. (o-o)


Lesenswert?

Mit Schieberegistern habe ich schon 300 LEDs von einem Atmega32 sogar 
mit 7-Bit-PWM angesteuert. Ist sportlich, geht aber. Vermutlich würde 
bei 1000 LEDs noch 5 Bit drin liegen.

von avr (Gast)


Lesenswert?

P. M. schrieb:
> Mit Schieberegistern habe ich schon 300 LEDs von einem Atmega32 sogar
> mit 7-Bit-PWM angesteuert. Ist sportlich, geht aber. Vermutlich würde
> bei 1000 LEDs noch 5 Bit drin liegen.

Mit BAM und Jitterkorrektur geht auch deutlich mehr. 10bit sind 
definitiv möglich, auch bei 1000 Leds. Wenn man natürlich unbedingt die 
ULN Treiber nehmen möchte geht das natürlich nicht. Die sind dafür zu 
langsam. Und mit dem Dutycycle sollte man nicht unter 1/16 gehen, eher 
höher, denn sonst kann das ganze schnell zu dunkel werden.

@Marc
Bevor du weiter mit deiner tollen Schieberegister + ULN Kombination 
wetterst, solltest du dir wirklich die aktuellen Alternativen anschauen. 
Es gibt besseres, günstigeres und wirklich keinen Grund mehr diese ICs 
einzusetzen.

von Amateur (Gast)


Lesenswert?

Gerät bauen (Riesennetzteil nicht vergessen), 1000 Led's = 2000 Drähte 
verdrahten, 1000 Led's positionieren, 1000-Led Sequenzen 
programmieren...

An welches Weihnachtsfest hast eigentlich Du gedacht?

Oder wann hast Du vor Weihnachten zu feiern;)

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Georg schrieb:
> Und wie bitte steuerst du damit 1000 LEDs an? Für mich ist 16 x 16 =
> 256,
 Für mich auch, warum ?

Marc Vesely schrieb:
> Wenn man 4 ULN2803 Horizontal und 4 UDN2981 Vertikal anlegt, ergibt

 das 32 x 32, das ist für mich 1024, für dich ?

von avr (Gast)


Lesenswert?

Marc Vesely schrieb:
> das 32 x 32, das ist für mich 1024, für dich ?

1/32 dutycycle? Bei dem UDN bekommen die Leds einen Strom von ~300µA. 
Gut, immerhin nachts wird man etwas erkennen können (Als Zeilentreiber 
sind übrigens Mosfets geeigneter).

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

avr schrieb:
> 1/32 dutycycle? Bei dem UDN bekommen die Leds einen Strom von ~300µA.

 Troll dich.
 Oder such jemanden der dir vorlesen kann, was ich geschrieben habe.

von avr (Gast)


Lesenswert?

lies doch erst mal selbst was du geschrieben hast:

Marc Vesely schrieb:
> Wenn man 4 ULN2803 Horizontal und 4 UDN2981 Vertikal anlegt, ergibt
>  das einen Duty Cycle von 1/16, also 6,66 Prozent.

4 Zeilentreiber mit 8bit sind für mich immernoch ein duty cycle von 
1/32.

Marc Vesely schrieb:
> Oder man nimmt 64 Transistoren und fährt mit einem Duty Cycle
>  von 1/4.

Das sind dann aber nur 256 Leds. Keine Ahnung was jetzt die 64 
Transistoren sollen.

Eine Matrix mit 1024 Leds würde ich 8x128 aufbauen: 8 Mosfets und 
Schieberegister nach Wahl (z.B. 8x SCT2024/SCT2026). Kostet < 5€ und 
kann jede Led mit durchschnittlich 5/10mA ansteuern. Außerdem ist der 
Bauteilmenge minimal.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.