mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Spannung/Strom(?) dynamisch regeln


Autor: Uwe Berger (boerge) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

Ausgangspunkt ist eine Schaltung, in der 0-8 LEDs gleichzeitig leuchten 
können. Knackpunkt ist, dass es halt 1 oder 2 oder ... LEDs sind. Nach 
dem Aufbau hat sich nun herausgestellt, dass, je nachdem wieviel LEDs 
gleichzeitig an sind, die Helligkeit variiert.

Die Ansteuerung jeder LED erfolgt prinzipiell über 3 Transistoren 
ungefähr so:

      +
      |
    |/
  --|
    |\
      |
      V
      -  LED
      |
      |
    |/
  --|
    |\
      |
      |
    |/
  --|
    |\
      |
     GND

Das Ganze stellt mehr oder weniger eine Matrix dar, die "ge-"multiplext 
ist.

Frage ist nun eigentlich: Kann man da noch irgendwo ein Regler für Strom 
oder Spannung (?) möglichst zentral (es sind genau 512 LEDs) einbauen, 
der die Helligkeitsunterschiede ausgleicht und dies auch noch relativ 
schnell kann, da ja Multiplexing? Wie müßte dieser Regler aussehen und 
was müßte der eigentlich regeln?

Bitte nicht für die Fragen gleich schlagen, ich bin halt nicht der 
Profi-Elektroniker...

Grüße & Danke Uwe

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus der Schaltung kann ich nicht viel entnehmen, es soll doch eine 
Matrix sein??

Poste mal bitte einen Schaltplan, wo man die Matrix (zB mit 10LEDS) 
erkennt.
Wie ist also Zeilen/Spaltenansteuerung etc...

Autor: Uwe Berger (boerge) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MoinMoin,

> Poste mal bitte einen Schaltplan, wo man die Matrix (zB mit 10LEDS)
> erkennt.
>
ja natürlich kein Problem. Unter diesem Link ist ein Stück Schaltplan zu 
finden:

http://bralug.de/wiki-common/images/f/f7/Cube_matr...

Die dort abgebildete Schaltung ist zwar für eine Matrix mit einer 
kleineren Dimension, sollte aber das Prinzip besser verdeutlichen.

Die vorgelagerte Steuerungselektronik sieht so aus:

http://bralug.de/wiki-common/images/e/e2/Cube_deco...

Davor werkelt ein Mikrocontroller, der die Daten entsprecheend 
aufbereitet

> Wie ist also Zeilen/Spaltenansteuerung etc...
>
Es handelt sich um eine 3D-Matrix die grob gesprochen so gesteuert wird, 
dass eine der quasi 64 vorhanden Zeilen zu je 8 LEDs adressiert ist und 
in dieser Zeile nun halt 1, 2, 3 ... 8 LEDs gleichzeitig an sein können.

Das Problemchen, was ich jetzt habe (die Ungleichmäßige Helligkeit der 
LEDs) ist mit Sicherheit ein Designfehler, der mir schon früher hätte 
auffallen können.

Rein theoretisch könnte ich diesen unschönen Effekt per Programm 
beheben, in dem ich nicht zeilenweise (zu je 8 LEDs) multiplexe sondern 
jede einzelne LED einzeln ansteuere. Aber trotzdem erstmal die Frage an 
die Elektroniker, ob man nicht an zentraler Stelle einen Regler einbauen 
könnte?

Grüße & Danke Uwe

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Schaltplan knausert aber ganz schön mit den Ports :-)

Ne, ich würd mal meinen, da fehlen irgendwie Vorwiderstände für die LED. 
Bau die mal ein, dann wird die Helligkeit auch konstant.

Autor: Uwe Berger (boerge) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MoinMoin,

Sven Pauli wrote:
> Der Schaltplan knausert aber ganz schön mit den Ports :-)
>
naja, auch bei einem Mega644 ist man etwas beschränkt, was die Anzahl 
der freien I/O-Ports betrifft. Insbesondere, wenn noch ein wenig mehr 
Peripherie (Ethernet, IR, Dataflash usw.) durch den MC angesteuert 
werden soll...

