PWM-Analogsignal invertieren

Gast #5239935
Lesenswert?

Guten Abend liebe Forengemeinde.
Dies ist mein erster Beitrag in eurem Forum, wobei mich seit längerem 
zahlreiche Recherchen zu eurem Forum geführt haben und diese dann auch 
zur Zufriedenheit beantwortet wurden.

Leider ergab eine gründlich Recherche zu folgendem Thema kein sinnvolles 
Ergebnis.

Ich stehe vor folgendem Problem:
Ich möchte mittels eines PWM-Signals meines Arduino Nano eine 
Konstantstromquelle ansteuern (integrierter PWM-Eingang).
Die KSQ reduziert bei steigender Spannung am PWM-Eingang die Helligkeit 
der LED. Leider ist die "fertige" (nicht von mir erstellte) 
Programmierung so geschrieben, das bei LED=Aus der PWM-Ausgang auch 0V 
hat.
Das bedeutet, die LED ist an wenn sie ausgeschaltet sein sollte...
Softwaretechnich möchte und kann ich dies auch nicht ändern (zu wenig 
Erfahrung mit C++).
Ich bervorzuge eine Hardwareseitige Lösung, da die LED beim Einschalten 
des Arduino bis zur dessen Bereitschaft, wegen fehlenden PWM-Signal 
direkt leuchten würde. Auch wenn der Arduino resettet werden sollte geht 
die LED damit an.

Deshalb die Frage an euch. Wie bastele ich mir kostengünstig eine 
Schaltung, die das PWM-Signal genau invertiert? Also bei PWM=0V -> 5V 
und PWM=5V -> 0V. Auch die Zwischenbereiche möchte ich möglichst 
abdecken, also PWM=3V -> 2V


Ich danke euch im Voraus für die Mühe! :)
Gast #5239959
Lesenswert?

Robert schrieb:
> Softwaretechnich möchte und kann ich dies auch nicht ändern (zu wenig
> Erfahrung mit C++).

Du könntest das PWM-Signal invertieren.
Aber meinst du nicht, eine Programmzeile mit
1
y' = 1 - y
 oder wie auch immer dein PWM-Signal normiert ist, wäre einfacher 
einzufügen?
Persönliche Seite #5239969
Lesenswert?

Das PWM-Signal hat exakt zwei Spannungen, 0V und 5V.

Spannungswerte dazwischen gibt es keine, die werden erst durch 
Integration des Signals gebildet (d.h. je länger es auf 5V ist, desto 
höher die resultierende Spannung).

Und damit ist die Aufgabe sehr einfach zu lösen:
Direkt zwischen den PWM-Ausgang des µCs und den daran angeschlossenen 
Kram kommt ein einzelner Inverter, wie er sechsfach in einem 74xx04 
enthalten ist (xx=HC, LS, AC, wasauchimmer).

Mit zwei Widerständen und einem Transistor lässt sich das Ziel auch 
erreichen.

https://i.stack.imgur.com/5A9pw.gif
(hier wahlweise für einen NPN- und einen PNP-Transistor dargestellt)
Gast #5239973
Lesenswert?

Wolfgang schrieb:
> Du könntest das PWM-Signal invertieren.
> Aber meinst du nicht, eine Programmzeile mity' = 1 - y oder wie auch
> immer dein PWM-Signal normiert ist, wäre einfacher einzufügen?

Sicherlich wäre dies einfacher. Das Programm was ich da erhalten habe 
ich jedoch sehr komplex. Außerdem steht ja noch das Problem mit der 
Bootzeit des Ardunio im Raum. Gibt es keine einfache Schaltung?
Beitrag #5240007 wurde von einem Moderator gelöscht.
#5240019
Lesenswert?

Arduino F. schrieb:
> NPN + zwei R

Ist nicht wirklich ein Inverter, da high und low mit unterschiedlichen
Impedanzen getrieben werden.

Es gibt allerdings schön kleine Single-Gate Inverter, die sowohl high
als auch low treiben.

Beispiel: NC7S04M5X

Gibt's z.B. bei Conrad für 50 Cent.

Den Inverter setzt du einfach zwischen den Ausgangspin und den
Lowpass-Filter (RC).
Zwischen VCC und GND des ICs kommt dann noch ein 100nF
Stütz-Kondensator.

