Forum: Mikrocontroller und Digitale Elektronik Signale verarbeiten und ausgeben


von Philip W. (slathibatfas)


Lesenswert?

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?

von Dunno.. (Gast)


Lesenswert?

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

von N. M. (mani)


Lesenswert?

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
von Peter D. (peda)


Lesenswert?

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.

von Philip W. (slathibatfas)


Lesenswert?

kann ein ADC ein Rechtecksignal konvertieren?

von Georg (Gast)


Lesenswert?

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

von Andreas (Gast)


Lesenswert?

Philip W. schrieb:
> kann ein ADC ein Rechtecksignal konvertieren?

Ein ganz klaren Jein!

von Peter D. (peda)


Lesenswert?

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.

von HildeK (Gast)


Lesenswert?

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.

von Rolf M. (rmagnus)


Lesenswert?

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.

von Philip W. (slathibatfas)


Lesenswert?

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.

von Philip W. (slathibatfas)


Lesenswert?

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.
von Philip W. (slathibatfas)


Lesenswert?

Da es sich um eine Nadel im Geschwindigkeitsmesser handelt, müsste die 
Dauer des high-Impulses verändert werden.

von Philip W. (slathibatfas)


Lesenswert?

Die Dauer des High signals

von Hermann Kokoschka (Gast)


Lesenswert?

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"?

von Wolfgang (Gast)


Lesenswert?

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.

von elan (Gast)


Lesenswert?

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

von Rolf M. (rmagnus)


Lesenswert?

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.

von Vorname N. (mcu32)


Lesenswert?

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.

von Peter R. (Gast)


Lesenswert?

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.

von Peter R. (Gast)


Lesenswert?

Philip W. schrieb:
> kann ein ADC ein Rechtecksignal konvertieren?

Ja, man muss aber wissen in Was.  (magischen Rauch oder Licht als 
Beispiele)

von Kurt (Gast)


Lesenswert?

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.

von Wolfgang (Gast)


Lesenswert?

Philip W. schrieb:
> kann ein ADC ein Rechtecksignal konvertieren?

Ein ADC kann jedes Signal konvertieren - das ist nicht das Problem.

von Wilhelm M. (wimalopaan)


Lesenswert?

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?

von Philip W. (slathibatfas)


Lesenswert?

am einfachsten für mich wäre ein Arduino nano

von N. M. (mani)


Lesenswert?

https://github.com/SMFSW/CaptureTimer/blob/master/examples/CaptureToAnalogic/CaptureToAnalogic.ino

Evtl die Config anpassen und anstatt analog halt als PWM ausgeben.
Fertig.

von Wilhelm M. (wimalopaan)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

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?

von Stefan F. (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.