> Ne, ich würd mal meinen, da fehlen irgendwie Vorwiderstände für die LED.
> Bau die mal ein, dann wird die Helligkeit auch konstant.
>
die Vorwiderstände fehlen ganz bewußt, weil ich den Schaltungsaufwand so 
gering wie möglich halten wollte (es sind letztendlich immerhin 512 
LEDs...). In der Praxis funktioniert auch die Schaltung so wie sie ist, 
halt nur mit diesem kleinen Manko, welches ich nicht vorher bedacht 
hatte.

An welcher Stelle müßten den theoretisch die Vorwiderstände rein?

Eigentlich stelle ich mir irgendetwas vor, was die Versorgungsspannung 
der Matrix in Anhängigkeit des momentan fließenden Strom regelt...

Grüße Uwe

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Uwe Berger wrote:
> naja, auch bei einem Mega644 ist man etwas beschränkt, was die Anzahl
> der freien I/O-Ports betrifft. Insbesondere, wenn noch ein wenig mehr
> Peripherie (Ethernet, IR, Dataflash usw.) durch den MC angesteuert
> werden soll...

Hättstu jetzt gesagt, du schaffst mit nem ATMega8, dann hätt ich dir das 
geglaubt :-)
Man könnte auch Portexpander benutzen -- der Übersichtlichkeit wegen.


> die Vorwiderstände fehlen ganz bewußt,
Haste des auch mal den LEDs erzählt? Wenn da nur eine einzige LED 
leuchtet, wirds der auch ganz schnell ganz warm ums Herz. Den Transen 
übrigens genauso.

> weil ich den Schaltungsaufwand so gering wie möglich halten wollte
Das glaub ich dir net. Die Schaltung so ist Bockmist:
Entweder du machst es sauber und schaltest mit PNP-Transen nach (+) 
und mit NPN-Transen nach (-), dann brauchts Basisvorwiderstände und gut. 
Mit NPN sowohl nach (+) als auch nach (-) zu schalten, ist bissi 
komisch.
Oder du schaltest mit PNP nach (-) und mit NPN nach (+) (also quasi 
vertauscht), dann brauchts keine Basisvorwiderstände. Dafür gehen aber 
durch die Transen unterm Strich rund 1.4V flöten.

> (es sind letztendlich immerhin 512 LEDs...). In der Praxis funktioniert
> auch die Schaltung so wie sie ist,
> halt nur mit diesem kleinen Manko, welches ich nicht vorher bedacht
> hatte.
Tjoa...siehste :-)


> An welcher Stelle müßten den theoretisch die Vorwiderstände rein?
Dein Prinzip ist ja: Du legst ein Muster über Q4 bis Q15 an die LEDs und 
schaltest danach dann eine einzelne Zeile zur gleichen Zeit mit Q1 bis 
Q3 durch, richtig?
Dann musst du vor jeden LED-Strang einen Vorwiderstand packen, du 
brauchst also insgesamt 9 Widerstände, die du unmittelbar hinter die 
Kollektoren von Q4 bis Q12 packst.

> Eigentlich stelle ich mir irgendetwas vor, was die Versorgungsspannung
> der Matrix in Anhängigkeit des momentan fließenden Strom regelt...
Ja das geht ja net, du müsstest wenn schon die Versorgungsspannung (und 
damit den Versorgungsstrom) in Abhängigkeit von der Zahl der leuchtenden 
LEDs steuern. Das müsste dann auch wieder der Prozessor übernehmen.
Vorwiderstände sind aber billiger und einfacher.

Autor: Uwe Berger (boerge) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sven Pauli wrote:
>> die Vorwiderstände fehlen ganz bewußt,
> Haste des auch mal den LEDs erzählt? Wenn da nur eine einzige LED
> leuchtet, wirds der auch ganz schnell ganz warm ums Herz. Den Transen
> übrigens genauso.
>
nö eigentlich nicht, zumindestens habe ich bei der 
"Finger-Anfass-Methode" nichts auffälliges feststellen können... Die 
jeweiligen LEDs sind ja auch nicht ständig an, sondern Multiplex: wenn 
ich mich jetzt gerade nicht verrechnet habe, ist eine LED bei einer 
"Bildwiederholfrequenz" von z.B. 50Hz alle 0,02s für 1/3200s 
durchgesteuert, bei einige zentralen Transistoren erhöht sich dann die 
Einschaltdauer maximal um den Faktor 8.