Wenn dir DIL lieber ist: z.B. CD74HC4049E
Gast #5240033
Lesenswert?

Robert schrieb:
> Gibt es keine einfache Schaltung?

Ich habe hier mal einen Inverter aufgetrieben der in Wirklichkeit gar 
nicht invertiert. Erst wenn man die LED parallel zum Transistor schaltet 
wird invertiert. Oder man dreht die Schaltung auf dem Kopf und baut 
statt eines NPN-Transistors einfach einen PNP-Transistor (BC327) ein.

Vielleicht reicht es aber auch aus, wenn die LED am Ausgang von dem 
PWM-Signal nach Vcc geschaltet wird, statt nach Masse. Dann wird ja 
automatisch invertiert? Ganz ohne Schaltung.
Angehängte Dateien:
Beitrag #5240060 wurde von einem Moderator gelöscht.
Gast #5240186
Lesenswert?

Arduino F. schrieb:
> Und ich habe deinen Plan mal zu einem "Richtigen Inverter" umgemalt

So...
Ich habe die Zeichnung mal in den Simulator geworfen.
Funktioniert hier Prima :)
Um die annähernd genaue Umwandlung von 5V->0V und 0V->5V habe ich einen 
60 Ohm Kollektorwiderstand eingesetzt. Der Basiswiderstand 4k7 ist 
geblieben.
Bei einer Basisspannung von 5V (LED an) fließt theoretisch ein 
Kollektor-Emiter-Strom von 81mA.
Ist das noch vertretbar mit einem Handelsüblichen Transistor?
#5240200
Lesenswert?

Robert schrieb:
> Um die annähernd genaue Umwandlung von 5V->0V und 0V->5V habe ich einen
> 60 Ohm Kollektorwiderstand eingesetzt. Der Basiswiderstand 4k7 ist
> geblieben.

Das ist das, was ich meine.
Mit einem Push-Pull Inverter hast du dieses Problem nicht. Da high und 
low die gleiche Impedanz haben, handelt man sich keine Asymmetrie ein.

> Bei einer Basisspannung von 5V (LED an) fließt theoretisch ein
> Kollektor-Emiter-Strom von 81mA.
> Ist das noch vertretbar mit einem Handelsüblichen Transistor?

Kommt auf die Sichtweise an. Der Transistor wird es überleben, aber du 
erzeugst dir unnötige Pulse auf der Versorgungsspannung.
Und der Kollektorwiderstand muss im Zweifel 1/2 W verheizen können.


Die 80mA benötigst du ja auch nur, wenn deine KSK einen relativ 
niederohmigen PWM Eingang hat.
Mit welcher Impedanz hast du den Low-Pass der KSK denn angenommen / 
simuliert?
Gast #5240231
Lesenswert?

Der falsche MaWin schrieb:
> Da ein PWM-Signal ohne nachgeschalteten Tiefpass keine Zwischenbereiche
> hat, ist meine Lösung also die Beste.

Das kommt drauf an, wovon man redet.
Der Mittelwert vom PWM liegt zwischen 0 und 100% des Signalpegels ;-)

Robert schrieb:
> Um die annähernd genaue Umwandlung von 5V->0V und 0V->5V habe ich einen
> 60 Ohm Kollektorwiderstand eingesetzt.

Warum so ein kleiner Widerstand. Auch wenn du 1A fließen lässt, wirst du 
nicht genau 5V erreichen und die 0V schon gar nicht, weil U_CE eher bei 
0.3V liegt - genaueres im Datenblatt.

Welchen Pegel braucht denn deine KSQ am Steuereingang?
Normalerweise liegt die Schaltschwelle bei 50%, manchmal für High bei 
70%.
Gast #5240300
Lesenswert?

Joe F. schrieb:
> Die 80mA benötigst du ja auch nur, wenn deine KSK einen relativ
> niederohmigen PWM Eingang hat.
> Mit welcher Impedanz hast du den Low-Pass der KSK denn angenommen /
> simuliert?

Die KSQ hat tatsächlich einen sehr niederohmigen PWM-Eingang. Ich habe 
einfach aus Versuchszwecken einen 5k Wiederstand an den GND des PWM 
Eingangs gelegt.


Wolfgang schrieb:
> Welchen Pegel braucht denn deine KSQ am Steuereingang? Normalerweise
> liegt die Schaltschwelle bei 50%, manchmal für High bei 70%.

