Ich wollte einen Frequenz-Spanungswandler bauen...
nun habe ich mal gelesen, das soll mit einem Schmitt-Trigger, einer
Monostabieler Kippstufe und einem Tiefpass gehen!
na gut, aus dem Trigger kommt eine Rechteckspannung raus..
wozu die Monostable da ist, weiss ich nicht.. auf jeden Fall kommt
daraus auch eine Rechteckspannung raus...
ABER man kann doch nicht mit einer R-C Kombination (Tiefpass) aus einer
Recheckspannung eine Gleichspannung machen, so, dass die Spannung mit
der Frequenz steigt...
so, dass ich die Spannung an der ADC-POrt vom AVR anhängen kann!
Kann mir das jemand erklähren????
Danke!
Gruss Alex
Du baust auf diese Weise eine art PWM-Schaltung, das heißt, das
Tastverhältnis ändert sich mit der Eingangsfrequenz. Mit dem Tiefpass
glättest du das PWM-Singal, das sich je nach Tastverhältnis auf einer
entsprechenden Spannung hält. Wenn das Ganze hinten mit einem OP
entkoppelt wird (Impedanzwandler) kommt eine ordentlich reproduzierbare
Analogspannung 'raus.
Ohne dein Problem zu verstehen: Wieso willst du eine Frquenz
(quasidigitales Signal) in ein analoges Signal wandeln, um es dann
wieder zu digitalisieren?
Übrigens (Problembezug): Dein Monoflop wird durch durch die Frequenz
dauernd getriggert. Je höher die Frequenz ist, umso häufiger wird das
Monoflop (nach-)getriggert. Dadurch wird der Kondesator über den
Widerstand aufgeladen. Die Ladung ist davon abhängig, wie häufig das
Monoflop nachgetriggert wird.
Hallo,
der Monoflop sollte garnicht nachgetriggert werden. Die Haltezeit muß
kleiner als der kleinste Abstand zweier Eingangsimpulse sein (max.
Frequenz).
Die Ausgangsimpule werden im RC-Glied integriert und liefern eine
Ausgangsspannung, die von der Eingangsfrequenz abhängt. Maximalfrequenz
ist genaugenommen, wenn das Monoflop nach dem zurückkippen sofort wieder
getriggert wird, Minimum ist theoretisch 0, es wird garnicht
getriggert.
Gruß aus Berlin
Michael
Nur zum Frequenzmessen ist das wirklich sehr umständlich.
Es gibt den LM2907/2917 speziell zur Frequenz-Spannungswandlung, den
hat auch Reichelt:
http://www.national.com/pf/LM/LM2907.html
im Prinzip dasselbe Verfahren, Schmitt-Trigger-Eingang und Monoflop
oder so ähnlich.
> Ohne dein Problem zu verstehen: Wieso willst du eine Frquenz
(quasidigitales Signal) in ein analoges Signal wandeln, um es dann
wieder zu digitalisieren?
ich will immernoch einen Drehzahlmesser bauen!
Da ich aber nur weiss wie ich mit dem ADC port umgehen kann, will ich
so machen!
Oder hat hier jemand geduld mir zu reklären, wie ich die Frequenz mit
dem AVR bestimmen/ verarbeiten kann???
Habe aber immer noch nicht verstanden, wie man mit dem Tifpass aus der
Rechteckspng. eine Gleichpannung machen kann.
ich habe da ja einen Frequenzgenerator.. ich stalle da Rechteckspng.
ein.. einen Tiefpass dahinter... Frequenz hochdrehen.. am Oszilloskop
sehe ich die Frequenzänderung, aber auf keinen Fall
spannungsunterschiede... und das ganze sieht immernoch wie ein Rechteck
aus...
Völlig unverständlich!
Hallo,
naja, 1. hat Dein Tiefpass dann einfach eine viel zu hohe Grenzfrequenz,
wenn da immernoch ein Rechteck rauskommt.
2. wird es selbst dann keine Spannungsänderung ergeben, weil Du ein
Rechteck mit Tastverhältnis 1:1 benutzt, da ist auch der integrierte
Wert einfach 0 oder wenn das Signal GND-bezogen ist, Uspitze/2, das
bleibt konstant, unabhängig von der Frequenz.
Der Trick ist ja, das ein schmaler Impuls mit von der Frequenz
abhängigem Abstand integriert wird. Das gibt bei wenigen Impulsen/s
kleine Spannung, bei vielen Impulsen/s viel Spannung. Der Monoflop ist
also das entscheidene nächste Bauteil.
Der Schmitt-Trigger davor sorgt nur dafür, daß das Eingangssignal für
den Monoflop ausreichend steile Flanken hat, wenn es z.B. ein Sinus ist.
Das hat schon vor 30 Jahren so funktioniert und das geht mit Sicherheit
auch heute noch. :)
Gruß aus Berlin
Michael
alex: hör' den anderen nicht zu; das ist tatsächlich eine verarschung
und die verarschen dich noch mehr!
da gibt's sogar a..löcher, die behaupten, rc könnte doch
rechteckspannung glätten; was für eine zumutung. alex, sei tapfer,
verarsch du' sie auch!
Wie Rahul und Alex schon gesagt haben, wozu die Frequenz
erst in ein analoges Signal wandeln ?
Du brauchst mehr Hardware und baust zusätzliche Fehler mit ein
(Temp-Stabilität Monoflop, Kondensator-Selbstentladung...).
Der ADC ist auch nicht so schnell wie eine direkte Freqenzmessung.
Gruss
Digger
Wenn man die Rechteckschwingung mit Fourieranalyse in ihre harmonischen
Sinusschwingungen zerlegt, gibt es auch einen Gleichspannungsanteil, man
könnte ihn auch als nullte Harmonische der Frequenz Null, also noch
unterhalb der Grundfrequenz betrachten. Nur Rechtecke symmetrisch zur
Nullinie haben keinen DC-Anteil. Genau deser DC-Anteil wird mit dem
Tiefpass durchgelassen, bereits die Grundschwingung muß unterdrückt
sein.
Bin jetzt soweit, dass ich nach dem Tiefpass tatsächlich die
Gleichspannung habe!
Aber die spannung ändert sich kein bischen mit der frequenz!
Ist das richtig so? wenn nicht, wo könnte der Fehler liegen?
Frequenzmessung.
Was ist die Einheit der Frequenz? -> Antwort: Herz (Hz) oder Pulse pro
Sekunde.
Ansatz: Die Pulse Zählen die pro Zeiteinheit anfallen und auf 1/Sekunde
umrechnen.
=>
Signal evtl mit einem Schmitt-Trigger aufbereiten und den externen
Eingang eines Zählers legen. Jetzt zB jede Sekunde nachsehen wieviele
Pulse seit den letzten Mal dazugekommen sind. Bei einer Sekunde Messzeit
hast du direkt die Frequenz in Hz. Man muss nur den Zählerüberlauf
berücksichtigen.
> ich will immernoch einen Drehzahlmesser bauen!> Da ich aber nur weiss wie ich mit dem ADC port umgehen kann, will ich> so machen!
In einem anderen Thread wurde dir schon gesagt, dass dieser Ansatz
ziemlicher
Mist ist.
Ich hab dir auch den Tip gegeben, wie man das richtig macht:
Dein AVR hat einen Zähl-Eingang.
Wenn man einen Timer (gibs zu, du hast noch nicht mal im BASCOM
Handbuch nachgesehen, was man mit einem Timer so alles anstellen
kann) richtig konfigueriert, dann zählt er die an diesem Eingang
anliegenden Puls sauber mit.
Soweit so gut.
Was du noch brauchst ist eine Zeitbasis. Nehmen wir mal 1 Sekunde.
Du brauchst alsu einen 2. Timer der genau nach 1 Sekunde auslöst.
Nach dieser 1 Sekunde liest du also vom ersten Timer/Counter den
Zählwert aus und hast damit deine Frequenz. Den dann in eine
Drehzahl umzurechnen sollte ja wohl nicht das grosse Problem sein.
Also ran an die Puletten und das Ganze richtig gemacht.
Drücken gilt nicht, denn um Timer kommst du sowieso nicht herum.
Die sind wohl so ziemlich das Universellste was dein AVR zu bieten
hat. Unglaublich was man mit den Dingern alles machen kann.
1. Zwischenziel
Einen Timer so konfigurieren, dass du nach genau 1 Sekunde einen
Programmteil ausführen kannst. In diesem Programmteil zählst du
eine Variable um 1 hoch und gibst sie aus. Du hast dann quasi eine
Uhr die Sekundenweise tickt und Sekunden hochzählt
2. Zwischenziel:
Den Zähl Eingang scharf machen und den 2. Timer konfigurieren, so dass
er die Impulse am Eingang zählt. Einfach mal den Timerwert ausgeben
lassen, zb. mit dem Programmteil vom Zwischenziel 1.
Am Display hast du dann quasi alle Sekunden einen Update wieviele
Pulse am Zähleingang aufgelaufen sind
3. Zwischenziel:
Nach Ablauf 1 Sekunde, den Zähler am Zähleingang auf 0 setzen.
Die Anzeige bleibt weiterhin so wie sie ist. D.h. Die Anzeige zeigt
jetzt die Frequenz des Eingangssignals an. Frequenz ist ja:
Pulse pro Sekunde.
Und genau das hast du gemessen: Wieviele Pulse in 1 Sekunde
hereinkommen.
4. Zwischenschritt
Die Frequenz umrechnen in eine Drehzahl
5. Zwischenschritt
Es gibt keinen 5. Zwischenschritt mehr
Nur weil das einzige Problem das du lösen kannst ein Nagel ist, heist
das
noch lange nicht, dass dein einziges Werkzeug ein Hammer ist.
Timer sind wichtig. Also warum nicht jetzt und mit diesem Beispiel
lernen
wie man mit ihnen umgeht?
Er wollte ja keinen Hammer nehmen, sondern einen Hebel mit dem kurzen
Hebelarm an Nagelkopf. Jetzt kann man den Nagel durch ziehen am langen
Hebelarm in die Wand drücken.
Der Timer ist aber ein "Hammer" und für diese Aufgabe besser geeignet
;-)
Ich brauche dann bisschen hilfe für den Anfang...
Gibt es einen Link. wo es VON ANFANG AN beschrieben, wie man mit dem
Timer umgehen soll.. und das alles in Bascom?
Habe mal gesucht, aber das meiste ist in C.
Die Anderen Sachen sind ohne Quellcode.
ich brauche die grundbefehle
> Ich brauche dann bisschen hilfe für den Anfang...> Gibt es einen Link. wo es VON ANFANG AN beschrieben, wie man mit dem> Timer umgehen soll..
Ach komm.
Ein bischen Eigeninitiative könntest du schon zeigen.
Du kennst Google?
http://www.google.com
Suchstring: Timer BASCOM
Im Datenblatt deines Controllers ist das mit den Timern haarklein
beschrieben. Solltest allerdings des englischen mächtig sein, sonst
gibt's immer wieder Probleme beim Programmieren!
> Solltest allerdings des englischen mächtig sein
Was ist, wenn das nicht ganz der Fall ist?
Ich will nicht gemein sein...
Kann mir man jemand ein Beispiel posten?
So ist es viel einfacher das ganze nachvollziehen.
Alex wrote:
>> Solltest allerdings des englischen mächtig sein>> Was ist, wenn das nicht ganz der Fall ist?> Ich will nicht gemein sein...
Ich auch nicht. Aber die Antwort lautet: Lernen. Haben wir anderen
Nichtmuttersprachler auch gemacht.
Sonst bist Du immer auf "vorverdautes" (sprich: Übersetzungen)
angewiesen. Die sind a) rar und b) durchaus nicht frei von
Übersetzungsfehlern.
Alex wrote:
>> Solltest allerdings des englischen mächtig sein>> Was ist, wenn das nicht ganz der Fall ist?
dann solltest du dir ein anderes hobby suchen.
Hallo Alex,
irgentwo weiter oben steht du bist 13. Da musst du so ungefähr in der 8.
Klasse in der Schule sein (vielleicht auch erst 7. Klasse).
Wenn du in Englisch in der Schule nicht ganz schlecht bist, kannst du
genug englisch um Datenblätter mit Hilfe eines Wörterbuches lesen zu
können. Die Grammatik müsstest du alles schon in der Schule gelernt
haben. Lass dich nicht von den vielen neuen Wörtern abschrecken.
http://dict.leo.org/
ist dann Dein Freund und auch noch kostenlos.
Gruß