>> An welcher Stelle müßten den theoretisch die Vorwiderstände rein?
> Dein Prinzip ist ja: Du legst ein Muster über Q4 bis Q15 an die LEDs und
> schaltest danach dann eine einzelne Zeile zur gleichen Zeit mit Q1 bis
> Q3 durch, richtig?
>
ja so ungefähr, wobei Q1/3 die Ebenen darstellen..., aber vom Prinzip 
genau so.

> Dann musst du vor jeden LED-Strang einen Vorwiderstand packen, du
> brauchst also insgesamt 9 Widerstände, die du unmittelbar hinter die
> Kollektoren von Q4 bis Q12 packst.
>
naja, in dem Schaltplan der oben verlinkt ist sind es nur 9 Widerstände 
(3x3). In Wirklichkeit wären das 64 (weil 8x8). Die Verdrahtung ist aber 
so gestaltet, dass man diese noch nachträglich reinbauen könnte, es muß 
nur jeweils ein Draht aufgetrennt werden.

Wenn nicht jemand noch eine andere geniale Idee hat, könnte man dies in 
Erwägung ziehen.

Dumme Frage nach einem Rechenbeispiel für die Dimensionierung der 
Vorwiderstände mit der Randbedingung, dass immer drei 
Kollektor-/Emitter-Strecken durchgeschaltet sind, wenn eine LED leuchten 
soll?


Grüße & Danke Uwe

Autor: Matthias Lipinsky (lippy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Ansteuerschaltung halte ich für großen Mist. Das hinter den 
Multiplexern sind doch nur Latches. Die können doch nichtmal Zustände 
speichern. Da kannst du die auch weglassen.
Ich würde dir, da Portpins fehlen, zur klassischen Methode per 
Schieberegister für Zeilen/SPalten raten, also 74HC595.

Die Matrix selber geht, aber du muss, wie schon gersagt, VOrwiderstände 
einbauen, und die Basiswiderstände bei der KOLLEKTORschaltung WEGLASSEN.

Autor: Uwe Berger (boerge) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Matthias Lipinsky wrote:
> Die Ansteuerschaltung halte ich für großen Mist.
>
naja, das kann man sehen wie man will, funktionieren tut es ja...

> Das hinter den
> Multiplexern sind doch nur Latches. Die können doch nichtmal Zustände
> speichern. Da kannst du die auch weglassen.
>
74HC244 setzt man nicht nur als Latches ein, sondern auch als 
Leistungstreiber und genau deswegen habe ich sie eingebaut. Die 
Decoder-Schaltung wurde von mir entwickelt und aufgebaut, bevor ich 
genau wußte wie die nachfolgende Matrix aussehen sollte. Und zu diesem 
Zeitpunkt meinte ich, dass ich diese Sicherheit einbauen sollte. Stimmt, 
jetzt könnten sie raus, aber wozu das ganze Zeug nochmal neu verdrahten, 
wenn es auch nicht stört?

> Ich würde dir, da Portpins fehlen, zur klassischen Methode per
> Schieberegister für Zeilen/SPalten raten, also 74HC595.
>
:-), wer hat behauptet, dass Portpins fehlen? Nebenbei, die Zeile wird 
via Schieberegister gesteuert. Für die Ebenen und Spalten sind 
8aus3-Decoder sinnvoller, weil das sowieso nur eine gleichzeitig an sein 
sollte. Alles andere würde erhöhten Programmaufwand und -zeit bedeuten!

> Die Matrix selber geht, aber du muss, wie schon gersagt, VOrwiderstände
> einbauen,
>
das wäage ich gerade gegenüber einer softwareseitigen Lösung, bei der 
man überings das eine Schieberegister ebenfalls gegen einen 
3aus8-Decoder austauschen könnte (was ich aber nicht machen werde), ab. 
Ich werde beides mal in meiner kleinen Testversion des Würfels 
ausprobieren.

> und die Basiswiderstände bei der KOLLEKTORschaltung WEGLASSEN.
>
warum eigentlich, frage ich mal als Nicht-Elektronik-Profi der bestimmt 
nur Halbwissen ;-) hat?

Grüße Uwe

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.