Das ist eine Interessante Frage. Ich nahm bisher an das der PWM Eingang 
eine Dimmfunktion beinhaltet. Also bei niedriger Eingangsspannung am PWM 
Eingang ein höherer Ausgangsstrom am LED Ausgang
Gast #5240307
Lesenswert?

Robert schrieb:
> Ich nahm bisher an das der PWM Eingang
> eine Dimmfunktion beinhaltet.

Wenn das wirklich ein PWM-Eingang ist, liegt die Steuerinformation im 
Tastverhältnis und nicht im (genauen) Spannungspegel.

Vielleicht solltest du erstmal klären, was die Kiste braucht.
#5240323
Lesenswert?

Robert schrieb:
> Die KSQ hat tatsächlich einen sehr niederohmigen PWM-Eingang. Ich habe
> einfach aus Versuchszwecken einen 5k Wiederstand an den GND des PWM
> Eingangs gelegt.

Also das klingt recht ungewöhnlich.
Entweder ist es ein reiner Digitaleingang, dann reicht auch ein PWM 
Pegel von 1V/4V, oder hinter dem Eingang liegt erstmal ein 
Tiefpassfilter, der aus dem Eingangssignal ein Analogsignal macht.

Um das herauszufinden, hilft entweder das Datenblatt, oder ausprobieren.

Wenn man die LED Helligkeit durch Anlegen einer analogen Spannung 
zwischen 0V und 5V "stufenlos" dimmen kann, dann ist es die 
"Tiefpass-Variante".
Dann könnte man allerdings auch noch einen zusätzlichen Widerstand in 
Reihe legen, macht die Regelung zwar etwas träger, braucht dann aber 
nicht mehr so gewalttätige Ströme.
Gast #5240340
Lesenswert?

Joe F. schrieb:
> Wenn man die LED Helligkeit durch Anlegen einer analogen Spannung
> zwischen 0V und 5V "stufenlos" dimmen kann, dann ist es die
> "Tiefpass-Variante".

Es scheint sich doch um einen reinen Digitaleingang zu handeln. Ich habe 
eine 1,5 Volt batterie an den PWM gehalten und die KSQ hat die LED 
komplett ausgeschaltet.
Sry für die Missverständnisse

Thomas E. schrieb:
> Dann nimm dir mal ne Lupe und erzähl uns, was auf dem 8-Pinner
> draufsteht. Vielleicht lässt sich damit was anfangen.

Das kann ich mit viel Licht auch mit bloßem Auge sehen.
XLSEMI
XL4001E1
22NR
#5240350
Lesenswert?

http://www.xlsemi.com/datasheet/XL4001%20datasheet.pdf

Die PWM geht einfach auf den Enable-Eingang (digital).
Alles über 1.4V wird als "high" erkannt.

Nimm einfach den 1K Kollektorwiderstand. Das muss funktionieren und es 
wird auch keinerlei "Verzerrungen" der PWM geben.

Die 0.8V für ein "low" machen evtl. mehr Probleme mit dem NPN 
Transistor.
Du könntest stattdessen auch einen 2N7002 Fet nehmen, der schaltet 
deutlich besser auf 0V.
Gast #5240468
Lesenswert?

Joe F. schrieb:
> Die 0.8V für ein "low" machen evtl. mehr Probleme mit dem NPN
> Transistor.

Die U_CE eines vernünftig durchgesteuerten NPN-Transistors liegt doch 
locker unter dem als V_EN Low-Wert angegebenen 0,8V. Wieso hast du da 
Bedenken?

Bei einem BC547 liegt die z.B. typisch bei 0,09V, maximal bei 0,25V 
(@10mA).
Und selbst 10mA wären für diese Anwendung noch mehr als reichlich.
Gast #5240611
Lesenswert?

Peter D. schrieb:
> Eine PWM hat einen recht hohen Basistakt, d.h. das Tastverhältnis wird
> massiv verfälscht.

Na ja, beim Arduino 8-Bit PWM mit seinen 490Hz liegt der Basistakt bei 
125kHz. Für einen 1-Bit Fehler müsste die Unsymmetrie schon etwa 8µs 
betragen. Und ob das bei einem Lampendimmer auffällt, ist noch die 
zweite Frage.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren