Forum: Analoge Elektronik und Schaltungstechnik UDN2981 oder einzelne NPN


von Christian (Gast)


Lesenswert?

Tach zusammen,

ich versuche Bauteile zu sparen. Arduino steuert TLC5940. Die Ausgänge 
des TLC schalten wunderbar per PNP 12V (im meinem Testaufbau BD140).
Jetzt versuche ich, die PNP mit einem UDN2981 zu erssetzen. Funktioniert 
aber nicht. Nichts tut sich.
Es funktioniert nur, wenn ich noch eine Led oder irgend einen 
Verbraucher zwischen 5V (Ardu und TLC) und dem Ausgangspin TLC schalte. 
Dann schaltet der UDN auch.
Alle Bauteile sind auf gleicher Masse.

Ideen?

Danke euch
Christian

: Verschoben durch Admin
von Paul (Gast)


Lesenswert?

Christian schrieb:
> Es funktioniert nur, wenn ich noch eine Led oder irgend einen
> Verbraucher zwischen 5V (Ardu und TLC) und dem Ausgangspin TLC schalte.
[...]
> Ideen?

PullUp-Widerstände.
Der UDN ist kein reines PNP-Array, es braucht ein definiertes High an 
Eingang.

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


Lesenswert?

Christian schrieb:
> Es funktioniert nur, wenn ich noch eine Led oder irgend einen
> Verbraucher zwischen 5V (Ardu und TLC) und dem Ausgangspin TLC schalte.
> Dann schaltet der UDN auch.

 So muss es auch sein. Schau mal nach, was für Ausgänge TLC hat...

 Nach PullUp googeln.

von Christian (Gast)


Lesenswert?

Macht Sinn. Danke!

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


Lesenswert?

Christian schrieb:
> Macht Sinn. Danke!

 Inwiefern es aber Sinn macht, mit TLC UDN anzusteuern...

von Christian (Gast)


Lesenswert?

Tja das weiß ich auch nicht. Aber der TLC soll die PWM-Kanäle des 
Arduino erweitern.

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


Lesenswert?

Christian schrieb:
> Tja das weiß ich auch nicht. Aber der TLC soll die PWM-Kanäle des
> Arduino erweitern.

 So ist es wahrscheinlich auch gedacht, nur der UDN soll die andere
 Seite steuern (ANODE) und nicht vom TLC angesteuert werden.

 Auf diese Weise hättest du 8x16 Kanäle mit 8+3 = 11 Pins.

 Oder 16 Kanäle die direkt an 12V angeschlossen sind, dann brauchst
 du UDN überhaupt nicht.

 Oder wie und was machst du da ?

von Christian (Gast)


Lesenswert?

Wenn ich es wüßte, würde ich es Dir sagen ;)
Ich brauch 12 Volt, um mehrere Leds in Reihe plus n paar Led-Strips zu 
schalten. Und eben mehr PWM, als der Ardu hat. Nun hängt aber der TLC 
und Arduino an 5 Volt.
Was tun?

von Schreiber (Gast)


Lesenswert?

Christian schrieb:
> Und eben mehr PWM, als der Ardu hat.

Dann muss man halt auf PWM per Software setzen. Dann hat man wiedr mehr 
als genug PWMs

von Christian (Gast)


Lesenswert?

also klar, ich könnte mit dem TLC auch 12 V schalten, aber die 
Gesamtlast aller Led in meinem Projekt dürfte den TLC überfordern.

von Christian (Gast)


Lesenswert?

Schreiber schrieb:
> Dann muss man halt auf PWM per Software setzen. Dann hat man wiedr mehr
> als genug PWMs

Das habe ich bei vorherigen Projekten so gemacht. Aber nun reicht die 
Anzahl der PWMs nicht mehr aus und ich könnte jederzeit noch einen TLC 
dazuhängen. Bzw. ist das SoftPWM auch nicht allzu schön.

von Christian (Gast)


Lesenswert?

Marc V. schrieb:
> So muss es auch sein. Schau mal nach, was für Ausgänge TLC hat...
>
>  Nach PullUp googeln.

Hab ich gemacht. Allerdings tue ich mich damit echt schwer, den 
passenden Wert auszurüsten.

von Achim S. (Gast)


Lesenswert?

Christian schrieb:
> Allerdings tue ich mich damit echt schwer, den
> passenden Wert auszurüsten.

Wieso, du hast doch schon eine funktionierende Lösung aufgebaut?

Christian schrieb:
> Es funktioniert nur, wenn ich noch eine Led oder irgend einen
> Verbraucher zwischen 5V (Ardu und TLC) und dem Ausgangspin TLC schalte.
> Dann schaltet der UDN auch.

Wobei nur eine LED (ohne Vorwiderstand für die LED) eine schlechte Wahl 
als Pullup ist: der TLC treibt die LED zwar richtig mit einem 
Konstantstrom, aber die Eingangsspannung stellt sich nach der 
Flussspannung der LED ein. Je nach Farbe der LED kann es ggf. schwer 
werden, den UDN2981 sicher ein- oder auszuschalten.

Aber irgendein Widerstand als Pull-Up, der genügend Strom für den 
Eingang des UDN2981 fließen lässt (also Bruchteile von 1mA), 
funktioniert an der Stelle. Nimm meinetwegen 2,2kOhm und stell den TLC 
auf >5mA ein.

von Christian (Gast)


Lesenswert?

Achim S. schrieb:
> Wieso, du hast doch schon eine funktionierende Lösung aufgebaut?
Jedenfalls nicht mit dem UDN

>
> Christian schrieb:
>> Es funktioniert nur, wenn ich noch eine Led oder irgend einen
>> Verbraucher zwischen 5V (Ardu und TLC) und dem Ausgangspin TLC schalte.
>> Dann schaltet der UDN auch.
>
> Wobei nur eine LED (ohne Vorwiderstand für die LED) eine schlechte Wahl
> als Pullup ist: der TLC treibt die LED zwar richtig mit einem
> Konstantstrom, aber die Eingangsspannung stellt sich nach der
> Flussspannung der LED ein. Je nach Farbe der LED kann es ggf. schwer
> werden, den UDN2981 sicher ein- oder auszuschalten.

Ich vergass zu erwähnen ... LED mit Vorwiderstand natürlich.

>
> Aber irgendein Widerstand als Pull-Up, der genügend Strom für den
> Eingang des UDN2981 fließen lässt (also Bruchteile von 1mA),
> funktioniert an der Stelle. Nimm meinetwegen 2,2kOhm und stell den TLC
> auf >5mA ein.

Probiere ich

von Christian (Gast)


Lesenswert?

Naja klappt so halbwegs. die Leds gehen leider nie ganz aus.

von Achim S. (Gast)


Lesenswert?

Christian schrieb:
> Achim S. schrieb:
>> Wieso, du hast doch schon eine funktionierende Lösung aufgebaut?
> Jedenfalls nicht mit dem UDN

Verstehe ich nicht. Du hattest doch geschrieben:

Christian schrieb:
> Es funktioniert nur, wenn ich noch eine Led oder irgend einen
> Verbraucher zwischen 5V (Ardu und TLC) und dem Ausgangspin TLC schalte.
> Dann schaltet der UDN auch.

Wie ist dann dieser Satz zu verstehen?

von Christian (Gast)


Lesenswert?

Ach entschuldige. Ich dachte, Du beziehst Dich auf die Lösung mit dem 
PNP Transistor. So gesehen hast Du natürlich recht!

Jetzt klappt es auch so, nur mit dem Unterschied, dass die Leds nie ganz 
ausgehen.

von Achim S. (Gast)


Lesenswert?

Christian schrieb:
> Jetzt klappt es auch so, nur mit dem Unterschied, dass die Leds nie ganz
> ausgehen.

Ok, dann bitte zur Klärung: welche LEDs gehen nie ganz aus? Die am 
Ausgang des UDN? Oder die am Eingang des UDN, die du als Pullup 
verwendest? Wie sieht jetzt deine konkrete Schaltung zwischen TLC und 
UDN aus und auf welchen Strom hast du den TLC eingestellt?

von Christian (Gast)


Lesenswert?

