Moin, entschuldigt bitte im Voraus meine Unwissenheit. :) Hat jemand eine Idee, wie man ein PWM-Signal empfangen dann umrechnen und wieder ausgeben kann? Also kann man ein digital read Signal einfach durch 4 teilen, mit 3 multiplizieren und dann wieder ausgeben?
Philip W. schrieb: > Also kann man ein digital read Signal einfach durch 4 teilen, mit 3 > multiplizieren und dann wieder ausgeben Nein. Ich geb dir 2 Stichwörter. Tiefpass Adc
Du kannst mit einem uC das Puls Pausen Verhältnis ausmessen, manipulieren und wieder ausgeben. Ist keine große Sache. Zumindest wenn die Frequenzen, die Auflösung und die Dynamik im Rahmen bleiben. Input Capture ist ein Stichwort: High-Speed capture mit ATmega Timer
:
Bearbeitet durch User
Vermutlich willst Du ein Tachosignal manipulieren. Dann ist nicht die PWM das Signal, sondern die Frequenz. Mit Input-Capture kannst Du eine Frequenz messen und mit einem anderen Timer die umgerechnete Frequenz ausgeben.
Philip W. schrieb: > kann ein ADC ein Rechtecksignal konvertieren? Ein Rechtecksignal kann Information enthalten in Amplitude, Frequenz oder Tastverhältnis, von komplexeren Versionen wie seriellen Daten mal ganz abgesehen - was davon soll gemessen und manipuliert wieder ausgegeben werden? Georg
Philip W. schrieb: > kann ein ADC ein Rechtecksignal konvertieren? Mal Butter bei die Fische, sag endlich mal, was für ein super geheimes Signal das ist.
Philip W. schrieb: > entschuldigt bitte im Voraus meine Unwissenheit. Das ist kein Problem. Ein Problem ist, dass du nicht sagst, wie das Eingangssignal aussieht, ja, nur PWM, aber wie ist dessen Periode und Amplitude. Und dass du nicht sagst, wie das Ausgangssignal aussehen soll. Nimm Bleistift und Papier und zeichne mal auf, wie beides aussehen soll. PWM könnte ein AnalogWrite eines Arduino sein, es kann auch nur eine Pulsfolge sein mit z.B. 16 Pulsen und du willst 12 daraus machen. Und mit ungenauer Laienaussage auch ein Servosignal. Und bestimmt gibt es noch anderes ... Philip W. schrieb: > kann ein ADC ein Rechtecksignal konvertieren? Ja, solange du das Abtasttheorem einhältst.
Philip W. schrieb: > kann ein ADC ein Rechtecksignal konvertieren? Können kann er prinzipiell schon. Ob es auch sinnvoll ist, hängt vom Anwendungsfall ab.
Nein tatsächlich handelt es sich hierbei wirklich um ein PWM-Signal. Es geht um die Motordrehzahl, genauer gesagt um die Kommunikation zweier Steuergeräte.
Es ist einfach ein PWM Signal, welches von einem Steuergerät direkt zur Nadel des Geschwindigkeitsmessers übertragen wird.
Beitrag #7043220 wurde vom Autor gelöscht.
Da es sich um eine Nadel im Geschwindigkeitsmesser handelt, müsste die Dauer des high-Impulses verändert werden.
Philip W. schrieb: > Also kann man ein digital read Signal einfach > durch 4 teilen, mit 3 multiplizieren und dann wieder ausgeben? Natürlich "kann man" das: DU kannst und darfst dividieren (ausser duch 0) und multiplizieren und addieren und sonstwas bis Du umfällst. DU kannst und darfst auch "ausgeben" was-Du-willst, sogar drei-viertel oder vier-drittel. Kommt noch eine konkrete Frage mit etwas mehr Hintergrund als "Drehzahl" und "Steuergerät"?
Philip W. schrieb: > Es ist einfach ein PWM Signal, welches von einem Steuergerät direkt zur > Nadel des Geschwindigkeitsmessers übertragen wird. Kannst du bitte ganz konkret verraten, welcher der vier Parameter, mit denen ein PWM-Signal beschrieben wird (Amplitude, DC-Anteil, Frequenz, Tastverhältnis), du mit 3/4 multiplizieren willst.
Philip W. schrieb: > Es ist einfach ein PWM Signal, welches von einem Steuergerät direkt zur > Nadel des Geschwindigkeitsmessers übertragen wird. Da brauchst du nur ein Nadelöhr
Philip W. schrieb: > Es geht um die Motordrehzahl Philip W. schrieb: > direkt zur Nadel des Geschwindigkeitsmessers übertragen wird Du willst die Motordrehzahl auf dem Tacho anzeigen statt auf dem Drehzahlmesser und dafür umrechnen? Philip W. schrieb: > müsste die Dauer des high-Impulses verändert werden Dann nimm einen µC, miss damit die Pulsdauer und erzeuge eine neue PWM mit entsprechend veränderter Pulsdauer.
Sowas ist eine klassische Aufgabe für einen Timer Stichwort Capture Funktion. Per Interrupt die Flanken und die Timestamps erfassen und dann ein entsprechendes, neues Signal ausgeben.
Also: ständig aus einer Folge von 4 Takten 3 Takte machen: Dabei soll das Tstverhältnids erhalten bleiben: Mit einem Zähler , der z.B µs Takt hat, pos und neg. Zeit zählen. pos. Zeit und neg.Zeit z.B, 300 und 200 µsec als Ergebnis beide Zeiten mit 1,33.. multiplizieren; 400 bzw 266µs ( Multiplikation ist leichter als Division, deshalb 1,3333) Dann Impulse mit diesen neuen Zeiten ausgeben. Dann wird die Frequenz auf 3/4 gesenkt und das Tastverhältnis bleibt erhalten. 266 und 400 einem Zwischenspeicher übergben, der das einem Zähler zur Ausgabe übergibt. Wenn das Tastverhältnis unwichtig ist, kanns auch einfacher werden: jeden 4. Takt ausblenden, durch Zähler mod4 und Torschaltung, die z.B bei N = 00 den 4. Takt unterdrückt.
Philip W. schrieb: > kann ein ADC ein Rechtecksignal konvertieren? Ja, man muss aber wissen in Was. (magischen Rauch oder Licht als Beispiele)
Da du nach eigener Aussage eine gewisse Unwissenheit mitbringst, kannst du mir glauben, dass deine Schilderung des "Empfangs eines PWM-Signals" einen Informationsgehalt von unter 1/10 hat. Die bisherigen Antworten sind wildes Raten. Ab 1/3 könnte man vielleicht sinnvoll nachfragen, worum es dir geht. Mit wachsender Kenntnis deines "Problems" wächst auch die Chance auf hilfreiche Antworten.
Philip W. schrieb: > kann ein ADC ein Rechtecksignal konvertieren? Ein ADC kann jedes Signal konvertieren - das ist nicht das Problem.
Manche Controller können die Dauer des Pulses im PWM-Signal mit einem Timer direkt messen: man definiert nur welche Flanke Start und welche Ende sind. Dann kann man die Pulsweite als ggf. 16-Bit Wert im Verhältnis zur Timerfrequenz auslesen. Anschließend manipulierst Du diesen Wert entsprechend und verwendest einen anderen Timer , um das PWM-Signal wieder auszugeben. Dazu braucht es kein ADC und externen TP. Welcher µC soll es denn sein?
https://github.com/SMFSW/CaptureTimer/blob/master/examples/CaptureToAnalogic/CaptureToAnalogic.ino Evtl die Config anpassen und anstatt analog halt als PWM ausgeben. Fertig.
Philip W. schrieb: > am einfachsten für mich wäre ein Arduino nano Der nano every hat einen mega4809 (mega0-serie), der TCB dieses µC kann das.
Philip W. schrieb: > Nein tatsächlich handelt es sich hierbei wirklich um ein PWM-Signal. Laß Dir doch nicht alles aus der Nase ziehen. PWM heißt, das Tastverhältnis ist die Information und die Frequenz ist konstant. Stimmt das so? Welche Frequenz hat das Signal konkret? Welches Tastverhältnis, 0..100% oder weniger?
Philip W. schrieb: > entschuldigt bitte im Voraus meine Unwissenheit. :) Oha, du darfst hier keine Schwäche zeigen. Das lockt die Hyänen an. > Hat jemand eine Idee, wie man ein PWM-Signal empfangen dann umrechnen > und wieder ausgeben kann? Also kann man ein digital read Signal einfach > durch 4 teilen, mit 3 multiplizieren und dann wieder ausgeben? Bei Arduino sind dafür die Funktionen pulseIn(), map() und analogWrite() vorgesehen.
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.