ICh habe ein Verständnisproblem: Da hier viele Profis schreiben...bitte helft mir. ICh habe folgenden Schaltplan gefunden...es geht um die Schaltung vom Micro bis zum Operationsverstärker... http://www.icplan.de/gisch.gif Also das Micro wird über einen Spannungsteiler an VCC angeschlossen... - zwischen diesen Widerständen geht ein Kondensator (C6) gegen Masse...WARUM, was bewirkt dieser??? - dann kommt ein Hochpass (C5 & R6) um Gleichanteil wegzufiltern (???) das ganze wird dann über R5 nochmal mit VCC verbunden...das verstehe ich überhaupt nicht. Für Hilfe bin ich sehr Dankbar mfg Rolf
Das ist eine Stromversorgung für eine Electret-Mikrophonkapsel. In der sitzt ein kleiner Verstärker, der mit Gleichspannung versorgt werden will. Der Kondensator koppelt diese "Phantomspeisung" aus. Wird ein dynamisches Mikrophon verwendet, muss diese Schaltung tunlichst geändert werden.
Tut mir leid...hab das nicht so richtig verstanden... du meinsten den Kondensator zwischen R3 und R2, also C6? der kommt doch schon "vor" dem Micro!??
C5 koppelt aus, C6 unterdrückt Störungen auf der Versorgungsspannung des Mikros
Macht nicht der 7805 konstant 5V? warum sind dann noch Störungen? UND WARUM ist nach dem HOCHPASS nochmal eine Verbindung zu VCC
Der Verstärker im Mikro ist sehr empfindlich, er würde auch minimalste Störungen mitverstärken. C5 ist nicht als Hochpass gedacht sondern ist für die Nf-Auskopplung, R2 ist dazu der Arbeitswiderstand. R5 / R6 bilden einen Spannungsteiler für den OP etwa in der Mitte der Betriebsspannung um eine Aussteuerung durch das Nf-Signal in beiden Richtungen zu gewährleisten.
Vielen Dank... ist das mit r5/ r6 wichtig? Ich möchte dann das Signal in ein Rechteckimpuls umwandeln... von 0 bis 5V? wie mach ich das...Verstärken OK und dann Schmitttrigger oder??? Ich brauch das ganze nochmal Invertiert...wie kann ich das machen?
Nach der Schaltung nach sollte nach dem 2. OP ohnehin was rechteckförmiges herauskommen, dann einen Schmittrigger und wenn noch notwendig, den in invertierender Ausführung.
IC3B arbeitet als Komparator, obwohl der TL062 dafür ja eigentlich nicht gebaut ist. Der macht dir ab einer bestimmten Lautstärke am Mikrofon hinten Rechteckimpulse, die deiner Eingangsfrequenz entsprechen und (fast) über die gesamte Betriebsspannung reichen. So ca.0-5V. Wird sicher kein toller rechteck sein (wegens dem TL062), aber für den Controller, der in dieser Schaltung hinten drann hängt, geht das i.O. Wenn Du es invertiert brauchst, musst Du nur PIN5 und PIN6 vom IC3B tauschen. AxelR.
Ich möchte ja ein Stimmgerät bauen... und somit muss ich die Frequenz des Signals messen...wollte das über die bestimmung der Periodendauer machen... wenn das Rechteck nicht gut ist, kann ich da auch nicht gut messen?? ich habe einen LM324 und 4050 Schmitttrigger...aber das invertierte bekomme ich nicht hin... wie kann ich das anstellen...es darf ja auch kein Laufzeitunterschied entstehen!?
Wofür musste das denn dann nochaml invertieren? Häng das da drann und gut. Sollte auf Anhieb gehen, der Atmel hat doch auch schmitt trigger Eingänge. Axel
Ich will die Periodendauer messen... der Atmel zählt über Timer wenn H-Pegel anliegt. Um also den LOW Pegel zu messen muss ich das Signal invertieren. Welche Eingänge sind Schmitttrigger eingänge?
Hast du das Signal schon mal mit einem Oszi angeschaut? Es ist fast symetrisch und wird sich mit invertieren nicht ändern. Wenn du ein Stimmgerät bauen willst werden da noch andere Probleme auf dich zukommen wie harmonische Oberwellen, schwebungen usw.
Dann schreibst du das Programm eben so um, dass der Atmel zählt, wenn L-Pegel anliegt. Ausserdem ist es so, wie Hubert sagt: das Signal ist symmetrisch, also egal wie. Zur Not kannste ja noch einen Transistor hinterschaltn. Emitter an Masse, basis über 10K an den Ausgang und Kollektor über 1K nach VCC. Am Kollektor greifst Du das Signal wieder ab.
Das signal ist nicht symmetrisch...nur wenn es laut genug ist...ich habs mit Oszi angeschaut... --- --- --| |-------| |---- | | | | | | | | --| |-------| |--------.... ich will nun --- --- die Oberschwigungen werden doch mit einem Tiefpass herausgefiltert? Ich kann das Programm nicht umschreiben... der Timer 0 ist so programmiert, dass er bei H Pegel zählt!
Dann musst du den Umschaltpunkt des Komparators etwas runtersetzen, bzw. dir das veratärkte Signal vor dem Komparator mal ansehen und mit dem Spannungsteiler, welcher am Eingang dieses auf halbe Betriebsspannung zieht, experimentieren. kannst aber auch einfach den Transistor hernehmen, wie ich oben beschrieb.Dann sieht das Signal genau so aus. Du musst aber sowieso beide Halbwellen zählen, oder bei steigender Flanke den Timer starten und bei der nächsten steigenden Flanke den Timer auslesen. Dann ist es egal. Siehe obige Skizze aus deinem Post. Die Oberschwingungen werden mit einem Tiefpass herausgefiltert? Deine Rechteckimpulse am Timer0 <->Oberwellenhaltig[Rechteck]. Wie sieht denn die Software aus? Zum Messen der Periodendauer muss dein Timer nunmal bei steigender oder fallender Flanke gestartet werden und beim nächsten mal gestoppt werden. Die intern vergangenen/aufgelaufenen Ticks ergeben nun deine PeriodenDauer. 1/Ticks=Frequenz. Sollte ja klar sein. Du kannst annnersum auch das TCCR0 Register auf externClock stellen und genau eine Sekunde warten und zählst dann die aufgelaufenen Impulse. Wäre dann die andere Variante. Kann ich aber nichts zu sagen, weil ich deine Software nicht kenne. Wollte nur deine Aussage "Ich kann das Programm nicht umschreiben... der Timer 0 ist so programmiert, dass er bei H Pegel zählt!" etwas relativieren, bzw. aufzeigen, dass es sehr wohl möglich ist, die Software den eigenen Bedürfnissen anzupassen. AxelR.
Tausche mal die Eingänge PB0 und PB1. Eventuell auch noch R10 / R11 tauschen, mit denen wird der Schaltpegel festgelegt. Damit würde die Pegelauswertung im Kontroller invertiert. Ich habe zwar mit dem Analog-Komparator noch nicht gearbeitet, aber nach meinem Verständnis sollte es das sein. Zumindest nach dem Datenblatt.
Es müsste aber auch über die Software gehen, nach beschreibung kann man den Interrupt einstellen. The user can select interrupt triggering on comparator output rise, fall or toggle.
Ich habe diesen Schaltplan nicht nachgebaut...meine ist halt anders und ich wusste nicht was nun besser ist. ich werde diese aber nachbauen...jedenfalls bis vor den OP. hab auch nen anderen Mikrokontroller AT98S8252... ich wollte hat beide Pegel einer Periode auslesen...scheint aber schwierig zu sein. Ich werde das jetzt probieren von fallender nach fallender Flanke zu messen. mal sehn. Vielen Dank aber für eure Hilfe... bis bald :-)
Habe ich was verpasst? Ach ist ja ein 2313... ICh war aufn Mega8 aus. Nun, wie es beim 90S2313 beschaltet ist, muss ich erst nachlesen. Das ist zu lange her. Scheint sich tatsächlich um den Analog Comparator zu handeln. Warum baust Du die Schaltung nicht so auf, wie sie publiziert wurde??? Naja, geht mich ja nischt an. R5/R6 und R8/R9 kannst Du zum Einstellen der Symmetrie deines Mikrofonsignals heranziehen, falls Du die Schaltung in einer eigenen Schaltung verwenden willst. Sonst, wie Hubert richtig sagte, mit R10/R11 lässt sich die Ansprechschwelle des Analogkomparators im 2313 einstellen, wobei mir dann die Verwendung des Diskreten Komparators IC3B widersinnig erscheint. Ich frag' nochmals, wofür du ein Symmetrisches Signal brauchst. Um die Frequenz auszurechen, brauchst Du die Periodendauer. Die ist die Summe aus T_on+T_off. Musst also sowieso etweder beide Zustände messen, oder NUR bei einer (z.B. steigender) Flanke. Dann isses doch ziemlich egal, ob dein Signal symmetrisch ist, oder nicht. Ich kann mich jetzt nicht in den 2313 reindenken, muss ich erst mal ein Datenblatt ziehen. Poste mal die Quelle, dann können wir das ummodeln. AxelR.
.... hab auch nen anderen Mikrokontroller AT98S8252... .... Da muss ich mich ausklinken, habe ich noch nie was mit gemacht. AxelR.
ich hab einen AT89S8252... !!!!!!!!!!! brauch kein Periodisches Signal! will ja nur die Periodendauer (wie du sagst Toff + Ton) Ton hab ich... nur Toff nicht!
Ich glaube du hast da wirklich ein Verständnisproblem. Du hast um 10:40 aufgezeichnet wie dein Signal aussieht. Die kurze Zeit ist Zeit1 die lange Zeit2. Die Frequenz des Tons ist aber Zeit1 + Zeit2 und die ändert sich nicht auch wenn du das Signal invertierst und ob du von steigender zu steigender Flanke oder von fallender zu fallender Flanke misst ist auch egal.
Mein Problem ist das ich die Zeit, wo 0 Pegel anliegt nicht messen kann...weil der Mikrokontroller nur bei H Pegel die Zeit misst. Ich wollt jetzt von fallender zu fallender Flanke messen... Meine Gedanken: - Bei fallender Flanke -> Interrupt wird ausgelöst - in der Interrupt Service Routine muss ich den Timer-Wert auslesen und den Timer zurückstzen. der Timer soll aber schon die nächste Zeit Messen... --> Das auslesen und zurücksetzen braucht Zeit und verfälscht doch somit das Ergebnis... ODER?????
Das ist so minimal das der Quarzfehler warscheinlich grösser ist, wenn du willst und überhaupt möglich ist kannst du einen Korrekturwert berücksichtigen. Ich würde aber mal schaun das es grundsätzlich funktioniert und dann erst so kleine Details korrigieren.
Hmm, nicht ganz. Fallende Flanke ->int timer auf Null Fallende Flanke ->int int sperren Timer auslesen, umrechnen, Frequenz aus der Tabelle der Note zuordnen, Note anzeigen int zurücksetzen Fallende Flanke ->int timer auf NULL weiter wie oben. Du darfst schon nach jeder Periode erst mal in Ruhe den Kram erledigen, den Du zu erledigen hast. Erst wenn Du fertig bist, fängst Du wieder an, die Periodendauer zu berechnen. Deine GitarrenSaite wird ja wohl länger schwingen, als eine Priodenmessung + Datenberarbeitung dauert. Wenn Du nun nur alle 10 Schwingungen messen kannst, weil Du zwischendurch deinen administrativen Kram erledigst, ändert das ja nichts an deinem Messwert. Musst nur das Int Flag löschen, bevor Du den Interrupt wieder freigibts, damit evtl. aufgelaufene Interrupts nicht sofort ausgeführt werden. Du musst ja synchron bleiben mit deiner Messung. Ich habe sowas schon mal für PC-Lüfter programmiert. Da habe ich auch die Periodendauer des Tachosignals verwendet und angezeigt. Das sogar für acht Signale gleichzeitig. Die Werte habe ich dann auf einem Display anzeigen lassen und auf der UART ausgegeben.
Rolf, oft ist es schwierig sich vorzustellen,wie schnell ein MC ist. ....auslesen ruecksetzen...in einem husch. Mach dir keine Sorge darum.
Hier mal mein Programm...misst erstmal nur die Periodendauer... werd es heut abend mal testen... ob es auch stimmt!
haste schon probieren können, ich kenn mich mit dem Assembler nicht so gut aus, schade AxelR.
Kennt sich denn jemand anders mit Assembler aus?? und kann sich das mal anschauen mein Programm? Danke!
jetzt ist mir noch eine Merkwürdigkeit aufgefallen... Ich hab das Programm mit 1kHz ausprobiert... Funktioniert eigentlich super...es gibt mir 1000 µs aus... ...aber ab und zu 1007...vieleicht aller 10 Messungen manchmal auch häufiger ...aber immer nur 1007... hab dann ein bischen rumgespielt... z.B. clr ex0 mal weggelassen ... dann hat es 993 ausgegeben...also ab und zu... wie kann das kommen? Wie beseitige ich den Fehler?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.