Achim S. schrieb:
> Ok, dann bitte zur Klärung: welche LEDs gehen nie ganz aus? Die am
> Ausgang des UDN? Oder die am Eingang des UDN, die du als Pullup
> verwendest? Wie sieht jetzt deine konkrete Schaltung zwischen TLC und
> UDN aus und auf welchen Strom hast du den TLC eingestellt?

Der Ledstrip am Ausgang UDN gehen nie ganz aus.
TLC ist mit 8kOhm eingestellt auf etwas über 5ma.
Zwischen TLC und UDN Pullup 3kOhm.

von Achim S. (Gast)


Lesenswert?

Christian schrieb:
> Der Ledstrip am Ausgang UDN gehen nie ganz aus.

Bist du sicher, dass der TLC Ausgang auf 100% läuft und nicht doch ein 
bisschen hin und her wackelt? Dazu reicht es nicht, dass du 100% 
programmierst, sondern das Timing von GSCLK, XLAT und Blank muss passen. 
(Evtl. geht 100% on am TLC sogar gar nicht, weil der Blank-Puls zum 
Starten eines neuen PWM-Pulses eine gewisse Mindestzeit braucht. In der 
Zeit ist der TLC off und der UDN schaltet ein.)

Hast du vielleicht ein Oszi, mit dem du dir das Signal mal anschauen 
kannst?

Christian schrieb:
> TLC ist mit 8kOhm eingestellt auf etwas über 5ma.
> Zwischen TLC und UDN Pullup 3kOhm.

Falls es nicht der oben beschriebene "Nadelpuls" am Ausgang des TLC ist: 
du kannst ja mal versuchsweise den Pullup etwas größer machen.

von Christian (Gast)


Lesenswert?

Ein Oszi hab ich leider nicht.
Wie gesagt geht es mit nem schnöden PNP.
Irgendwelche Alternativen zum UDN?
Ich spiel mal noch mit den Widerständen.

von Falk B. (falk)


Lesenswert?

Dann bleib beim PNP und sei glücklich.

von Christian (Gast)


Lesenswert?

Wenn es nicht so ein Gewurschtel wäre, wenn man 32 Kanäle hat

von Christian (Gast)


Lesenswert?

Also es lag tatsächlich am TLC. Weil das Signal invertiert wird am UDN 
liegen eben immernoch 0,1 Volt an.
Problem mit nem SN74LS04 zwischen TLC und UDN gelöst. Blöde Pin-Layout 
zwar und nur 6 Kanäle pro Baustein, aber so gehts erstmal.

von Achim S. (Gast)


Lesenswert?

Christian schrieb:
> Also es lag tatsächlich am TLC. Weil das Signal invertiert wird am UDN
> liegen eben immernoch 0,1 Volt an.

Mit 0,1V am Eingang schaltet der UDN2981 nicht ein. Was du als 0,1V 
misst ist aber in Wirklichkeit eine Spannung die meistens ~0,1V ist und 
jedesmal beim Neustart eines PWM-Zyklus kurz auf 5V hochgeht - und in 
dieser kurzen Zeitspanne schaltet der UDN ein, was du als "Restleuchten" 
der LEDs wahrnimmst.

Der TLC5940 schafft es halt nicht, seinen Ausgang 100% der Zeit auf on 
zu schalten (man kann sich den 100% nur durch passende Wahl des Timings 
von GSCLK und Blank-Puls annähern).

Dadurch, dass du jetzt einen Inverter dazwischen geschaltet hast, muss 
der TLC nun 100% der Zeit aus sein, wenn die LEDs nicht leuchten sollen 
- und das lässt sich leicht realisieren.

Schön dass du eine für dich passende Lösung gefunden hast. Aber ob diese 
Kette von TLC5940, 74LS04 und UDN2981 jetzt weniger Gewurschtel ist als 
TLC mit nachgeschalteten pnp bin ich nicht sicher...

von Christian (Gast)


Lesenswert?

Elegant geht anders. Sicherlich.
Mir ist leider bislang kein anderer Weg eingefallen, um mit nem Arduino 
mehr PWM-Ports zu bekommen, als über SoftPWM machbar sind.

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.