Forum: Mikrocontroller und Digitale Elektronik PWM-Frequenzwandlung mit Arduino?


von Ths S. (motorburner)


Lesenswert?

Hallo zusammen,

in einem Bestandskühlsystem ist ein Lüfter verbaut, welcher im Moment 
mittels Koppelrelais 0/1 gesteuert wird.
Zur Senkung der Lautstärke soll zukünftig eine PWM-Ansteuerung 
eingesetzt werden, hierfür benötige ich eine PWM-Endstufe.

Der Lüfter soll lt. Hersteller mit einer Frequenz von 10kHz angetaktet 
werden und hat eine Nennstromaufnahme von 20A bei 12V.

Mir steht bereits ein PWM-Signal zur Verfügung, welches folgende 
Eigenschaften hat:
- Open-Collector-Ausgang -> Ausgabe des Signals über Kollektorwiderstand 
oder PNP
- unter Verwendung eines Kollektorwiderstandes/PNP: High-Pegel 12V
- Frequenz: 10-250Hz einstellbar
- Tastverhältnis 0-100% temperaturabhängig

Ich möchte nun unter Verwendung eines Arduinos (welcher, ist mir nicht 
ganz klar, aber im Moment bevorzugt Arduino Nano) die 100Hz-PWM 
einlesen, auf 10kHz bringen und an einen N-MOSFET ausgeben, der dann die 
Antaktung des Lüfters übernimmt, ausgeben.
Ich habe leider von Arduino nicht so wirklich Ahnung, sehe das aber als 
ideales Einstiegsprojekt.
Mir steht für das komplette Modul eine Versorgungsspannung von 12V zur 
Verfügung, ich würde deshalb einen 7805 vorsehen, der den Arduino 
speist. Am PWM-Ausgang des Arduino dann noch ein Gate-Treiber und 
dahinter dann den N-MOSFET mit Schottkydiode.
Eine hardwareseitige Schutzbeschaltung gegen Überspannung ist nicht 
vorgesehen. Die Schaltung soll so einfach wie möglich sein.

Meine Fragen dazu:
- wie löst man am besten die Frequenzvervielfachung softwareseitig?
- wie schützt man den Arduino zukünftig softwareseitig vor unbefugter 
Umprogrammierung?
- taugt der Logik-Level-MOSFET Typ IRLB8748PBF als Endstufe?

Beste Grüße!

von Peter D. (peda)


Lesenswert?

Ths S. schrieb:
> - wie löst man am besten die Frequenzvervielfachung softwareseitig?

Man mißt die 100Hz PWM über den Capture Input und gibt die PWM über 
einen weiteren Timer aus.

von Obelix X. (obelix)


Lesenswert?

Ths S. schrieb:
> - wie löst man am besten die Frequenzvervielfachung softwareseitig?

Mit Timer Impulslänge des Eingangs messen -> umrechnen -> Wert in Timer 
für Ausgangs PWM setzen

von Falk B. (falk)


Lesenswert?

Ths S. schrieb:
> in einem Bestandskühlsystem ist ein Lüfter verbaut, welcher im Moment
> mittels Koppelrelais 0/1 gesteuert wird.
> Zur Senkung der Lautstärke soll zukünftig eine PWM-Ansteuerung
> eingesetzt werden, hierfür benötige ich eine PWM-Endstufe.

Mal wieder. Lüftersteuerung per PWM, der Volkssport Nr. 1!

> Der Lüfter soll lt. Hersteller mit einer Frequenz von 10kHz angetaktet
> werden und hat eine Nennstromaufnahme von 20A bei 12V.

Ganz schön viel.

> Mir steht bereits ein PWM-Signal zur Verfügung, welches folgende
> Eigenschaften hat:
> - Open-Collector-Ausgang -> Ausgabe des Signals über Kollektorwiderstand
> oder PNP
> - unter Verwendung eines Kollektorwiderstandes/PNP: High-Pegel 12V
> - Frequenz: 10-250Hz einstellbar
> - Tastverhältnis 0-100% temperaturabhängig
>
> Ich möchte nun unter Verwendung eines Arduinos (welcher, ist mir nicht
> ganz klar, aber im Moment bevorzugt Arduino Nano) die 100Hz-PWM
> einlesen, auf 10kHz bringen und an einen N-MOSFET ausgeben, der dann die
> Antaktung des Lüfters übernimmt, ausgeben.

Kann man machen.

> Ich habe leider von Arduino nicht so wirklich Ahnung, sehe das aber als
> ideales Einstiegsprojekt.
> Mir steht für das komplette Modul eine Versorgungsspannung von 12V zur
> Verfügung, ich würde deshalb einen 7805 vorsehen, der den Arduino
> speist.

Den kann man direkt mit 12V speisen, der hat einen Spannungsregler an 
Bord (Eingang VIN).

> Am PWM-Ausgang des Arduino dann noch ein Gate-Treiber und
> dahinter dann den N-MOSFET mit Schottkydiode.

So sieht's aus.

> - wie löst man am besten die Frequenzvervielfachung softwareseitig?

Man stellt einen freien Timer auf 10kHz ein. Fertig.

> - wie schützt man den Arduino zukünftig softwareseitig vor unbefugter
> Umprogrammierung?

Wozu? Ist dein Projekt so geheim und kritisch?

> - taugt der Logik-Level-MOSFET Typ IRLB8748PBF als Endstufe?

Ist OK.

von Falk B. (falk)


Lesenswert?


von Michael B. (laberkopp)


Lesenswert?

Ths S. schrieb:
> Versorgungsspannung von 12V zur Verfügung, ich würde deshalb einen 7805
> vorsehen

Wenn deine Versorgungsspannung ein KFZ Bordnetz ist, überlebt der nicht 
lange.

https://dse-faq.elektronik-kompendium.de/dse-faq.htm#F.23

Es gibt dafur übrigens feine Lüfter mit eingebauter PWM.

Ths S. schrieb:
> und hat eine Nennstromaufnahme von 20A bei 12V.

Wenn der MOSFET direkt die 12V des Lüfters takten soll, reicht nicht die 
Nennstromaufnahme sondern man muss den 
Anlaufstrom=Blockierstrom=12V/Innenwiderstand zu Grunde legen, leicht 
200A.

Dafür verwendet man zwischen Arduino und MOSFET besser einer 
Gate-Treiber damit das Umschalten schneller erfolgt. Die Freilaufdiode 
muss auch die 20A aushalten. Eine aktive Freilaufschaltung, also 2 
MOSFETs in Halbbrücke, verringert die Verlustleistung. Dafur gibt es 
fertige Halbbrückentreiber wie IR2184.

Klügere Leute verwenden überstromgeschützte Treiber wie LT1158 und 
brauchen dann keine 200A MOSFETs.

von Ths S. (motorburner)


Lesenswert?

Moin,

Michael B. schrieb:
> Wenn deine Versorgungsspannung ein KFZ Bordnetz ist, überlebt der nicht
> lange.

es handelt sich um die Hydraulikkühleinheit eines Gabelstaplers. der ist 
teilweise in der Nachtschicht außen zu laut, weshalb über die Verwendung 
einer PWM-Steuerung nachgedacht wird.

Michael B. schrieb:
> Es gibt dafur übrigens feine Lüfter mit eingebauter PWM.

Die gibt es, aber die verwendeten Lüfter sollen weiter in Gebrauch 
bleiben.

Ich werde Anfang kommender Woche mal einen Stromlaufplan zusammenbasteln 
und dann hier posten, die Verwendung eines LT1158 sieht interessant aus.

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.