Moin *.* Ich benötige wieder mal euren geschätzten Rat. Folgende Aufgabenstellung liegt hier zutage: Die Frequenz eines Signal soll mittels einem Poti gedrosselt werden können, und das in einem Bereich von 20-100%. Beim Signal handelt es sich um einen Rechteck, +5V, 50/50duty, Frequenz variabel zwischen 20-600 Hz. Also schon mal keine Gigahertz. Beispiel: Wenn am Eingang 100Hz anliegen, und Potistellung auf 90% ist, sollen dabei 90Hz rauskommen. Ich tu' mich grad schwer mit der Programmierung des Ganzen. Ich habe mir folgendes überlegt: iVal, ein Integer welcher synchronisiert zur Potistellung dezimal einen Wert zwischen 20-100 aufweist. Dann zählen bis 1000ms vergangen sind, dann Counter zurücksetzen. Das ist der Sekunden Intervall. In jedem Intervall zählen iFiN - das ist die Eingangsfrequenz. Dann iFiIn / 100 * iValue - das ist die Ausgangsfrequenz. Was besseres kommt mir zu später Stund grad nicht in den Sinn. Völlig dilettantisch, jemand eine bessere Idee? Gruss, Philipp
:
Gesperrt durch Moderator
Bevor man sich hier Lösungen überlegt, sollte - wie so oft - hier die Antwort auf die Frage kommen was denn der tiefere Sinn des Ganzen sein soll. Ich sehe nämlich keinen.
Bei so kleinen Frequenzen kannst du mit einem µC leicht die Zeit zwischen den Flanken messen. Dann hast du eine Variable in deinem µC die die letzte gemessene Zeit enthält. Zur erzeugung deines Ausgangssignals hast du einen Timer-Interrupt in dem der Ausgang getoggelt wird und der neue Timerinterrupt mit der gemessenen Flankenzeit * Faktor geladen wird. €dit: Falls auch der Fall "kein Signal" abgedeckt werden muss, so muss noch ein timeout in die Software rein, sonst läuft der AUsgang einfach weiter. (bei 20-600Hz ist aber erstmal per Definition kein Ausbleiben vorgesehen)
:
Bearbeitet durch User
Uhrmacher schrieb: > hier die Antwort auf die Frage kommen was denn der tiefere > Sinn des Ganzen sein soll. Ich sehe nämlich keinen. warum? max. Danke. Wie meinst du das mit dem Interupt programmatisch?
Du hast einen Timer. Der hat eine ISR. In der ISR lädst du als nächstes Intervall deines Timer (entweder als Compare-Match oder sogar einfach als Timer-Wert) deinen nächsten Zeitabschnitt. Je nach µC-Modell (ist ja noch geheim) kann die Hardware direkt einen Pin togglen, oder du musst das in der ISR "manuell" mit erledigen.
Wenn es Dir gelingt, den festen Faktor durch einen variablen Faktor (Eingabe per Poti) zu ersetzen, findest Du hier einen passenden Frequenz/Frequenz-Umsetzer: http://mino-elektronik.de/Generator/takte_impulse.htm#bsp4
Die Frequenz des Quellsignals kannst du nicht ändern. Du kannst höchstens die Frequenz des Quellsignals messen, und das Poti messen und abhängig von diesen Daten eine neue Frequenz durch Software erzeugen.
Die Frequenz des Quellsignals will ich ja gar nicht ändern, sondern nur anpassen und verlangsamt ausgeben. Nein - uC ist kein Geheimnis. Atmel 328 auf einem Nano oder einfach was sonst noch so zuhause rumliegt. @Günther/max: Schau' ich mir an, danke Günter Lenz schrieb: > Die Frequenz des Quellsignals kannst du nicht ändern. > Du kannst höchstens die Frequenz des Quellsignals messen, > und das Poti messen und abhängig von diesen Daten eine > neue Frequenz durch Software erzeugen. hab ich mich dermaßen unklar ausgedrückt?
:
Bearbeitet durch User
So schwierig ist das nicht. Bei 10% laesst du einfach https://www.mikrocontroller.net/forum/mikrocontroller-elektronik9 von 10 Pulsen weg.
Schlucker schrieb: > einfach > https://www.mikrocontroller.net/forum/mikrocontroller-elektronik9 Ups: Forum not found Gruss Chregu
Marek N. schrieb: > Frequency-Voltage-Converter -> Poti -> Voltage-Frequency-Converter hab ich mir auch überlegt. evtl. einfacher als uC
> > hab ich mich dermaßen unklar ausgedrückt? Nix kapiert? Also was willst Du genau? Beschreibe das bitte mal viel deutlicher und genauer.
Philipp G. schrieb: > Wenn am Eingang 100Hz anliegen, und Potistellung auf 90% ist, sollen > dabei 90Hz rauskommen bitte
Das Ganze soll also ein Tonhöhenshifting werden. Das geht nur durch
Messung des Pulsverhältnisses des Eingangssignals und Neuerzeugung.
Ich komme aber nicht umhin darauf hinzuweisen, dass der Betreff:
>Wie Frequenz verlangsamen?
Schon völlig falsch formuliert ist. Freuquenzen können nicht verlangsamt
werden. Hier hapert es also nicht nur an physikalischem Wissen.
> Die Frequenz des Quellsignals will ich ja gar nicht ändern, > sondern nur anpassen und verlangsamt ausgeben. Dann erkläre mal bitte, wo für dich der Unterschied zwischen "ändern" und "anpassen" ist. Für mein Sprachverständnis ist das nämlich das Gleiche und für mein technisches Verständnis geht das nicht (Günter Lenz schrieb es bereits).
Audiomann schrieb: > Das Ganze soll also ein Tonhöhenshifting werden. Ja. > Das geht nur durch > Messung des Pulsverhältnisses des Eingangssignals und Neuerzeugung. Nö. Mit einer Samplerate Conversion (ohne die Samplerate tatsächlich zu ändern) sollte das auch gehen. Dann sogar nicht nur für Rechtecksignale...
Moin! Ich werfe noch eine Lösung ins Rennen: Mit einer einstellbaren PLL das Signal erst um Faktor n hochmultiplizieren, dann mit einem einstellbarem Teiler um den Faktor m wieder herunterteilen. Das ganze liesse sich wahlweise in TTL oder mit einem FPGA aufbauen. Die Faktoren n und m könnte ein Prozessor nach A/D-Wandlung anhand der Potistellung ausrechnen. So liesse sich auch die Forderung nach 50% Duty-cycle erfüllen. Der Prozessorkern liesse sich auch noch auf dem FPGA unterbringen. OK, ist ein wenig aufwändig... Aber solange der TO nicht mit dem Zweck des ganzen rausrückt, ist das Nachdenken über eine Lösung müssig. Am Ende geht es darum, einen 4 Zylinder Drehzahlmesser an einen 6 Zylinder Motor anzupassen... Schönen Sonntag, Baku
Ach was, typisches uC.net rumgeheule. Er will ein Rechtecksignal erzeugen, dessen Frequenz von der Frequenz eines anderen Rechtecksignals abhängt. Beide Signale haben einen Duty Cycle von 1:1. Sind doch genug Anforderungen, echt. Das Forum ist über die Jahre echt zum kotzen geworden. Hier, ich nehm euch noch den Rest der Arbeit hab: Troll. Heute ist nicht Freitag.
Uhrmacher schrieb: > Bevor man sich hier Lösungen überlegt, sollte - wie so oft - > hier die Antwort auf die Frage kommen was denn der tiefere > Sinn des Ganzen sein soll. Ich sehe nämlich keinen. Ich kann da schon einen Sinn sehen, allerdings einen etwas unlauteren: Das Tachosignal (Pegel, Tastverhältnis, Frequenzbereich würden dazu passen) eines Autos soll in seiner Frequenz vermindert werden, um die "Alterung" des Autos zu verlangsamen. Das spart durch höheren Wiederverkaufswert bzw. Leasingrückkaufwert bares Geld. Nur warum der Teilerfaktor variabel sein soll, leuchtet mir nicht so recht ein. Ein ganzzahliger Faktor (z.B. 2) vereinfacht das anschließend erforderliche Umrechnen der (natürlich ebenfalls zu niedrigen) Geschwindigkeitsanzeige des Tachos. Ersparnis von Blitzzetteln... Eine ganzzahlige Teilung wäre technisch viel einfacher zu realisieren. Vielleicht ist der Zweck aber auch, das Tachosignal zu korrigieren, nachdem es durch eine geänderte Reifengröße verfälscht wurde. Das würde den ungeradzahligen Teilerfaktor erklären.
> Er will ein Rechtecksignal erzeugen, dessen Frequenz von der > Frequenz eines anderen Rechtecksignals abhängt. Beide Signale > haben einen Duty Cycle von 1:1. Wenn das so ist, helfe ich gerne. Doch lasse ich mir lieber vom TO erklären, was er meint.
Philipp G. schrieb: > Philipp G. schrieb: >> Wenn am Eingang 100Hz anliegen, und Potistellung auf 90% ist, sollen >> dabei 90Hz rauskommen > > bitte Dazu brauchts du keine periodisches Eingangssignal. Deine Aufgabenstellung ist blödsinnig weil sie einen Generator beschreibt der ohne Eingangsfrequenz auskommt in der aufgabenstellung aber beharrt wird das die 50 Hz ein zu transformierendes Eingangssignal ist. Sinnvoll formuliert wäre die Aufgabenstellung: (Re-)Generierung eines Rechtecksignals: Die Schaltung soll ein Rechtecksignal mit 50% Duty und einen Pegel von xV und yV generieren. Die Frequenz des auszugebenden Signals ergibt sich aus: -der (zu messenden) Frequenz eines einlaufenden Rechteck-Signals -eines Skalierungsfaktors 0 bis 1.0. Der Skalierungsfaktor wird über ein Potentiometer eingegeben.
> Vielleicht ist der Zweck aber auch, das Tachosignal zu korrigieren
Noch so eine wilde Vermutung. Wartet doch mal ab, bis der TO sich zu den
Rückfragen äußert!
Sparfuchs schrieb: > Eine ganzzahlige Teilung wäre technisch viel einfacher zu realisieren. Hälst Du die Verwendung eines µC für technisch schwierig? Glaubst Du, ein µC hätte Probleme nicht ganzzahlige Teilungsverhältnisse zu errechnen? Dann sollte man besser das Problem der Lösung anpassen und nicht umgekehrt ;-)
Audiomann schrieb: > Das Ganze soll also ein Tonhöhenshifting werden. Gab es in der Tonstudiobranche mal unter dem Begriff Harmonizer. Ist es das was du willst? Ralph Berres
Schnauze schrieb: > Ach was, typisches uC.net rumgeheule. > > Er will ein Rechtecksignal erzeugen, dessen Frequenz von der Frequenz > eines anderen Rechtecksignals abhängt. Beide Signale haben einen Duty > Cycle von 1:1. Nein will er nicht, er will ein Signal "drosseln", nicht generieren "Die Frequenz eines Signal soll mittels einem Poti gedrosselt werden können, und das in einem Bereich von 20-100%." Wahrscheinlich ist ihm nicht klar das zwischen Drosseln und Neu-Generieren Welten liegen. "Frequenz Drosseln" impliziert im elektronischen Sinne eine Mischstufe https://de.wikipedia.org/wiki/Mischer_(Elektronik), der TE hat aber möglicherweise unter "Drossel" in der Elektrotechnik nur den Hinweis gefunden: "Elektrotechnik: ein passives, induktives elektrisches Bauteil zur Energiespeicherung oder Störungsdämpfung" und versteht nur noch Bahnhof. Das passiert halt, wenn man plabbert wie einem der Schnabel verwachsen ist und Nachfragen partout als Majestitätsbeleidung fehldeutet.
Ralph B. schrieb: > Gab es in der Tonstudiobranche mal unter dem Begriff Harmonizer. Ist es > das was du willst? Dazu passt "Rechteck mit 50% Tastverhältnis" irgendwie gar nicht.
Hier gibt es wieder die wildesten Spekulationen wie was gemacht werden soll, wobei keiner wirklich weiss was der TO überhaupt genau will. Allenfalls kommt per Salmi- taktik das eine oder andere zusätzliche Informations- Bröckchen ans Tageslicht. Uhrmacher schrieb: > Bevor man sich hier Lösungen überlegt, sollte - wie so oft - > hier die Antwort auf die Frage kommen was denn der tiefere > Sinn des Ganzen sein soll. Ich sehe nämlich keinen. Philipp G. schrieb: > warum?
John schrieb: > Ich vernute mal so etwas: > http://www.ebiketunen.com/methoden-des-e-bike-tunen.html#frequenz Das würde die Zugeköpftheit des TO erklären. Und die Community hier kann sich schon mal darauf einstellen dass sie mit ihren heissen Tips vermutlich illegale Machen- schaften des TO unterstützt (unterstützen würde).
C. A. Rotwang schrieb: > Wahrscheinlich ist ihm nicht klar das zwischen Drosseln und > Neu-Generieren Welten liegen Natürlich kann man die Eingangsfrequenz nicht ändern (das würde ja wiederum die Ausgangsfrequenz ändern usw. usw.). Die einzige Möglichkeit die mir zur Forderung des TO einfällt wäre, sich mit der entsprechenden Geschwindigkeit von der Quelle zu entfernen. Die lässt sich ja leicht berechnen. Ein starkes Gravitationsfeld ginge vielleicht auch. Georg
Uhrmacher schrieb: > John schrieb: >> Ich vernute mal so etwas: >> http://www.ebiketunen.com/methoden-des-e-bike-tunen.html#frequenz > Und die Community hier kann sich schon mal darauf einstellen > dass sie mit ihren heissen Tips vermutlich illegale Machen- > schaften des TO unterstützt (unterstützen würde). Illegalität ist nur ein Aspekt des Problems, und aus Sicht eines Hackers der sich aus Neugier und Wissensdrank mit Reverse Engineering beschäftigt das geringste. Problematisch ist eher der Schaden an Leib und Leben den Benutzer einer solchen Begrenzungs-Abschaltung ausgesetzt sind. Da sollte man auch dahinwirken, das die Ebike-Hersteller Manipulationssichere Sperren einbauen und der TÜV etc bei der Zulassungserteilung darauf achtet.
Eben, uc.net Geheule. Während die einen noch jammern die Spezifikation sei unklar, kommen die anderen schon mit erhobenem Zeigefinger, weil, Ebikes frisieren ist ja illegal.
Philipp G. schrieb: > Marek N. schrieb: >> Frequency-Voltage-Converter -> Poti -> Voltage-Frequency-Converter > > hab ich mir auch überlegt. evtl. einfacher als uC Das hängt letztendlich davon ab, wie gut du dich mit µC-Programmierung auskennst und ob du ggf. bei einer Variante Teile bestellen musst, bei der anderen nicht. Ich würde mit einem µC per Input Capture die Frequenz ermiteln und dann mit dem ADC-Wert entsprechend skalieren, dann per Timer ein Signal erzeugen. Uhrmacher schrieb: > Ich sehe nämlich keinen. Dass du nicht in der Lage bist, einen Sinn darin zu erkennen, bedeutet nicht, dass es keinen gibt. Schnauze schrieb: > Sind doch genug Anforderungen, echt. Ja. Ich bin auch erstaunt, wie viele hier offenbar nicht in der Lage sind, so eine simple Aufgabenstellung zu erfassen oder der Meinung sind, der TE müsse ihnen erst seine Lebensgeschichte erzählen, damit sie ihm sagen können, wie man eine Rechteckspannung erzeugt. Es stimmt zwar, dass viele Fragesteller essenzielle Infos nicht oder nur nach mehrfacher Nachfrage rausrücken, aber hier sind alle nötigen Infos vorhanden, um die Frage zu beantworten. Ich stelle mir gerade solche Leute in der Schule oder dem Studium vor. "Aufgabe kann nicht gelöst werden, da unklar ist, wozu die Lösung dieser quadratischen Gleichung benötigt wird". Stefan U. schrieb: >> Er will ein Rechtecksignal erzeugen, dessen Frequenz von der >> Frequenz eines anderen Rechtecksignals abhängt. Beide Signale >> haben einen Duty Cycle von 1:1. > > Wenn das so ist, helfe ich gerne. Doch lasse ich mir lieber vom TO > erklären, was er meint. Das hat er, wenn auch nicht immer mit der korrekten Begriffswahl, durchaus in verständlicher Weise getan. C. A. Rotwang schrieb: > Dazu brauchts du keine periodisches Eingangssignal. Deine > Aufgabenstellung ist blödsinnig weil sie einen Generator beschreibt der > ohne Eingangsfrequenz auskommt Aha, und wie erzeugst du ein Signal mit 90% der Frequenz eines nicht existierenden Eingangssignals? > in der aufgabenstellung aber beharrt wird das die 50 Hz ein zu > transformierendes Eingangssignal ist. Wo hast du denn das gefunden? Ich lese in der Aufgabenstellung: Philipp G. schrieb: > Beim Signal handelt es sich um einen Rechteck, +5V, 50/50duty, Frequenz > variabel zwischen 20-600 Hz. Oder hast du dich auf das Beispiel bezogen, in dem eine Frequenz natürlich vorgegeben war? Philipp G. schrieb: > Beispiel: > > Wenn am Eingang 100Hz anliegen, und Potistellung auf 90% ist, sollen > dabei 90Hz rauskommen. Aber um auch mal so pedantisch zu sein: C. A. Rotwang schrieb: > -eines Skalierungsfaktors 0 bis 1.0. Eins Punkt null? Soll das eine Versionsnummer sein? Außerdem war die Untergrenze bei 20%. Meintest du vielleicht: -eines Skalierungsfaktors 0,2 bis 1,0 Es wird in deiner Aufgabenformulierung auch nirgends erwähnt, wie sich nun die Zielfrequenz aus dem Skalierungsfaktor und der eingehenden Frequenz ergibt. Also Aufgabenstellung unvollständig.
:
Bearbeitet durch User
Rolf M. schrieb: > Aber um auch mal so pedantisch zu sein: > > C. A. Rotwang schrieb: >> -eines Skalierungsfaktors 0 bis 1.0. > > Eins Punkt null? Soll das eine Versionsnummer sein? Außerdem war die > Untergrenze bei 20%. Meintest du vielleicht: > > -eines Skalierungsfaktors 0,2 bis 1,0 > > Es wird in deiner Aufgabenformulierung auch nirgends erwähnt, wie sich > nun die Zielfrequenz aus dem Skalierungsfaktor und der eingehenden > Frequenz ergibt. Also Aufgabenstellung unvollständig. Ja das liegt nun mal in der Natur des Kaffeesatzlesen. Und es ist auch nicht die Aufgabe des Forums dem TE seine Wünsche aus der Nase zu ziehen. Das zu realisierende Prinzip sollt aber klar geworden sein. Und das es mit den vom TE benutzten irreführenden Beschreibung als Frequenzänderung nichts gemein hat. >> in der aufgabenstellung aber beharrt wird das die 50 Hz ein zu >> transformierendes Eingangssignal ist. >Wo hast du denn das gefunden? Ich lese in der Aufgabenstellung: ... genau wie ich es sage, der TE beharrt verbal auf einer Signaltransformation, jedenfalls steht das so auch so im TE-Titel. Ich schätzt der Begriff Drosselung ist ein Freudscher Versprecher des TE, der hat wohl tatsächlich eine Umgehung einer Leistungsdrosselung im Sinn indem er Sensorwerte manipuliert , resp. gefälschte Sensorwerte genriert.
Audiomann schrieb: > Das Ganze soll also ein Tonhöhenshifting werden. Das geht nur durch > Messung des Pulsverhältnisses des Eingangssignals und Neuerzeugung. Tonhöhenshifting bei nem Rechteck Signal mit 50/50 Verhältnis ja? WTF. Und dann noch 20 Hz was für ne bescheidene Sonate soll das denn werden. Ok, läuft klassisch ab. Wo fangmer an: Schnauze schrieb: > Ach was, typisches uC.net rumgeheule. > > Er will ein Rechtecksignal erzeugen, dessen Frequenz von der Frequenz > eines anderen Rechtecksignals abhängt. Beide Signale haben einen Duty > Cycle von 1:1. > > Sind doch genug Anforderungen, echt. > > Das Forum ist über die Jahre echt zum kotzen geworden. > > Hier, ich nehm euch noch den Rest der Arbeit hab: > > Troll. > Heute ist nicht Freitag. DANKE. Was anderes habe ich nicht beschrieben. Der Threadtitel ist strategisch gewählt denn so gewinnt man hier die größte Audienz. Und - mit Verlaub - das klappt ganz gut. OK - lassmer das. Vom Phaseshifting zur Anwendung, werter Uhrenmacher. Kumpel hat sich in seinen s14 ein Diff von der Automaten Version eingebaut. Das neue Ausgleichsgetriebe der automatischen Pferdekutsche aka kfz ist leider kürzer übersetzt. Jetzt zeigt der Tacho zuviel an. Hab das früher mal mit einer PLL gemacht. Jetzt dachte ich halt mit nem 328er wäre der Job schnell gemacht. Also: RECHTECK, +5V DC, 50/50, 20-600Hz. 20% der Ausgangsfrequenz müssen angepasst ausgegeben werden. Danke noch für die Unterstellung was Unlauteres tun zu wollen.
:
Bearbeitet durch User
Philipp G. schrieb: > DANKE. Was anderes habe ich nicht beschrieben. Der Threadtitel ist > strategisch gewählt denn so gewinnt man hier die größte Audienz. Aber auch für Strategen gibt es nur hohe und niedrige Frequenzen und ganz sicher keine ‚schnellen‘ oder ‚langsamen‘
C. A. Rotwang schrieb: > Sinnvoll formuliert wäre die Aufgabenstellung: > (Re-)Generierung eines Rechtecksignals: > Die Schaltung soll ein Rechtecksignal mit 50% Duty und einen Pegel von > xV und yV generieren. Die Frequenz des auszugebenden Signals ergibt sich > aus: > -der (zu messenden) Frequenz eines einlaufenden Rechteck-Signals > -eines Skalierungsfaktors 0 bis 1.0. > > Der Skalierungsfaktor wird über ein Potentiometer eingegeben. Ja, so ungefähr würde das ein erwachsener und gebildeter Mensch formulieren können. Tja, der TO gehört aber ganz offensichtlich nicht zu dieser Gruppe... Allerdings: die von dir skizzierte Aufgabenstellung (die ja gleichzeitig mindestens die halbe Lösung ist) läßt das Rauschen außer Acht, sowohl das der Frequenzmessung (hier wohl eher als Periodendauermessung ausgeführt) als auch das der AD-Wandlung der Poti-Einstellung. Zwar könnte man trotz des Rauschens sicherstellen, dass das 50% duty der generierten Frequenz jederzeit gewahrt bleibt, aber Glitches der erzeugten Frequenz sind ohne Gegenmaßnahmen absolut vorprogrammiert. D.h: irgendwo wird hier wohl noch ein Tiefpass einzufügen sein, um diesen Effekt zu verringern, der aber leider gleichzeitig unvermeidlich die Antwortzeit reduziert, mit der die Ausgangsfrequenz Änderungen der Eingangsfrequenz oder des Poti-Stellwerts folgen kann. Um diesen Tiefpass zu bemessen, wären aber wieder Angaben des TO erforderlich, die dieser weder machen kann noch will. Weil er schlicht zu ungebildet ist, um auch nur das Problem erkennen zu können... Ich vemute mal, dass es sich letztlich um eine Variante der illegalen "Leistungssteigerung" handelt. E-Bike oder Mofa, irgendwas in der Richtung. Und: falls ich mit meiner Vermutung richtig liege, wird die "Lösung" zwar tatsächlich das vom TO gestellte Problem lösen, aber trotzdem nicht im Sinne des TO funktionieren. Und das finde ich irgendwie auch gut so...
Philipp G. schrieb: > DANKE. Was anderes habe ich nicht beschrieben. Der Threadtitel ist > strategisch gewählt denn so gewinnt man hier die größte Audienz. Ja mai, willste größte Aufmerksamkeit oder besten Rat? Wer Threadttitel bewußt in Richtung Aufmerksamkeit trimmt, darf sich über den Vorwurf "Troll" nicht beschweren. Ich halte den Trend im Forum zu bewusst reisserisch formulierten Threadtitel für bedenklich. > Danke noch für die Unterstellung was Unlauteres tun zu wollen. Naja weniger unlauter als "potentiell lebensgefährlich". Und IMHO sollte man tatsächlich dankbar sein, wenn auch die Risiken einer Lösung genannt und betrachtet werden. Bspw. unbedachte Softwarezustände bspw WDT-Interrupt führen zu "unplausiblen" Sensorsignalen, die das System zu einer Notabschaltung mit unerwünschten Folgen bringt. > Kumpel hat sich in seinen s14 ein Diff von der Automaten Version > eingebaut. > Jetzt zeigt der Tacho zuviel an. Das ist ja auch völlig korrekt so. Was ein Tacho keinesfalls machen darf ist, zuwenig anzuzeigen. http://www.sueddeutsche.de/auto/verkehr-jeder-tacho-zeigt-die-geschwindigkeit-zu-hoch-an-1.3675876 Und mit der skizzierten Lösung ist genau das möglich. Man sollte mindestens von der Poti-eingabe Abstand nehmen und den Korrekturfaktor "hart einprogrammiern". Dan hat man die Fehlerquelle "unbemerkt verstelltes Poti" schon mal eliminiert. -- Es wäre m.e. besser gewesen, du hättest gleich im ersten Post klargestellt, das du die PLL-Lösung kennst dich aber bewußt dagegen entschieden hast. Da weiss der potentielle Antworter welcher fachlicher Background zu erwarten ist und muss in seiner Antwort nicht gleich beim Urschlein angangen.
c-hater schrieb: > Ja, so ungefähr würde das ein erwachsener und gebildeter Mensch > formulieren können. Tja, der TO gehört aber ganz offensichtlich nicht zu > dieser Gruppe... .... weshalb auch ich dazu tendiere ihn der Menschen aus der Szene der ebike-Fahrzeug-Tuner zuzurechnen. Philipp G. schrieb: > Kumpel hat sich in seinen s14 ein Diff von der Automaten Version > eingebaut. Das neue Ausgleichsgetriebe der automatischen Pferdekutsche > aka kfz ist leider kürzer übersetzt. Philipp G. schrieb: > Hab das früher mal > mit einer PLL gemacht. Jetzt dachte ich halt mit nem 328er wäre der Job > schnell gemacht. Wer schon eine PLL realisiert hat braucht hier nicht so "dumme" Probleme/Fragen ins Forum stellen.
c-hater schrieb: > C. A. Rotwang schrieb: > >> Sinnvoll formuliert wäre die Aufgabenstellung: > Allerdings: die von dir skizzierte Aufgabenstellung (die ja gleichzeitig > mindestens die halbe Lösung ist) läßt das Rauschen außer Acht, sowohl > das der Frequenzmessung (hier wohl eher als Periodendauermessung > ausgeführt) als auch das der AD-Wandlung der Poti-Einstellung. Zwar > könnte man trotz des Rauschens sicherstellen, dass das 50% duty der > generierten Frequenz jederzeit gewahrt bleibt, aber Glitches der > erzeugten Frequenz sind ohne Gegenmaßnahmen absolut vorprogrammiert. Ja das stimmt, "meine" Formulierung der vermuteten Aufgabenstellung ist unvollständig und fehlerhaft. Ist aber IMHO dennoch völlig akzeptabel da es ja nicht die Aufgabe eine Hobbyistenforums ist, irgendwelchen Anfragern die komplette Entwicklungsarbeit (kostenfrei) abzunehmen. Hilfe zur Selbsthilfe bedeutet IMHO Denkanstöße zu geben, aber nicht die gesamte Denkarbeit abzunehmen.
Philipp G. schrieb: > Kumpel hat sich in seinen s14 ein Diff von der Automaten Version > eingebaut. Was ist ein "s14" und was ein "Diff von der Automaten Version"? > Jetzt zeigt der Tacho zuviel an. > Danke noch für die Unterstellung was Unlauteres tun zu wollen. Wenn es sich um ein Straßenfahrzeug handelt, führen sämtliche Veränderungen am Tacho zum Verlust der Betriebserlaubnis. Wenn du nicht gerade VW bist, ist dies schon illegal. > Also: RECHTECK, 50/50, 20-600Hz. 20% der Ausgangsfrequenz müssen > angepasst ausgegeben werden. Kannst du dich mal etwas klarer ausdrücken? Soll die variable Eingangsfrequenz um 20% reduziert werden? Wenn ja, warum dann das Poti? Die Lösung ist recht simpel... Du misst aller x ms die Impulsbreite der positiven Flanke (oder alternativ von steigender Flanke bis zur nächsten steigenden Flanke)und errechnest daraus die Eingangsfrequenz. Diesen Wert reduzierst du um den gewünschten Betrag und erzeugst ein entsprechendes Ausgangssignal. Das geht bei 600Hz mit Timer oder in Software noch ganz gut. Du musst allerdings beachten, dass das Abfrageintervall vom Eingang nicht zu groß ist, da wird die Reaktion träge. Außerdem musst du das Ausgangssignal irgendwie synchronisieren. Sonst hast du unter Umständen Sprünge im Ausgangssignal.
@te Male er erst einmal ein Diagramm, erläutere was genau und warum du was machen möchtest. Dann erkläre mal warum du das so und nicht anders machen willst. Ausführliche Beschreibungen und Begründungen sind hier erforderlich!
Achtung Achtung Achtung schrieb: > Ausführliche Beschreibungen und Begründungen sind hier > erforderlich! Wozu? Hier wird ja vielleicht ein Müll gelabert! Auch ohne weitere Nachfrage habe ich ganz oben ein fertiges Programm gezeigt, wobei lediglich noch der Potiwert abgefragt werden muß. Bliebe nur noch zu klären, ob das Poti nach links oder rechts gedreht werden soll.
m.n. schrieb: > > Wozu? > Hier wird ja vielleicht ein Müll gelabert! Dem stimme ich hier vollumfänglich zu.
c-hater schrieb: > Ja, so ungefähr würde das ein erwachsener und gebildeter Mensch > formulieren können. Tja, der TO gehört aber ganz offensichtlich nicht zu > dieser Gruppe... Wenn Du Dir mal die Mühe machen würdest, mein Profil anzuschauen, fällt Dir evtl. auf, dass ich hier nicht ganz neu bin. Im 'Wandlerdings gesucht' Thread habe ich dem TO nützliche Infos gegeben, noch während die gesamte uC Gast Meute über hin hergefallen sind. Achtung Achtung Achtung schrieb: > Male er erst einmal ein Diagramm, erläutere was genau und warum du was > machen möchtest. Dann erkläre mal warum du das so und nicht anders > machen willst. Ausführliche Beschreibungen und Begründungen sind hier > erforderlich! Wozu? Ok, kann ich Dir sagen: Sicherung flink 200mA, Transil, C, Spule 47uH, C, Diode in Reihe, C + Kerko, LM2936, C, Arduino nano. Fertig. Und jetzt bitte nicht KFZ Eingangsbeschaltung diskutieren, das hatten wir gefühlte 4000 mal. Ja, Spannungsfestigkeit 40V, Transil nach oder vor Sicherung, Linear- vs Schaltregler. Done that. Uhrmacher schrieb: > Und die Community hier kann sich schon mal darauf einstellen > dass sie mit ihren heissen Tips vermutlich illegale Machen- > schaften des TO unterstützt (unterstützen würde). Siehst Du. Genau DAS ist der Grund weswegen ich den konkreten Anwendungsfall versuche zu umschreiben. Dann kommt EWG, E-Prüfzeichen, TUEV. Jens P. schrieb: > Wenn es sich um ein Straßenfahrzeug handelt, führen sämtliche > Veränderungen am Tacho zum Verlust der Betriebserlaubnis. Wenn du nicht > gerade VW bist, ist dies schon illegal. Echt? Danke. Jens P. schrieb: > Was ist ein "s14" Ein Auto. Jens P. schrieb: > Was ist ein "s14" und was ein "Diff von der Automaten Version"? Ein Differential. Ein Ausgleichsgetriebe, welches bei einem heckgetriebenem Fahrzeug an der Hinterachse in der Mitte der Achse sitzt. Da das Automatik Getriebe gegenüber dem handgeschaltenem Getriebe nur 4 Gänge hat, ist das Differntial kürzer übersetzt. C. A. Rotwang schrieb: > Das ist ja auch völlig korrekt so. Was ein Tacho keinesfalls machen darf > ist, zuwenig anzuzeigen. > http://www.sueddeutsche.de/auto/verkehr-jeder-tacho-zeigt-die-geschwindigkeit-zu-hoch-an-1.3675876 10% Zuviel sind zulässig. Mehr nicht. Jens P. schrieb: > Kannst du dich mal etwas klarer ausdrücken? Soll die variable > Eingangsfrequenz um 20% reduziert werden? Wenn ja, warum dann das Poti? Nun, das ist einfach erklärt. Da der Kumpel nicht genau weiss, wieviel die Abweichung genau beträgt bau' ich diesem einfach einen Trimmer oder Poti ein, dann kann er selber mit GPS+5 abgleichen. C. A. Rotwang schrieb: > Naja weniger unlauter als "potentiell lebensgefährlich". Und IMHO sollte > man tatsächlich dankbar sein, wenn auch die Risiken einer Lösung genannt > und betrachtet werden. Bspw. unbedachte Softwarezustände bspw > WDT-Interrupt führen zu "unplausiblen" Sensorsignalen, die das System zu > einer Notabschaltung mit unerwünschten Folgen bringt. Der Ausgang ist open collector roll eyes smiley hier. Im Gegensatz zu Dir weiss ich genau, was passiert wenn das Geschwindigkeitsignal fehlt. Jens P. schrieb: > Die Lösung ist recht simpel... Du misst aller x ms die Impulsbreite der > positiven Flanke (oder alternativ von steigender Flanke bis zur nächsten > steigenden Flanke)und errechnest daraus die Eingangsfrequenz. Diesen > Wert reduzierst du um den gewünschten Betrag und erzeugst ein > entsprechendes Ausgangssignal. Das geht bei 600Hz mit Timer oder in > Software noch ganz gut. Du musst allerdings beachten, dass das > Abfrageintervall vom Eingang nicht zu groß ist, da wird die Reaktion > träge. Außerdem musst du das Ausgangssignal irgendwie synchronisieren. > Sonst hast du unter Umständen Sprünge im Ausgangssignal. Danke. Ich wollte eigentlich hier nur über das Coding diskutieren. Sonst nix. Grund dafür, grad eben weil ich das früher nur analog gemacht habe, aber noch nie mit einem uC. Also, mein nächster Post ist ein dummy code.
:
Bearbeitet durch User
bla,bla,bla, dem Laberkopp übertriffst Du um astronomische Meilen. > > Danke. Ich wollte eigentlich hier nur über das Coding diskutieren. Sonst > nix. Grund dafür, grad eben weil ich das früher nur analog gemacht habe, > aber noch nie mit einem uC. > > Also, mein nächster Post ist ein dummy code. Das hast Du aber nicht gefragt. Also Glaskugeln haben wir nicht. Selber schuld.
Max D. schrieb: > Bei so kleinen Frequenzen kannst du mit einem µC leicht die Zeit > zwischen den Flanken messen. Ich würde dazu den ATtiny24 nehmen. Die Messung macht man mit dem Input-Capture und die Ausgabe mit dem Output-Compare. Somit hat man keinen zusätzlichen Jitter durch die Codeausführungszeit. Die 16 Bit Auflösung sollten ausreichen, die Umrechnung macht man dann 32-bittig. Den ADC setzt man initial in den free-runnning Mode, d.h. liest dann nur das ADC-Register aus.
Achtung Achtung Achtung schrieb: > bla,bla,bla, dem Laberkopp übertriffst Du um astronomische Meilen. ach? Nun nicht ausführlich genug, weil bei dem gibt es nix zu holen? Vorher wolltest du ein Diagramm, nun da ich das gepostet hab bin ich der Labberkopp.
Philipp G. schrieb: > Nun, das ist einfach erklärt. Da der Kumpel nicht genau weiss, wieviel > die Abweichung genau beträgt bau' ich diesem einfach einen Trimmer oder > Poti ein, dann kann er selber mit GPS+5 abgleichen. Dann bau ihm noch ein Knöpfchen dazu das er den Kalibrierwert ins EEprom schiebt und anschliessend die Fehlerquelle Poti entfernen kann. Wobei es nicht sonderlich glaubhaft klingt, das der Wechsel eines Standardgetriebes zu einem nicht bekannten Tachofehler führen soll - drehen sich die Räder wegen dem anderen Differential schneller pro Kilometer? > C. A. Rotwang schrieb: >> Naja weniger unlauter als "potentiell lebensgefährlich". Und IMHO sollte >> man tatsächlich dankbar sein, wenn auch die Risiken einer Lösung genannt >> und betrachtet werden. Bspw. unbedachte Softwarezustände bspw >> WDT-Interrupt führen zu "unplausiblen" Sensorsignalen, die das System zu >> einer Notabschaltung mit unerwünschten Folgen bringt. > > Der Ausgang ist open collector roll eyes smiley hier. Im Gegensatz zu > Dir weiss ich genau, was passiert wenn das Geschwindigkeitsignal fehlt. Fehlendes Geschwindigkeitssignal ist einer von ca. 1 Mio Fällen die in der Risikoanalyse zu bedenken sind. Naja leicht übertrieben :-) Aber mit der PLL wären es deutlich weniger kritische Szenarien, da keine Programmierfehler betrachtet werden müßen.
Beitrag #5339032 wurde vom Autor gelöscht.
C. A. Rotwang schrieb: > Wobei es nicht sonderlich glaubhaft klingt, das der Wechsel eines > Standardgetriebes zu einem nicht bekannten Tachofehler führen soll - > drehen sich die Räder Nicht das Primär Getriebe wurde gewechselt, sondern das Differential Getriebe.
:
Bearbeitet durch User
So, hier mein Vorschlag. Bin im Urlaub, kann es nicht ausprobieren:
1 | unsigned int iFreq = 0; //frequency in Hz |
2 | unsigned int iPinOut = 8; |
3 | unsigned int iPinIn = 9; |
4 | unsigned int iPinTrim = 7; |
5 | unsigned long lTick = 0; |
6 | int iPotVal = 0; // a value between 50 and 100 |
7 | int iPulseWidth = 0; |
8 | |
9 | void setup(){ |
10 | pinMode(iPinOut, OUTPUT); |
11 | pinMode(iPinIn, INPUT); |
12 | pinMode(iPinTrim, INPUT); |
13 | }
|
14 | |
15 | void loop() |
16 | {
|
17 | |
18 | int val = analogRead(0); // read voltage according poti pos |
19 | iPinTrim = map(val, 0, 1023, 50, 100); // calc value |
20 | |
21 | if (digitalRead(iPinIn) == HIGH) |
22 | {
|
23 | iPulseWidth = (millis - lTick); // calc pulse width |
24 | }
|
25 | else
|
26 | {
|
27 | iPulseWidth = 0; |
28 | lTick = millis; |
29 | }
|
30 | |
31 | if (iPulseWidth > 50) // we are too low |
32 | {
|
33 | iFreq = (10 / iPulseWidth * iPinTrim); // calc output freq |
34 | tone(iPinOut, iFreq); //set current frequency @50 50 duty, square wave guys |
35 | }
|
36 | //else
|
37 | //todo, cut output
|
38 | }
|
:
Bearbeitet durch User
Beitrag #5340212 wurde vom Autor gelöscht.
Ich glaube nicht, dass das so klappt, denn iPulseWidth wird während der High-Phase des Impulses hochgezählt. Mit diesem ständig veränderten Wert wird dann auch ein ständig verändertes Ausgangssignal erzeugt. Ich erwarte am Ausgang eine Frequenz, dessen Frequenz sich in Form von Säge-Zähnen verändert. Außerdem fehlt noch jegliche Fehlerbehandlung. Was machst du z.B. wenn mal ein einzelner Impuls ausfällt? Oder wenn das Signal plötzlich "springt"? ich würde mich nicht darauf verlassen, dass das Signal vom Tacho-Sensor top-sauber wie im Lehrbuch ist.
1 | unsigned int iFreq = 0; //frequency in Hz |
2 | unsigned int iPinOut = 8; |
3 | unsigned int iPinIn = 9; |
4 | unsigned int iPinTrim = 7; |
5 | unsigned long lTick = 0; |
6 | int iPotVal = 0; // a value between 50 and 100 |
7 | int iPulseWidth = 0; |
8 | int iTmpPWidth = 0; |
9 | |
10 | void setup(){ |
11 | pinMode(iPinOut, OUTPUT); |
12 | pinMode(iPinIn, INPUT); |
13 | pinMode(iPinTrim, INPUT); |
14 | }
|
15 | |
16 | void loop() |
17 | {
|
18 | |
19 | int val = analogRead(0); // read voltage according poti pos |
20 | iPinTrim = map(val, 0, 1023, 50, 100); // calc value |
21 | |
22 | if (digitalRead(iPinIn) == HIGH) |
23 | {
|
24 | iTmpPWidth= (millis - lTick); // calc pulse width |
25 | }
|
26 | else
|
27 | {
|
28 | iPulseWidth = 0; |
29 | lTick = millis; |
30 | iPulseWidth = iTmpPWidth; |
31 | }
|
32 | |
33 | if (iPulseWidth < 50) // we are too low |
34 | {
|
35 | iFreq = (10 / iPulseWidth * iPinTrim); // calc output freq |
36 | tone(iPinOut, iFreq); //set current frequency @50 50 duty, square wave guys |
37 | }
|
38 | //else
|
39 | //todo, cut output
|
40 | }
|
:
Bearbeitet durch User
Noch was, wenn jetzt hier wirklich jemand im Forum nach e bike tuning sucht findet er hier nen funktionieren quell code. Evtl. möchten die Angesprochenen den Missstand editieren.
Sparfuchs schrieb: > Das Tachosignal (Pegel, Tastverhältnis, Frequenzbereich würden dazu > passen) eines Autos soll in seiner Frequenz vermindert werden, um die > "Alterung" des Autos zu verlangsamen. Könnte sein. Auch die Sache mit dem E-Bike ist möglich. Bei mir ist es anders herum: Ich habe im Motorrad vorne ein kleineres Ritzel 16->15 Zähne, damit das kleine Fahrzeug bisschen mehr Zug hat. Die Vmax ist für mich nicht wichtig. Aber nun zeigt der Tacho 1/16-tel zu viel an. Sehr gut fürs Punktekonto. Wenn er wieder richtig anzeigen würde wäre mir aber lieber. Also müsste die Eingangsfrequenz gemessen und erhöht wieder ausgegeben werden. Der Faktor ist fix, 1:1,16. Dazu brauche ich kein Poti. Gruß Franziska
Franziska N. schrieb: > Könnte sein. Auch die Sache mit dem E-Bike ist möglich. Was könnte sein, Was ist möglich? Ich besitze kein E-Bike. Die Sache ist längst durch und funktioniert mit dem neuen Differential. Abgleich mit GPS zeigt 5Km/h zuviel an. Mach' einen neuen Thread auf, dieser ist gut zwei Monate alt. aber zum vierhundertsten: http://www.eatsleepboost.lt/tech-info/nissan-tech-info/nissan-r200-diff-ratios/ Nissan R200 diff ratios + drivetrain info Nissan R200 diff ratios: S14 – KA24DE – USDM – manual/auto – 4.083 S14 – SR20DET – EDM – manual – R200V – 3.692 S14 – SR20DET – EDM – auto – R200V – 3.916 S14 – SR20DET – ADM – manual – 3.692 S14 – SR20DE – JDM – manual – 4.083 S14 – SR20DET – JDM – manual – _4.083_ S14 – SR20DET – JDM – auto – _3.916_
:
Bearbeitet durch User
Beitrag #5403405 wurde von einem Moderator gelöscht.
Beitrag #5403410 wurde von einem Moderator gelöscht.
Beitrag #5403446 wurde von einem Moderator gelöscht.
Beitrag #5403527 wurde von einem Moderator gelöscht.
Beitrag #5403568 wurde von einem Moderator gelöscht.
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.