Forum: Analoge Elektronik und Schaltungstechnik PWM von 50Hz auf 100Hz reduzieren


von Alexander (Gast)


Lesenswert?

Hallo,

ich bin auf der Suche mit einer Hardware die PWM Frequenz von 500Hz auf 
100Hz zu reduzieren. Die PWM wird durch einen Arduino erzeugt und wenn 
ich diese dort reduziere, hat das großen Einfluss auf weitere 
Funktionen.

Vielen Dank für Eure Hilfe.

Gruß

Alexander

von Udo S. (urschmitt)


Lesenswert?

Einen 2. Arduino und den dann entsprechend programmieren.
Oder doch im 1. Arduino machen.

Alexander schrieb:
> und wenn
> ich diese dort reduziere, hat das großen Einfluss auf weitere
> Funktionen.

Warum? Dann die Funktionen besser entkoppeln.
Mit zusätzlicher Hardware schlechte Programmierung zu übertünchen ist 
selten eine gute Idee. Das nächste Problem im Spagetticode kommt 
bestimmt.

von gvs (Gast)


Lesenswert?

Wäre interessant zu wissen, weshalb gerade die Frequenz so wichtig ist, 
und welche Funktionen das dann betrifft (intern oder extern).

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


Lesenswert?

Alexander schrieb:
> die PWM Frequenz von 500Hz auf 100Hz zu reduzieren.
Warum?

> Die PWM wird durch einen Arduino erzeugt und wenn ich diese dort
> reduziere, hat das großen Einfluss auf weitere Funktionen.
Warum?

von Und wech U. (quinny)


Lesenswert?

Hallo Alexander,

ich spekuliere mal frech, dass in Deinem Arduino die PWM nicht per 
PWM-Funktionsblock sondern per Zähl-Schleife erzeugt wurde. Zur Zeit 
dauert das Ding 2 ms (500 Hz). Wenn Du die Zählschleife auf 100 Hz 
verlangsamst, dann schläft der ganze Arduino ein. Nutzung des PWM-FB 
geht nicht, weil "ungünstiges Portrouting" oder "nicht eingearbeitet" 
oder "anderweitig belegt".

Ist meine Spekulation halbwegs korrekt? Wenn "ja", dann hast Du ein 
Problem. Entweder die Software-Struktur umstellen (das geht in ein paar 
Minuten) oder die üblichen hardcore Wege.

Man könnte die PWM integrieren und dann die analoge Spannung mit einem 
extra PWM-Modulator in die gewünschte PWM wandeln. Aufwand: 1 Doppel-OPV 
und 4 "Hühnerfutter", 1 Stunde und Oszi.

Oder man kann über fünf Zyklen die high-Zeiten und gesondert die 
low-Zeiten addieren und daraus dann direkt die neue PWM erzeugen. 
Aufwand: 1 Conroller, 2 Stunden.

Oder... oder... oder...

VG

Fred

von pwm (Gast)


Lesenswert?

Die "Arduino-PWM" hat 490 Hz bzw. 980 Hz, der TE schreibt von 500 Hz, 
was die Vermutung untermauert Software-PWM...

von pwm (Gast)


Lesenswert?

Wie stellst du dir überhaupt das "Ausgabe-Signal" vor?

Soll das Tastverhältnis beibehalten werden?

von Falk B. (falk)


Lesenswert?

@ pwm (Gast)

>Die "Arduino-PWM" hat 490 Hz bzw. 980 Hz, der TE schreibt von 500 Hz,
>was die Vermutung untermauert Software-PWM...

Klar. Weil der OP GAAANZ sicher GAAAANZ genau gemessen hat. Ich würde 
eher sagen, die 500Hz sind real 490 Hz und damit Hardware-PWM.

von Joachim B. (jar)


Lesenswert?

pwm schrieb:
> Die "Arduino-PWM" hat 490 Hz bzw. 980 Hz, der TE schreibt von 500 Hz,
> was die Vermutung untermauert Software-PWM...

das vermute ich auch, habe die Funktion PWM auch zum erstan mal am 
Arduino aktiviert und wunderte mich, kein Port vorgegeben ? keine 
Einstellmöglichkeiten ?
Vorteiler Counter OCRA OCRB alles egal ?
Das muss Software PWM sein :-)

OK für meine Hintergrundbeleuchtung LED dimmen reicht es ja, will ich 
besseres würde ich die Arduino Umgehen und die richtigen Ports richtig 
hardware mäßig initialisieren.

von Werner (Gast)


Lesenswert?

Joachim B. schrieb:
> das vermute ich auch, habe die Funktion PWM auch zum erstan mal am
> Arduino aktiviert und wunderte mich, kein Port vorgegeben ? keine
> Einstellmöglichkeiten ?
> Vorteiler Counter OCRA OCRB alles egal ?

Schon mal auf die Idee gekommen, dass das alles im pinMode() und 
analogWrite() erledigt wird?

von Und wech U. (quinny)


Lesenswert?

Ich kenn den Arduino nicht. Aber wenn der nur 500Hz kann (was ich 
allerdings nicht glauben mag, weil da doch auch irgendein Atmel verbaut 
ist), dann wird der TE vermutlich genau da sein Problem haben. Denn er 
müsste ja den gesamten Takt auf 1/5 runterdrehen, um 100Hz PWM zu 
erzeugen.

Ich bin gespannt, ob sich der Alexander nochmal meldet....

VG

Fred

von Axel S. (a-za-z0-9)


Lesenswert?

Leute, das ist Arduino. Da soll man gar nicht wissen, was hinter den 
Kulissen abgeht. Sonst könnte man ja womöglich was lernen...

von Joachim B. (jar)


Lesenswert?

Werner schrieb:
> Schon mal auf die Idee gekommen, dass das alles im pinMode() und
> analogWrite() erledigt wird?

ja ! bin ich und nun ?

wie hilft das weiter ?

und nein ich habe keine Lust momentan die ArduinoLIB zu analysieren,

ich zitiere mal "bei einer hübschen Frau fragt man sich auch nicht wie 
sie es macht, man geniesst das Ergebnis"

aus Unternehmen Petticoat ?

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