Forum: Analoge Elektronik und Schaltungstechnik PWM-Controller ohne Poti aber mit Steuerspannung


von philipp (Gast)



Lesenswert?

Hallo zusammen,
für ein aktuelles Projekt möchte ich ich einen 4-Pin-Gehäuselüfter über 
die separate PWM-Leitung regeln.
Es handelt sich um einen Noctua NF A14 industrialPPC-3000 PWM.
Der Lüfter wird mit 12V betrieben und hat zusätzlich eine Leitung für 
ein PWM-Signal, sowie eine Leitung für ein RPM-Signal, welches er zurück 
meldet.

Aus dem Datenblatt des Lüfters ergibt sich folgendes:

PWM frequency = 18 KHz to 30KHz
High Level = 3.3V to 6V
Low Level = 0V to 0.4V
PWM Range = 20% to 100%

Nun würde ich gerne eine Schaltung aufbauen, welche den Lüfter zum einen 
mit 12V versorgt, zum anderen jedoch auch ein PWM-Steuersignal an den 
Lüfter sendet. Dazu habe ich bereits diverse Anleitungen im Netz 
gefunden, welche auf den NE555 / TL494 setzen.

Ich möchte die Geschwindigkeit nun jedoch nicht über einen Poti regeln, 
sondern wiederum selbst über ein Steuersignal.

Das Steuersignal liegt im Bereich von 0 - 4,2V an.

Das ausgegebene PWM-Signal muss sich im o.g. Rahmen bewegen.

Ist eine solche Schaltung für einen Anfänger wie mich umzusetzen, oder 
sollte ich mich lieber nach Alternativen umschauen?

Die 12V des Lüfters zu pulsen ist keine Option, da dieser bereits eine 
interne Regelelektronik besitzt.

Also zusammen gefasst:
Betriebsspannung Lüfter und IC: 12V
Steuerspannung IC: 0-4,2V
PWM-Frequenz: ~25kHz (fest eingestellt)

Wie müsste eine solche Schaltung aussehen und was gilt es dabei zu 
beachten?

Eignet sich hier eher der NE555 oder der TL494 oder gar eine weitere 
Alternative?

Danke für eure Hilfe!!

Philipp

: Verschoben durch Moderator
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Angehängte Dateien:

Lesenswert?

Du brauchst den klassischen PWM Modulator, den man sich aus 
Dreieckgenerator und Komparator zusammenstellen kann.
Ich häng dir mal ein Beispiel an, das ich mit LTSpice gehäkelt habe. Der 
LT1017 ist ein normaler Dual Komparator. C1 bestimmt die PWM 
Wiederholfrequenz und sollte von dir kleiner gewählt werden.

: Bearbeitet durch User
von void (Gast)


Lesenswert?

philipp schrieb:
> Das Steuersignal liegt im Bereich von 0 - 4,2V an.
> Das ausgegebene PWM-Signal muss sich im o.g. Rahmen
> (PWM Range = 20% to 100%) bewegen.

Das was du suchst ist ein spannungs-gesteuerter PWM Generator.
Durch eine Eingangsspannung (Steuersignal) wird der PWM duty cycle 
verändert.

Gebaut wir das aus:
1) Dreiecks-Generator
   0-4,2V, 20kHz - dafür kann man z.B. einen NE555 einsetzten.
2) Komparator
   Ein Operationsverstärker vergleicht Steuersignal mit Dreiecksignal 
und erzeugt daraus eine PWM mit entsprechendem duty cycle.

Erklärt wird das im Detail hier:
http://pcbheaven.com/circuitpages/Voltage_Controlled_PWM_Generator/
http://pcbheaven.com/circuitpages/Triangle_Wave_Generator/

Oder wie Matthias S. schon oben schrieb. Verdammt schon wieder zu 
langsam.


> gar eine weitere Alternative?

Immer doch. Praktisch ebenfalls das Gleiche wie oben nur in Software mit 
Hilfe eines Mikrocontrollers.

Gebaut wird das so:
1) Mikrocontroller Arduino Nano (oder kleiner)
2) Steuersignal mit ADC0 (AD-Wandler Eingang 0) des µC verbinden
3) Ausgangssignal PWM mit irgendeinem PWM fähigen µC pin verbinden (OC1A 
oder so)
4) Software: Timer als PWM Ausgang konfigurieren, ADC Wert einlesen auf 
Bereich 20-100% duty cycle skalieren und in Timer PWM duty register 
schreiben.

Erklärung:
https://www.youtube.com/watch?v=DAn4UguyzfE
(Nur das der µC Ausgang direkt dein PWM Signal ist. Der Herr hat einen 
anderen Lüfter mit 2-Pins. Und am µC Eingang denkst du dir den 
Spannungsteiler mit dem Temperatursensor weg und ersetzt den in Gedanken 
mit deiner Steuerspannung.)

von philipp (Gast)


Lesenswert?

Zunächst mal Danke für eure Antworten.
Werde mich mal weiter in das Thema einlesen :)

Eine Frage noch:
Statt der o.g. Steuerspannung hätte ich auch die Möglichkeit, ein 
PWM-Signal 3,3V @ 50KHz zur Steuerung zu nutzen.
Das würde die Schaltung aber vermutlich nur unnötig verkomplizieren, 
oder?

von void (Gast)


Lesenswert?

philipp schrieb:
> Statt der o.g. Steuerspannung hätte ich auch die Möglichkeit, ein
> PWM-Signal 3,3V @ 50KHz zur Steuerung zu nutzen.
> Das würde die Schaltung aber vermutlich nur unnötig verkomplizieren,
> oder?

Wenn du den Motor sich auch etwas über der Spec betreiben lässt (also 
mit 50kHz PWM, anstatt 30kHz) würdest du nur mit einer Spannungsanhebung 
(3.3V -> 5V) hinkommen. Das sind dann wahlweise nur ein 
nicht-invertierender Buffer [1] oder zwei Transistoren.

[1] http://www.ti.com/lit/ds/symlink/sn74lvc1g34.pdf

Wenn du es wirklich drauf anlegst für ein Einzelstück, kannst du dann 
auch noch die min. High Level Schwelle des Motors (High Level = 3.3V to 
6V) an/leicht unter der Grenze betreiben:
Dann reduziert sich deine Schaltung auf ein Stück Draht zwischen 
PWM-Signal 3,3V @ 50KHz von der Steuerung zum Motor.

von wbt (Gast)


Lesenswert?

evtl. ist hier auch der LTC6992 interessant:

http://www.linear.com/product/LTC6992-1

PWM IC das per Widerstandskombo in der Frequenz eingestellt werden kann 
und mit 0 .. 1 V von 0 .. 100 % gesteuert werden kann. (dazu noch sehr 
schön klein ;) )

Vmax sind laut Datenblatt 6 V, wobei das die wirklich maximale Spannung 
ist .. 5 Volt solltens maximal sein.
Daher nen 12 V Netzteil und nen Linearregler für die 5 V dahinter (oder 
ne Spannungsreferenz, so der Strom ausreicht ;) )

von philipp (Gast)


Lesenswert?

Habe mich nun länger mit dem Thema beschäftigt und bin dabei auf diese 
Anleitung zum ICM7555 gestoßen:
https://www.maximintegrated.com/en/app-notes/index.mvp/id/5718

Ganz grundsätzlich entspricht die Schaltung doch dem, was ich für mein 
Vorhaben benötige, oder?
Die Control-Voltage entspräche dann den 0-4,2V und die 
Versorgungsspannung wären 5V.
An Pin 3 kann ich dann die gepulsten 5V abfangen, richtig?

Wie müsste ich nun C1 wählen um auf eine Frequenz zwischen 18KHz und 
30KHz zu kommen?

Welchen Zweck erfüllt R1 genau?

von philipp (Gast)


Lesenswert?

Ich bin noch auf einen anderen Ansatz aufmerksam gemacht worden.

philipp schrieb:
> Zunächst mal Danke für eure Antworten.
> Werde mich mal weiter in das Thema einlesen :)
>
> Eine Frage noch:
> Statt der o.g. Steuerspannung hätte ich auch die Möglichkeit, ein
> PWM-Signal 3,3V @ 50KHz zur Steuerung zu nutzen.
> Das würde die Schaltung aber vermutlich nur unnötig verkomplizieren,
> oder?

Wäre es auch mgölich, dass 3,3V PWM-Signal @ 50KHz über einen 2:1 
Frequenzteiler auf 25KHz zu bringen?

Habe dazu ein wenig gesucht und bin dabei auf diese Seite gestoßen:
https://freegroup.github.io/draw2d_js.app.brainbox/assets/help/basics/part70/README/#sn-7490-als-teiler

Wenn ich das richtig verstehe, wäre das ja genau die Schaltung, welche 
ich benötigen würde, oder?
Der passende IC müsste dann der SN74LS90 sein, richtg?
Dort würde ich an Pin5 5V Versorgungsspannung anlegen und an Pin 14 das 
3,3V PWM-Signal @ 50KHz. An Pin 12 kann ich dann das PWM-Signal mit 3,3V 
@ 25KHz abgreifen, korrekt?

Müsste noch einfacher sein, als über einen 555er Timer...

von Markus (Gast)


Lesenswert?

Warum nimmst Du nicht einen Arduino Nano-Klon und kombinierst das 
Beispiel für AD-Wandler lesen und PWM setzen? 10 Zeilen Code und gut 
ist.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

philipp schrieb:
> Der passende IC müsste dann der SN74LS90 sein, richtg?

Der ist allerdings völlig veraltet und kommt auch mit 3,3V nicht richtig 
klar. Heute würdest du entweder einen 74HC90 oder ein einfaches 
Flipflop, wie den CD4013 benutzen. Allerdings mal dir mal bitte dein PWM 
Signal auf und dann dazu das Schaltverhalten des Flipflop/Teiler ICs.

Am simpelsten ist vermutlich ein kleiner MC, wie der ATTiny13 oder 
ATTiny25-85. Da ist der analoge Eingang fertig, der PWM Generator auch 
und du brauchst lediglich einige wenige Programmzeilen. Da dann immer 
noch ein paar Pins frei sind, sind auch Komfortfunktionen denkbar.
Die ganze Nummer besteht aus 2 Bauteilen (MC mit Abblock-C) plus IC 
Sockel.

von Dietrich L. (dietrichl)


Lesenswert?

philipp schrieb:
> Wenn ich das richtig verstehe, wäre das ja genau die Schaltung, welche
> ich benötigen würde, oder?

Oder!
Durch Teilen geht die _W_eiten-Information von P_W_M verloren. Die 
Frequenz ist ja konstant, und durch Teilen durch 2 bekommst du eine 
25kHz-Rechtecksignal mit genau 50% Tastverhältnis.

von Markus (Gast)


Lesenswert?

>>Autor: Markus (Gast)
>>Warum nimmst Du nicht einen Arduino Nano-Klon und kombinierst das
>>Beispiel für AD-Wandler lesen und PWM setzen? 10 Zeilen Code und gut
>>ist.
>Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
>Am simpelsten ist vermutlich ein kleiner MC, wie der ATTiny13 oder
>ATTiny25-85.

Eher nicht. Am simpelsten und am schnellsten zu löten ist ein Arduino 
Nano.

Für ein Einzelstück spielt der Preis kaum eine Rolle ( wenns scnnell da 
sein muss hier 
https://www.amazon.de/Entwicklerboard-Mikrocontroller-Christians-Technik-Shop/dp/B013PC8OX4/ 
) und Spannungsregler, Programmierschnittstelle, Entstörkondensatoren 
sind auch schon drauf.

Anleitungen gibt's auch gleich:
https://we-mod-it.com/board258-diy-do-it-yourself/board263-diy-how-to/board231-raspberry-arduino/2458-arduino-tutorial-3-l%C3%BCfter-per-pwm-steuern/

von philipp (Gast)


Lesenswert?

Dietrich L. schrieb:
> Oder!
> Durch Teilen geht die _W_eiten-Information von P_W_M verloren. Die
> Frequenz ist ja konstant, und durch Teilen durch 2 bekommst du eine
> 25kHz-Rechtecksignal mit genau 50% Tastverhältnis.

Womit ich wieder am Anfang wäre... :D

MC möchte ich möglichst vermeiden und mich rein auf die Bauteile 
beschränken, die zur Problemlösung nötig sind.

philipp schrieb:
> Habe mich nun länger mit dem Thema beschäftigt und bin dabei auf diese
> Anleitung zum ICM7555 gestoßen:
> https://www.maximintegrated.com/en/app-notes/index.mvp/id/5718
>
> Ganz grundsätzlich entspricht die Schaltung doch dem, was ich für mein
> Vorhaben benötige, oder?
> Die Control-Voltage entspräche dann den 0-4,2V und die
> Versorgungsspannung wären 5V.
> An Pin 3 kann ich dann die gepulsten 5V abfangen, richtig?
>
> Wie müsste ich nun C1 wählen um auf eine Frequenz zwischen 18KHz und
> 30KHz zu kommen?
>
> Welchen Zweck erfüllt R1 genau?

Würde gern noch einmal euer Feedback zu diesem Ansatz hören.

von philipp (Gast)


Lesenswert?

Okay, der nackte ATtiny wäre ggf. auch eine Alternative...
Kann ich hier die PWM-Frequenz au die geforderten 18-30KHz bringen?
Vom Arduino weiss ich, dass das zwar möglich, aber recht umständlich 
ist...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

philipp schrieb:
> PWM frequency = 18 KHz to 30KHz
> High Level = 3.3V to 6V
> Low Level = 0V to 0.4V
> PWM Range = 20% to 100%

philipp schrieb:
> ATtiny wäre ggf. auch eine Alternative...
> Kann ich hier die PWM-Frequenz au die geforderten 18-30KHz bringen?
Ein Tiny85 z.B. kann das locker dank seiner Fast-PWM:
https://www.re-innovation.co.uk/docs/fast-pwm-on-attiny85/

von philipp (Gast)


Lesenswert?

Sollte mit dem ATtiny dann ja ebenfalls funktionieren, oder?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

philipp schrieb:
> Sollte mit dem ATtiny dann ja ebenfalls funktionieren, oder?
Richtig, denn der Tiny85 ist ein ATtiny. Und weil es mit dem ATtiny85 
funktioniert funktioniert es auch mit dem ATtiny.

: Bearbeitet durch Moderator
von philipp (Gast)


Lesenswert?

philipp schrieb:
> ATtiny

Meinte den ATtiny45... Sorry

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

philipp schrieb:
> Meinte den ATtiny45...
Der einzige Unterschied vom Tiny84 zum Tiny45 ist ein kleinerer 
Speicher. Der Rest der Hardware ist gleich. Also: Ja.

Du solltest da jetzt aber langsam das Datenblatt herunterladen und dir 
den Timer 1 anschauen (das ist der, der für die millis() beim Arduino 
verwendet wird und deshalb Probleme macht).

: Bearbeitet durch Moderator
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.