Forum: Analoge Elektronik und Schaltungstechnik Frequenz eines Rechtecksignals ändern


von Marc G. (marc_g130)


Lesenswert?

Hallo, ich habe eine 12V Rechtecksignal für einen Tacho. Dieses ändert 
sich linear in der Frequenz zur Geschwindigkeit. Jetzt liegt es leider 
um 60% daneben. Da der Tacho nicht zum Abs paßt, welches die Frequenz 
ausgibt.
Wie kann man am besten eine art offset auf die Frequenz bekommen, bzw 
die Frequenz ändern um es zu korrigieren. Am besten ohne einen 
Mikrocontroller.

: Bearbeitet durch User
von Ingo L. (corrtexx)


Lesenswert?

Marc G. schrieb:
> Am besten ohne einen Mikrocontroller.
Das wird schwer. Hier wäre ein µC tatsächlich das Einfachste. Frequenz 
messen, korrigieren (rechnen) und korrigiert ausgeben. Kein großer Akt, 
aber wenn man sich damit nicht auskennt schon erheblicher Aufwand...

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Ingo L. schrieb:
> Marc G. schrieb:
>> Am besten ohne einen Mikrocontroller.
> Das wird schwer. Hier wäre ein µC tatsächlich das Einfachste.

Einfach insbesondere, wenn man ein bestehendes Programm nebst Schaltung 
verwendet: http://mino-elektronik.de/Generator/takte_impulse.htm#bsp4
Lediglich den Korrekturfaktor muß man auf 0.6 ändern. Bei einfachen 
Anwendungen (Tacho) kann man sich den ext. Quarz sparen und mit int. 
Takt arbeiten.

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


Lesenswert?

Marc G. schrieb:
> Wie kann man am besten eine art offset auf die Frequenz bekommen, bzw
> die Frequenz ändern um es zu korrigieren.
Am besten und einfachsten mit einem Mikrocontroller.

> Am besten ohne einen Mikrocontroller.
Dann gibt es nur eine aufwändige und sicher bestenfalls "zweitbeste" 
Lösung: du wandelst das Signal mit einem Monoflop und anschließendem 
Tiefpass in eine Gleichspannung (fU-Wandler), ziehst den Offset ab und 
erzeugst daraus wieder ein Rechtecksignal (Uf-Wandler).
Viel Spass beim Berechnen und Abgleichen dieser Lösung... ;-)

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Marc G. schrieb:
> Jetzt liegt es leider
> um 60% daneben.

Wer liegt zu hoch und wer liegt zu tief? Runterteilen geht recht leicht 
mit Hardware, aber multiplizieren nicht - da ist ein MC besser.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Prinzipiell gibt es noch die Möglichkeit, die Eingangsfrequenz mittels
einer PLL-Schaltung um den Faktor 2 bzw. 8 zu erhöhen und anschließend
mit einem Frequenzteiler um den Faktor 5 herunterzusetzen. Das sollte
mit 2 ICs realisierbar sein, könnte aber bei sich schnell ändernden
Eingangsfrequenzen problematisch werden. Auch ein Finetuning (wenn man
bspw. feststellt, dass die Abweichung nicht 60%, sondern 61% beträgt),
ist nicht so leicht möglich.

Eine µC-Lösung ist da um ein Vielfaches flexibler.

von Stefan F. (Gast)


Lesenswert?

Manchmal frage ich mich, warum solche Fragen im Mikrocontroller.net 
Forum gestellt werden.

a) Weil der Fragende schon davon ausgeht, daß er dazu einen 
Mikrocontroller verwenden wird.
b) Weil er dieses Forum für ein allgemeines Elektronik Forum hält und 
noch keinen Lösungsansatz vor Augen hat.

Auffällig (sicher auch verständlich) ist auf jeden Fall, daß hier sehr 
häufig Mikrocontroller empfohlen werden. Aber hilft das dem TO? Wenn man 
schon einen Mikrocontroller empfiehlt, müsste man dann nicht auch gleich 
ein Konzept für die Software skizzieren?

Ich stelle mir vor, ich frage bei einem Steine-Fachhandel nach, wie ich 
ein Gartenhaus bauen könnte. In einer weitschweifenden geste würde der 
auf seine Steine-Ausstellung verweisen und sagen "Nimm Steine". Das 
würde mich keinen Schritt weiter bringen.

