Signale verarbeiten und ausgeben

OP #7040874
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?
Gast #7042140
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
Gast #7042303
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.
Beitrag #7043220 wurde von einem Moderator gelöscht.
Gast #7043231
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"?
Gast #7043293
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.
#7043345
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.
Gast #7044066
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.
Gast #7044147
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.
#7044235
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?
Gast #7045583
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren