Hallo, für ein Projekt benötige ich zur Steuerung 4 regelbare Gleichspannungen zwischen 0 – 3,3 Volt (max. 5 Volt) aus einem Arduino (oder ähnlich). Da in den meisten Mikrocontroller kein DA-Wandler integriert ist, dachte ich mittels eines PWM-Ausgangs eine DA-Wandlung vorzunehmen. Hierbei bin ich im Artikel https://www.mikrocontroller.net/articles/Pulsweitenmodulation und https://www.mikrocontroller.net/articles/Pulsweitenmodulation#DA-Wandlung_mit_PWM fündig geworden. Ich habe die kleine Schaltung wie gezeigt nachgebaut. Sie funktioniert auf den ersten Blick eigentlich recht gut. Es gibt jedoch einen kleinen Schönheitsfehler. Ist der Eingang offen oder wird nicht angesteuert, geht der Ausgang auf maximale Ausgangsspannung. Dies ist jedoch eine Eigenart, die ich nicht gebrauchen kann. Wie genau erklärt sich dieser Zustand und kann ich dies mit kleinen Aufwand abändern? Tritt dies bei der fertigen Lösung LTC2645 so auch auf? Gibt es andere einfache Lösungen für meine Aufgabenstellung von oben? Über etwas Hilfe würde ich mich sehr freuen. Vorab vielen Dank. Gruß Tilli
Andreas T. schrieb: > Es gibt jedoch einen kleinen Schönheitsfehler. Ist der Eingang offen > oder wird nicht angesteuert, geht der Ausgang auf maximale > Ausgangsspannung. Dies ist jedoch eine Eigenart, die ich nicht > gebrauchen kann. Das hängt von den Eigenheiten deiner anzusteuernden Schaltung und von deinem Programm ab.
Wenn Deine anzusteuernde Schaltung den Pegel hochzieht, ist vielleicht diese Schaltung geeignet.
Carsten-Peter C. schrieb: > Wenn Deine anzusteuernde Schaltung den Pegel hochzieht, ist vielleicht > diese Schaltung geeignet. Das gibt eine mühselige Kennlinienrechnerei. Der lineare Zusammenhang zwischen Tastverhältnis und Ausgangsspannung geht jedenfalls mit Sicherheit verloren. Ein Op mit Rail-to-Rail Ausgang als Impedanzwandler könnte eher passen.
Andreas T. schrieb: > Ist der Eingang offen oder wird nicht angesteuert, geht der Ausgang auf > maximale Ausgangsspannung. Pulldown am Eingang hinzufügen? uC Pin ohne Pullup im Resetfall verwenden?
Wolfgang schrieb: > Das gibt eine mühselige Kennlinienrechnerei. Der lineare Zusammenhang > zwischen Tastverhältnis und Ausgangsspannung geht jedenfalls mit > Sicherheit verloren. Andreas schreibt.“ Sie funktioniert auf den ersten Blick eigentlich recht gut.“ Der Widerstand R1 liegt parallel zum PWM-Ausgang und hat somit kaum Auswirkungen auf den TP. Der Transistor entkoppelt den unbekannten Eingang der Schaltung weitgehend. Eine ähnliche Schaltung nutze ich für mein Lasermodul. Es ist schnell aufgebaut. Probiere es einfach aus. Gruß Carsten
Andreas T. schrieb: > Gibt es andere einfache Lösungen für meine Aufgabenstellung von oben? Am einfachsten finde ich einen normalen DAC mit I2C-Schnittstelle. Der MAX5815BAUD kommt im SSOP-14, braucht nur ein Abblock-C und liefert vier Spannungen von 0 bis 3.3V mit 12 Bit Auflösung. Die Grenze für so ein Teil ist die I2C-Bandbreite, theoretisch schafft der 4x3.7kHz. Aber es gibt ähnliche Teile mit High Speed I2C.
LTC2645 sollte funktionieren. Er hat ein IDLSEL Pin. Wenn mehr als 60ms kein INx Signal gibt, geht der OUTx auf dem von dir gewählten Pegel. Z.B. VCC oder GND. Datenblatt Seite 13.
Vielen Dank für die vielen, schnellen Antworten. Um es zu verstehen, fasse ich einmal zusammen: Wolfgang antwortete: „Das hängt von den Eigenheiten deiner anzusteuernden Schaltung und von deinem Programm ab“. Anmerkung: Die anzusteuernden Schaltung ist einfach ein Komperator-Eingang eines OP's über einen Spannungsteiler (zB. 1/10). Das Programm ist ein Standart-PWM-Signal aus einem Arduino. @Carsten-Peter: Soll die Schaltung PWM-TP.png das ganze Filter ersetzen? Welche werte hast du verwendet? „Wenn Deine anzusteuernde Schaltung den Pegel hochzieht, ist vielleicht diese Schaltung geeignet.“ Wie genau ist das gemeint? @ Mani: „Pulldown am Eingang hinzufügen?“ Habe ich gestern kurz getestet. Geht schon in die richtige Richtung. Muss ich mir einmal genau ansehen. Auf so eine einfache Lösung bin ich nicht gekommen, da ich dachte, dass dies den TP beeinträchtigt. @bauformb: MAX5815BAUD klingt auch nach einer guten Alternative. War halt auf der Suche nach einer einfachen und kostengünstigen Lösung. Eventuell auch DIY. Diese IC's sind auch oft etwas schwer zu beschaffen. Schaue ich mir aber einmal an. Benötige ich denn für ein Standart-PWM-Signal aus einem Arduino eine solch hohe Frequenz? @ElektroFH: „LTC2645 sollte funktionieren. Er hat ein IDLSEL Pin. Wenn mehr als 60ms kein INx Signal gibt, geht der OUTx auf dem von dir gewählten Pegel. Z.B. VCC oder GND. Datenblatt Seite 13.“ Macht er dies für jeden Out einzeln oder schaltet er alle Ausgänge gleichzeitig ab? Das zweite könnte ich natürlich nicht gebrauchen. Vorab für weitere Tipps vielen Dank. Gruß Andreas
Andreas T. schrieb: > Anmerkung: Die anzusteuernden Schaltung ist einfach > ein Komperator-Eingang eines OP's über einen > Spannungsteiler (zB. 1/10). Das Programm ist ein > Standart-PWM-Signal aus einem Arduino. Nur als Hinweis: Dir ist klar, dass Dein persönlicher Troll-Salami-Faktor gerade in die Nähe von 100% gekommen ist? Begründung: 1. Kein Schaltplan. 2. Offensichtlich unvollständige Aufgabenstellung. Dein ursprüngliches Problem (stellbare Spannung mittels Arduino und PWM erzeugen) erfordert 1. einen Arduino mit Programm, 2. je Spannungskanal einen Widerstand, 3. je Spannungskanal einen Kondensator. Deine Erwähnung von "Komperator-Eingang", "OP" und "Spannungsteiler" zeigt an, dass Du irgendwas völlig anderes tust, als man nach Deinem Ursprungsbeitrag erwarten würde. Das nur als Hinweis, damit Du Dich über die Reaktionen hier nicht wunderst.
>Das gibt eine mühselige Kennlinienrechnerei. Der lineare Zusammenhang >zwischen Tastverhältnis und Ausgangsspannung geht jedenfalls mit >Sicherheit verloren. Das ist doch ein normaler Emitterfolger mit Verstärkung 1. Nur eben auf dem Kopf. Und dass Du am Ausgang nie 0V haben wirst. Kommt auf die Anwendung an.
Andreas T. schrieb: > @Carsten-Peter: Soll die Schaltung PWM-TP.png das ganze Filter ersetzen? Der Filter besteht aus R2 und C1. Nach der positiven Flanke Deines PWM Signals wird C1 über den Widerstand R2 aufgeladen, bis nach der negativen Flanke C1 wieder über R2 entladen wird usw. Ist die Frequenz hoch genug, stellt sich eine Gleichspannung proportional zum Taktverhältnis des PWM Signales ein. > Welche werte hast du verwendet? „Wenn Deine anzusteuernde Schaltung den > Pegel hochzieht, ist vielleicht diese Schaltung geeignet.“ Wie genau ist > das gemeint? Du schreibst: Es gibt jedoch einen kleinen Schönheitsfehler. Ist der Eingang offen oder wird nicht angesteuert, geht der Ausgang auf maximale Ausgangsspannung. Diese maximale Ausgangsspannung kann nur vom nachfolgendem Gerät kommen (wie bei meinem Lasermodul). Das bedeutet für mich, die Klemmen X2 müssen bei nicht angeschlossenem Eingang X1 gegen Masse gezogen werden. Das geschieht dadurch, das der Transistorüber die Widerstände R2 und R3 seine Basisspannung erhält und durchschaltet. Für R1 würde ich einen Wert zwischen 2K und 10K nehmen. Für R2 und C1 würde ich die Werte Deiner Schaltung übernehmen. Je größer C1, je glatter die Gleichspannung aber auch träger. Da mein Laser mit PWM zurecht kommt, habe ich R2 und C1 nicht verbaut. Gruß Carsten
Berater schrieb: > Und dass Du am Ausgang nie 0V haben wirst. Kommt auf die Anwendung an. Die Anwendung sagt: Andreas T. schrieb: > ... regelbare Gleichspannungen zwischen 0 – 3,3 Volt (max. 5 Volt) ...
Andreas T. schrieb: > Dies ist jedoch eine Eigenart, die ich nicht > gebrauchen kann. Wenn man diePWM richtig ansteuert, dann liefert die automatisch 50%:50%, wenn man 0Volt vorgibt. "Gar keine Spannung" gibt es elektrisch nicht, da man definieren muss, was "Null" sein soll. Für den Fall von Brücken gibt es daher noch eine Abschaltung. In dem Fall des TE empfiehlt sich entweder eine einseitig (unsymetrische) Auswertung durch einen OP, den man auf Null steuert oder eine nur unsymmetrische Nutzung des Ausgangs bei einem rail-2-rail. Richtig auf 0V und 3.3V wird man eh nicht kommen, wenn man nicht einen OP nimmt, der mit etwa -1V bis 4V beschaltet ist und die PWM mit einem Offset belegt. Z.B. Range = 5V, 0 = 0V , 100% = 5V, Offset am OP = -1V, damit: 20% PWM = 0V, 80% PWM = 3V Stärker sollte man eine PWM auch nicht ausreizen. Mit einem kleinen Zähler in einem PLD benutze ich das in 64 Kanälen, um CVs für Eisenbahnbeleuchtung und-steuerung zu erzeugen.
Andreas T. schrieb: > Diese IC's [echte DACs] sind auch oft etwas schwer zu beschaffen. > Schaue ich mir aber einmal an. Benötige ich denn für ein > Standart-PWM-Signal aus einem Arduino eine solch hohe Frequenz? Den MAX5815 gibt's immerhin bei Mouser. Der hat aber mit PWM überhaupt nichts zu tun, kennt er nicht, kann er nicht, braucht er nicht. Du sagst ihm einfach per I2C wieviel Volt er liefern soll und dann macht er das, nicht mehr und nicht weniger. Die Frequenz hängt davon ab, wie schnell du die Spannungen am Komparator-Eingang ändern willst. So über den Daumen kannst du sie (per I2C) tausend mal pro Sekunde neu einstellen.
Andreas T. schrieb: > @ElektroFH: „LTC2645 sollte funktionieren. Er hat ein IDLSEL Pin. Wenn > mehr als 60ms kein INx Signal gibt, geht der OUTx auf dem von dir > gewählten Pegel. Z.B. VCC oder GND. Datenblatt Seite 13.“ > > Macht er dies für jeden Out einzeln oder schaltet er alle Ausgänge > gleichzeitig ab? Jedes Kanal (EingangX + AusgangX) ist unabhängig von einander.
Hallo, hier noch mal eine einfache Schaltung, um eine Gleichspannung aus einem 5V PWM Signal zu erzeugen. Die BE-Spannung beträgt ca. 1V. Um 3.3V zu erzeugen sollte also durch den Spannungsteiler eine Basisspannung am Q1 von ca. 4.3V eingestellt werden. C1 ist von der Frequenz abhängig.
Carsten-Peter C. schrieb: > Die BE-Spannung beträgt ca. 1V. Naja, ich will ja eine PWM bauen und kein Thermometer (etwa-2mV/°). Heutzutage nimmt man als Spannungsfolger einen OPV. Ist im SOT23-5 auch nicht größer als ein Transistor.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.