von m.n. (Gast)


Lesenswert?

Stefan U. schrieb:
> Wenn man
> schon einen Mikrocontroller empfiehlt, müsste man dann nicht auch gleich
> ein Konzept für die Software skizzieren?

Was habe ich denn weiter oben gemacht? ;-)
Wenn der TO mit einem programmierten AVR umgehen kann, das heißt 12 V 
Pegel mit 5 V zu verarbeiten, kann ich ihm gerne ein paar µCs mit 
passendem Programm programmieren und zuschicken. Aber ich drängel mich 
da nicht auf.

von Stefan F. (Gast)


Lesenswert?

> Was habe ich denn weiter oben gemacht?
Ja du hast das gemacht. Viele Leute empfehlen aber einfach nur einen µC, 
in diesem Fall dein Vorgänger Lothar.

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


Lesenswert?

Stefan U. schrieb:
>> Was habe ich denn weiter oben gemacht?
> Ja du hast das gemacht. Viele Leute empfehlen aber einfach nur einen µC,
> in diesem Fall dein Vorgänger Lothar.

Der Hinweis, daß ein µC hier das Mittel der Wahl wäre und daß seine 
Einschränkung

Marc G. schrieb:
> Am besten ohne einen Mikrocontroller.

kontraproduktiv ist, weist ihm zumindest einen Weg. Ob er den gehen kann 
oder will, ist seine Entscheidung. Wenn er dann will, kann er immer noch 
nach Details fragen.

von STM Apprentice (Gast)


Lesenswert?

Marc G. schrieb:
> Am besten ohne einen Mikrocontroller.

Ob mein Vorschlag dazu passt mag nur der TO beurteilen:

In der Motorradszene wird für ein solches Problem (Tacho passt
nicht zur Übersetzung) gerne ein >Speedohealer< benutzt.

von Harald W. (wilhelms)


Lesenswert?

Marc G. schrieb:

> Hallo, ich habe eine 12V Rechtecksignal für einen Tacho. Dieses ändert
> sich linear in der Frequenz zur Geschwindigkeit. Jetzt liegt es leider
> um 60% daneben.

Einigermaßen einfach kann man ein Digitalsignal nur durch ganze
Zahlen teilen. Alles andere wird kompliziert und ungenau.

von STM Apprentice (Gast)


Lesenswert?

Harald W. schrieb:
> Alles andere wird kompliziert und ungenau.

kompliziert ja, ungenau nein (durch Fraktional-Teilung).

von Harald W. (wilhelms)


Lesenswert?

STM Apprentice schrieb:

> ungenau nein (durch Fraktional-Teilung).

Auch bei Frequenzen nahe null?

von STM Apprentice (Gast)


Lesenswert?

Harald W. schrieb:
> Auch bei Frequenzen nahe null?

Wenn du nur ein bisschen Ahnung von Fahrzeug-Technik hast dann
wirst du wissen dass der Fall nicht vorkommt, deine Bedenken
also für die Katz' sind. Wenn du überhaupt Bedenken geäussert
hast.

von Marc G. (marc_g130)


Lesenswert?

Matthias S. schrieb:
> Marc G. schrieb:
>> Jetzt liegt es leider
>> um 60% daneben.
>
> Wer liegt zu hoch und wer liegt zu tief? Runterteilen geht recht leicht
> mit Hardware, aber multiplizieren nicht - da ist ein MC besser.

Das Signal muß runter geteilt werd.  Also ich müßte aus 300Hz 187.5 Hz 
machen.

von Marc G. (marc_g130)


Lesenswert?

Yalu X. schrieb:
> Prinzipiell gibt es noch die Möglichkeit, die Eingangsfrequenz mittels
> einer PLL-Schaltung um den Faktor 2 bzw. 8 zu erhöhen und anschließend
> mit einem Frequenzteiler um den Faktor 5 herunterzusetzen. Das sollte
> mit 2 ICs realisierbar sein, könnte aber bei sich schnell ändernden
> Eingangsfrequenzen problematisch werden. Auch ein Finetuning (wenn man
> bspw. feststellt, dass die Abweichung nicht 60%, sondern 61% beträgt),
> ist nicht so leicht möglich.
>
> Eine µC-Lösung ist da um ein Vielfaches flexibler.

Welches IC wäre da am besten geeignet ?
Hätten Sie da einen link für mich ?

von Harald W. (wilhelms)


Lesenswert?

Marc G. schrieb:

> Das Signal muß runter geteilt werd.  Also ich müßte aus 300Hz 187.5 Hz
> machen.

300 konstant oder 0,3...300Hz?

> Welches IC wäre da am besten geeignet ?

Ein Fertig-IC dafür wirst Du nicht finden. Da ginge höchstens ein
von Dir passend prorammierter µC.

von HildeK (Gast)


Lesenswert?

Yalu X. schrieb:
> Prinzipiell gibt es noch die Möglichkeit, die Eingangsfrequenz mittels
> einer PLL-Schaltung um den Faktor 2 bzw. 8 zu erhöhen und anschließend
> mit einem Frequenzteiler um den Faktor 5 herunterzusetzen.

Ist es nicht eher so, dass die Eingangsfrequenz um Faktor 5 erhöht 
werden muss und dann durch 8 geteilt wird?
300*5/8 = 187.5
Mit einer PLL vielleicht sogar besser *10/16 wegen symmetrischem 
Tastverhältnis für den PLL-Frequenzkomparator.
Ich könnte mir vorstellen, dass es mit einem 4046 und zwei 
Teilerbausteinen realisierbar sein sollte.

Aber die Info vom TO kam ja erst danach:
Marc G. schrieb:
> Also ich müßte aus 300Hz 187.5 Hz machen.

von Hurvinek (Gast)


Lesenswert?

Die einfachste Lösung wäre wohl, mit einem BCD-Zähler die Signalfrequenz 
durch 16 zu teilen und im Tacho das Komma um eine Stelle nach links zu 
schieben, wenn moglich?

von Max D. (max_d)


Lesenswert?

Hier in dem Video wird ein fertiges Produkt vorgestellt: 
https://youtu.be/7n6DEYqVDEY
Billiger baust du das auch nicht auf.
Wenn es dir natürlich ums Lernen geht, dann wäre hier der Zeitpunkt zu 
lernen einen uC zu programmieren.

von Joe F. (easylife)


Lesenswert?

HildeK schrieb:
> Ist es nicht eher so, dass die Eingangsfrequenz um Faktor 5 erhöht
> werden muss und dann durch 8 geteilt wird?

Ja 5/8 = 0,625
Vielleicht reicht es ja schon mit einem 3-bit Zähler die Eingangspulse 
mitzuzählen, und dann 3 von 8 Pulsen zu unterdrücken.
Die Logik wäre z.B.
1
cnt enable  
2
3
000   1
4
001   0
5
010   1
6
011   0
7
100   1
8
101   0
9
110   1
10
111   1    
11
12
13
enable = !bit0 | (bit0 & bit1 & bit2)

von Stefan F. (Gast)


Lesenswert?

Ihr diskutiert hier alle über die Frequenz. Ich würde mich viel eher auf 
die Zeitabstände zwischen den Tacho-Impulsen konzentrieren. Denn das ist 
doch das, was die Tachos wirklich messen. Oder irre ich mich?

Dann braucht man auch keine PLL. Einfach fortlaufen den Zeit-Abstand 
zwischen Impulsen messen und ein PWM Signal generieren, wo der Abstand 
entsprechend länger oder kürzer ist.

von Amateur (Gast)


Lesenswert?

Normalerweise lässt sich die Frequenz eines Rechtecksignales nicht 
ändern.
Nur im Sonderfall: Z.B. 2:1 oder so geht das. Das Weglassen von 
einzelnen Pulsen (Verkleinerung) erzeugt einen, oft unzulässigen Jitter.

Pseudo-Analog ginge es mit einem Frequenzteiler mit einer 
nachgeschalteten PLL. Das aber nur, wenn ein fixes Verhältnis zwischen 
vorhandener und gewünschter Frequenz besteht.

