Hallo Crock!
Weil ich mich nicht ständig wiederholen mag, schau dir, bitte, diesen Tread an:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=41605
MfG
Hi,
ich moechte gerade einen Taster entprellen. Da ich bei meinem uC nicht genug Rechenzeit uebrig habe, um das softwareseitig zu machen, wollte ich das Probblem mit einem RC-Glied loesen, das an einen Schmitttrigger gekoppelt ist.
Links im Anhang seht ihr die einfach Schaltung. Da ich Platz klein halten moechte, und es nur mehrfach-Schmitt-ICs gibt und ich hier sowieso noch 'n Haufen uA741 rumfliegen hab, wollte den Schmitttrigger damit aufbauen.
Meine Frage ist nun, ist die Schaltung rechts richtig? Ich habe jetzt einfach den Schmitt-Trigger aus der linken Schaltung durch die typische Schaltung ersetzt, die einen OpAmp als Schmitttrigger arbeiten laesst. Bilden nun aber nicht R1 - R3 einen grossen Spannungsteiler, der die gesamte Rechnung hinter der OpAmp-Schaltung unbrauchbar macht? Kann ich R2 einfach weglassen und alles funktioniert wie es soll? Hat C einen Einfluss auf die Hysterese bzw. R3 auf die Entprellzeit?
Bitte greift mir da doch ein wenig unter die Arme
//edit: Bitte ignoriert, dass der ST in der linken Schaltung invertierend ist - es gab in meiner Bibliothek keinen anderen als den 7414
Hallo Crock!
Weil ich mich nicht ständig wiederholen mag, schau dir, bitte, diesen Tread an:
https://www.roboternetz.de/phpBB2/viewtopic.php?t=41605
MfG
Weglassen kann man so keinen Widerstand. R2 hat einen Einfluß auf die Entprellzeit. Für die Zeitkonstante wirken R1 und R2 parallel.
Man kann die Schaltung etwas vereinfachem (ein Widerstand weniger), wenn man den Schnidt trigger invertierend aufbaut. Die AVR Controller haben normalerweise auch Eingänge mit etwas hysterese. Man könnte also euch direkt das RC Gleid an den AVR anschließen, ohne extra Schmidttrigger. Allerdungs hat man da nicht viel Störabstand. Es ist eigentlich selten das die Rechenzeit nicht ausreicht um da Softwaremäßig zu machen. Die Einfachste Lösung ist es die Tasten nur alls ca. 20 ms im Interrrupts abzufragen und da die Werte in eine Puffervariable kopieren. Oft hat man ohnehin schon einen Interrrupts laufe, dann kostet das fast keine Rechenzeit. In Assembler geht das auch sehr schnell, denn für das IN / STS braucht man nicht mal das Statusregister zu retten.
Um Rechenzeit nicht zu verlieren, kann man nötige Anzahl zusammengesetzten Unterprogrammen als Verzögerung für Tastenentprellung nutzen.
MfG
Ich stell mir des relativ hässlich vor aus einer Interruptroutine herraus vor dem ende der Routine nutzunterprogramme aufrufen, von denen man dan natürlich schlecht sagen kann wann das geschieht.
(ein sauberer Interrupt halt: Unterbrechung, Interruptroutine abbarbeiten, weitermachen)
Wenn du dir sorgen wegen dem Spannungsabfall über den Schmittrigger machst hängt doch einfach einen Impedanzwandler dahinter und ruhe ist.
Olias: Das ist natuerlich eine Idee, dann muesst ich 'nen kleinen IC mit 2 opAmps reinklatschen. Da gibs irgendwiel einen Single-Supply Dual-OpAmp. Muss ich noch mal raussuchen.
Aber ich werde erstmal einfach die Schaltung nachbauen und gucken, ob es auch ohne gibt. Ich hab hier schliesslich noch 'ne Menge uA741 und Platz ist rar. Mit Besserwessis ansatz wird's bestimmt auch klappen. Danke fuer euere Hinweise!
wenn du Ops überhast, wieso dann extra einen IC besorgen?
Nur noch den Ausgang auf den Neg. Eingang zurückkoppeln und fertig, also nicht mal Widerstände aufs Brett.
Aber was meinst du mit "gesamte Rechnung hinter der OpAmp-Schaltung"?
Wenn du da dirket den uC ranrängst, erledigt sich die sache, da die im Grunde alle direkt hinter den Eingangspins nen Impedanzwandler im IC hängen haben.
Also ich entprelle meine Taster immer mit einem kleinen Kerko über dem Taster bzw zur Masse der Schaltung. Hatte noch keine Probleme damit...
...wer nicht findet hat nicht gesucht...
Hallo riderourstyle!
Jawohl!
Das ist die einfachste Lösung, vorausgesetzt, dass die Zeitkonstante des internen pull-ups und des Kerkos genügend ist und der Pin permanent ein Eingang ist..
MfGCode:.-------. | | | VCC | | + | | | | | .-. | | | |R | | | | | T | '-' | _/ | | | +-o/ o---+-----+ | | | | | === --- | µC | GND C --- | | | '-------' === GND
@rideyourstyle: Bei einem einfachen Tiefpass ist die Flanke nicht steil genug, als dass ich damit beim uC einen Interrupt ausloesen wuerde.
@Olias: Mit der "rechnung hinter der OpAmp-Schaltung" meinte ich, dass die Schaltspannungen nicht mehr nach den einfachen Formeln, die mit der Schmitt-Trigger-Schaltungen kommen, berechnet werden koennen, da wir ja noch einen anderen Spannungsteiler und einen Kondi da mit drin haben.
Ich habe zwar Ops uebrig, aber Platz ist rar und 2x 8-DIL (2 OpAmps) ist groesser als ein 1x 8-DIL (ein Dual-OpAmp).
Lesezeichen