mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DAC´s


Autor: hommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi
ich möchte an einen avr pr
dacs anschließen
mit den dacs sollen anschließend leds
betrieben werden.

bei den dacs sie ich im moment habe (von TI)
muss ich danach eienen impedanzwandler als treiber verwenden
das funzt zwar ist mir aber zu aufwendig

die docs sollten ca 20ma bei 3 bis 4 volt liefern
welchen typen könnt ihr mir da empfehlen.
mfg

Autor: Marco S. (masterof)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hänge doch die LED direkt an den die Pins vom AVR der kann 20 mA
aufnehmen und wieder abgeben.

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Willst du die LEDs an den DAC machen damit du die Dimmen kannst oder
was? (schonmal was von PWM gehört?)

Autor: hommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
jo ich will die dimmen


pwm kenn ich funzt aber mit sicherheit net
und die led direkt an den avr anschießen
bringt wohl am wenigsten

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wieso funzt das nicht? Mit PWM dimmt doch jeder seine LED's!

Autor: hommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ach ja und bei tiefen spannungen funzt pvm bei
leds doch garnicht

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was meinst du mit tiefen Spannungen? Mit PWM kannst du die LED's soweit
runterdrehen bis sie aus sind.

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie wärs wenn du einfach einen Transistor am Ausgang deines DACs
schaltest. Basis an DAC-OUT, Collector an Vdd und Emitter an
Vorwiderstand der LED. So kann man ja auch eine LED dimmen.

Autor: hommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja das wäre ja ein ahnlicher verdratungsaufwand
wie bei einem impedanzwandler
und genau das wollte ich vermeiden

zu pvm ich möchte ja mehrere bzw vielle leds betreiben
und die dacs sind ja inder lage die werte zu speichern usw

Autor: Marco S. (masterof)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn du im avr die Hardware PWM verwendets braucht das auch keine
Rechnenzeit. es wird nur 1 Takt gevraucht wenn du die Helligkeit
änderst.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"ach ja und bei tiefen spannungen funzt pvm bei leds doch garnicht"

Den Irrtum hatten wir schonmal diskutiert.

Es ist nämlich genau umgekehrt:

Bis zur Flußspannung der LED funzt ein DAC nicht, Dir geht also
Auflösung verloren.

Eine PWM schaltet aber und funktioniert daher immer von 0% bis 100%.


Peter

Autor: Timmo H. (masterfx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Puh, da bin ich ja beruhigt, dass ich keinen Unsinn erzählt habe.

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so ein grosser Verdrahtungsaufwand ist es dann auch nicht... immerhin
fügst du nur 1 Bauteil mit 3 Pins in den Kreis ein.

Wieviele LEDs willst du denn ansteuern?

Autor: hommer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich bis nochmal
ok das pwm funzt ist klar ich habs auspropiert
aber ich will
32 leds ansteuern

und das mit ops geht wohl sehr schlecht

am besten wäre 4 dacs die genügent power hätten das direkt
zu tun
es gibt ja gebufferte aber nur welche
mfg
hommer

Autor: Christoph Wagner (christoph)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mensch das wird doch wohl nich das Problem sein. Du kannst die LEDs auch
als Matrix aufbauen. Geeignet angeordnet kannst du aufdie Art mit 8 Pins
Portaufwand und einem kleinen bisschen Softwareaufwand alle 32
spotbillig dimmen ! Du hast dann lediglich einen verdrahtungsaufwand
von 4 Widerständen (und den 32 LEDs natürlich) !


    5 6 7 8
    | | | |
1-R-X-X-X-X
    | | | |
2-R-X-X-X-X
    | | | |
3-R-X-X-X-X
    | | | |
4-R-X-X-X-X

Von den 4 Widerständen kommt jeweils einer an Stelle eines Rs.
Der Wert des Widerstandes muss ein Achtel des üblichen Widerstandes
betragen, damit die Gesamthelligkeit dem Dauerbetrieb entspricht.
(Genaueres später).

So. an jeweils ein X setzt du nun 2 LEDs parallel, aber in
entgegengesetzte Richtungen. Und zwar so, dass senkrechte mit
waagerechter Linie verbunden wird. Das nennt man Matrixbetrieb. Wenn du
noch etwas Softwareaufwand sparen willst, baust du eine 4x8 Matrix auf -
brauchst halt dann 12 Pins, musst dich aber nicht um die Flussrichtung
kümmern.

Mit dem 4x4-Design baust du aber trotzdem eine 4x8 Matrix auf, der
einzige Unterschied besteht lediglich darin, dass du zwischendrin die
Stromrichtung änderst und damit andere LEDs zum Leuchten bringst.
Prinzip ist einfach : Damit die LED leuchtet, muss die Anode auf HIGH
und die Kathode auf LOW. Legst du 5 auf HIGH, dann leuchtet die LED auf
dem Kreuzpunkt mit 1, wenn 1 auf LOW ist. Legst du 5 auf LOW, leuchtet
die LED auf Kreuzpunkt 1, wenn 1 auf HIGh ist. Damit nicht ungewollt
die Kreuzpunkte der anderen Reihen (6-8) aufleuchten, musst du diese
während dieser Zeit auf Eingang ohne Pull-up schalten. Dann kann kein
Strom fließen. Am besten, du betreibst die Schaltung bei 3,3V, da bei
5V jeweils zwei in Serie geschaltete LEDs leuchten könnten (durch eine
Spannung zwischen einen der Pins von 1-4). Wenn du trotzdem 5V willst,
lies am Ende des Textes - dort steht noch eine Alternative.

Nun durchläufst du Sequentiell die Leitungen 5-8 wie oben beschrieben
(5H,5L,6H,6L, ... - die anderen dabei auf Eingang stellen !) und legst
entsprechend an 1-4 den Zustand für die LED an.

Mit etwas Softwareaufwand (bei geschickter Programmierung nicht viel)
kannst du eine Software-PWM realisieren, die die Pins 1-4 während einer
Leuchtperiode vorzeitig abschaltet. So durchläufst du Zeile um Zeile und
zwar so schnell, dass sich das ganze "Bild" mehr als 60-70 mal pro
Sekunde aufbaut. Dann wird das vom Auge nicht mehr als flimmern
wahrgenommen. Das heißt, du musst deine PWM für eine Geschwindigkeit
von 50*8*Auflösung auslegen. Sagen wir mal 32 Helligkeitsstufen - mehr
wird wohl bei einer LED kaum Sinn machen - macht eine PWM-Grundfrequenz
von 12,8 KHz. Das ist durchaus zu schaffen. Bei 8 MHz Taktfrequenz hast
du bequeme 625 Takte für einen (!) PWM-Schritt zeit. Das bedeutet, dass
du das bequem in die ISR eines Timers unterkriegst. Mit Assembler
schluckst du vllt. 10% Rechenleistung des AVRs.

Dreh es wie du willst : mit weniger Aufwand und effektiver wirst du es
kaum schaffen. Das ist die Technik, wie sie auch bei Professionellen
Anwendung findet. Hardwareseitig hast du 0 Aufwand. Geldbeutelseitig
ebenfalls nicht. Du brauchst halt 3,3V damit du kein "Fehlleuchten"
erzeugst. Wenn du doch 5V verwenden willst, kannst du das zur Not aber
auch umgehen, indem du einen Spannungsabfall (kein Widerstand) in die
Leitungen 1-4 einbaust, der die ON-Spannung unter die doppelte
Abfallspannung einer LED drückt.

Autor: Kai Markus Tegtmeier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TLC5923 von Texas instruments. Treibt 16 LEDs, wird
seriell angesteuert und speichert die Werte auch.

Greetz
kmt

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.