In dem von Dir gewünschten Frequenzbereich sollte ein µP arbeiten 
können. Das entbindet Dich aber nicht davon, irgendeinen Teilerfaktor 
bzw. Multiplikator zu fixieren. Ist bei einem weiten Frequenzbereich - 
vor allem, wenn es in Richtung null geht - nicht ganz einfach.

von Günter Lenz (Gast)


Lesenswert?

Hurvinek schrieb:
>mit einem BCD-Zähler die Signalfrequenz
>durch 16 zu teilen

Ein BCD-Zähler kann das nicht, der kann nur durch 10 teilen.
Du meinst wahrscheinlich ein Binärzähler.

von Harald W. (wilhelms)


Lesenswert?

Hurvinek schrieb:

> Die einfachste Lösung wäre wohl, mit einem BCD-Zähler die Signalfrequenz
> durch 16 zu teilen und im Tacho das Komma um eine Stelle nach links zu
> schieben, wenn moglich?

Genau, wenn dann das Tacho statt bis 200 km/h nur bis 20 kmh geht,
trägt das auch sehr zur Erhöhung der Fahrsicherheit bei. :-)

von Yalu X. (yalu) (Moderator)


Lesenswert?

HildeK schrieb:
> Yalu X. schrieb:
>> Prinzipiell gibt es noch die Möglichkeit, die Eingangsfrequenz mittels
>> einer PLL-Schaltung um den Faktor 2 bzw. 8 zu erhöhen und anschließend
>> mit einem Frequenzteiler um den Faktor 5 herunterzusetzen.
>
> Ist es nicht eher so, dass die Eingangsfrequenz um Faktor 5 erhöht
> werden muss und dann durch 8 geteilt wird?
> 300*5/8 = 187.5

Völlig richtig.

Nach der ursprüngliche Information

Marc G. schrieb:
> Jetzt liegt es leider um 60% daneben.

wäre der Faktor entweder 0,6=3/5 bzw. 1,5=8/5 gewesen. Aus der 3 ist
dann durch zu schnelles Tippen meinerseits eine 2 geworden :)

Aber jetzt ist ja das Ziel genauer bekannt, nämlich 0,625=5/8.

Harald W. schrieb:
> Hurvinek schrieb:
>
>> Die einfachste Lösung wäre wohl, mit einem BCD-Zähler die Signalfrequenz
>> durch 16 zu teilen und im Tacho das Komma um eine Stelle nach links zu
>> schieben, wenn moglich?
>
> Genau, wenn dann das Tacho statt bis 200 km/h nur bis 20 kmh geht,
> trägt das auch sehr zur Erhöhung der Fahrsicherheit bei. :-)

Einfach ein Getriebe mit i=1:10 an die Zeigerwelle, und die Sache stimmt
wieder ;-)

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


Lesenswert?

Marc G. schrieb:
> Das Signal muß runter geteilt werd.  Also ich müßte aus 300Hz 187.5 Hz
> machen.
Und aus 600 Hz dann 375?
Ich dachte, da war von einem "Offset" die Rede. Ein Offset wäre aber 
eine konstante Frequenz, die immmer dazuaddiert werden würde, also etwa 
so:
Eingang --> Ausgang
1000  -->  0
1100  -->  100
1500  -->  500
1900  -->  900
2100  -->  1100

Yalu X. schrieb:
> Aber jetzt ist ja das Ziel genauer bekannt
Ja, hoffentlich...  ;-)

: Bearbeitet durch Moderator
von Yalu X. (yalu) (Moderator)


Lesenswert?

Stefan U. schrieb:
> Ihr diskutiert hier alle über die Frequenz. Ich würde mich viel eher auf
> die Zeitabstände zwischen den Tacho-Impulsen konzentrieren. Denn das ist
> doch das, was die Tachos wirklich messen. Oder irre ich mich?

Ja, es wäre interessant zu wissen, wie der Tacho das Signal tatsächlich
verarbeitet. Ich kenne mich da leider auch nicht aus. Evtl. gibt es
sogar Unterschiede zwischen verschiedenen Tachotypen.


Lothar M. schrieb:
> Ich dachte, da war von einem "Offset" die Rede.

Ich glaube, er meinte einen "prozentualen Offset", was letztendlich
einem Faktor entspricht.

von Thomas E. (thomase)


