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
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.
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?
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
@ 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.
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.
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?
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
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 ?
Eine eigene Frage?
Dieser Thread ist über 12 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.