Lesenswert?

Stefan U. schrieb:
> Ihr diskutiert hier alle über die Frequenz. Ich würde mich viel eher auf
> die Zeitabstände zwischen den Tacho-Impulsen konzentrieren. Denn das ist
> doch das, was die Tachos wirklich messen. Oder irre ich mich?
>
> Dann braucht man auch keine PLL. Einfach fortlaufen den Zeit-Abstand
> zwischen Impulsen messen und ein PWM Signal generieren, wo der Abstand
> entsprechend länger oder kürzer ist.

1/Zeit zwischen den Impulsen nennt man Frequenz: f=1/t

Oder meinst du, daß die Frequenz konstant ist und im Duty Cycle die 
Geschwindigkeit kodiert ist?

von Hurvinek (Gast)


Lesenswert?

Harald W. schrieb:
> Hurvinek schrieb:
>
>> Die einfachste Lösung wäre wohl, mit einem BCD-Zähler die Signalfrequenz
>> durch 16 zu teilen und im Tacho das Komma um eine Stelle nach links zu
>> schieben, wenn moglich?
>
> Genau, wenn dann das Tacho statt bis 200 km/h nur bis 20 kmh geht,
> trägt das auch sehr zur Erhöhung der Fahrsicherheit bei. :-)

Es irrt der Mensch, solange er lebt! :-) Danke
Na klar, div. 16 und mul. 10 bedeutet, "," eine Stelle nach rechts.

von HildeK (Gast)


Lesenswert?

Yalu X. schrieb:
> Ja, es wäre interessant zu wissen, wie der Tacho das Signal tatsächlich
> verarbeitet. Ich kenne mich da leider auch nicht aus.

Ich mich auch nicht.
Vor gefühlten 100 Jahren war es ein Magnet, der in einer Art Schale lief 
und so je nach Drehzahl auf die Rückstellfeder des Zeigers mehr oder 
weniger weit bewegt hatte. Wirbelstromtachometer.
Es gab auch die Variante, dass eine der Drehzahl proportionale Frequenz 
mittels Monoflop mit fester Zeit zu einer Art PWM-Signal wurde. Eine 
einfache RC-Filterung oder schon die Trägheit eines Zeigerinstruments 
hat dann gemittelt.
Oder, es ist eben ein ganz normaler Frequenzzähler, der die Anzeige über 
einen Schrittmotor bedient.
Was auch immer, hier sind die Varianten genannt: 
https://de.wikipedia.org/wiki/Tachometer

von STM Apprentice (Gast)


Lesenswert?

Yalu X. schrieb:
> Ja, es wäre interessant zu wissen, wie der Tacho das Signal tatsächlich
> verarbeitet.

Das Zauberwort ABS gibt Aufschluss. Wenn man die Roh-Impulse
betrachtet die vom Radsensor kommen dann sind das keine
Signale wie beim Fahrrad (1x Reedkontakt schliessen pro
Umdrehung) sondern eben ein Menge Pulse die pro Radumdrehung,
mindestens so etwa 20 an der Zahl sind.

Marc G. schrieb:
> Da der Tacho nicht zum Abs paßt, welches die Frequenz ausgibt.

von Bastler (Gast)


Lesenswert?

Marc G. schrieb:
> Da der Tacho nicht zum Abs paßt, welches die Frequenz
> ausgibt.

Würde es das ABS denn sehr stören wenn man da einfach einen zum Tacho 
passenden Sensorring, Zahnkranz montiert. Oder dem vorhandenen einige 
Zähne wegflext oder Lücken zulötet? Ohne µC-Erfahrung bist du damit 
sicher einige Monate früher am Ziel als mit jedweder Elektronik.

von Stefan F. (Gast)


Lesenswert?

Wenn man ein par Zähne wegflext könnte das ABS System unerwünscht 
Blockierungen erkennen, wo gar keine sind.

von Harald W. (wilhelms)


Lesenswert?

Stefan U. schrieb:

> Wenn man ein paar Zähne wegflext...

...könnte das ziemlich weh tun. :-)

von Dumpfbacke (Gast)


Lesenswert?

Wer daran denkt am ABS rumzumachen hat nicht alle
Tassen im Schrank.

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.