Forum: Mikrocontroller und Digitale Elektronik Taster bei IC-Eingang verwenden


von Gianluca L. (gianni2109)


Lesenswert?

Ich möchte einen Taster(Schliesser) an einem IC-Eingang bei Clock 
verwenden um manuell hoch zu zählen. Ich habe bereits eine Schaltung 
aufgebaut und habe ein Problem das es beim hoch zählen unregelmässig 
springt. Meine Frage jetzt ist wie kann ich das springen vorbeugen?
Ich brauche beim Eingang ein Low Signal und wen ich den Taster betätige 
soll es high werden.

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


Lesenswert?

Der Taster muss entprellt werden:
https://www.mikrocontroller.net/articles/Entprellung

Der 'Wechselschalter ohne Flipflop' könnte nach einer kleinen 
Modifikation für dich das richtige sein. Wenn gerade kein Wechseltaster 
da ist, ein Absatz tiefer ist ein Taster mit Schmitt-Trigger.
Für 12V ist dann ein CMOS Baustein (z.B. 4093) statt dem 74HC14 richtig.

: Bearbeitet durch User
von MaWin (Gast)


Lesenswert?

Gianluca L. schrieb:
> wie kann ich das springen vorbeugen?

Entprellen. Es gibt viele Möglichkeiten.

http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.29.1

von Manfred (Gast)


Lesenswert?

Matthias S. schrieb:
> Der 'Wechselschalter ohne Flipflop'
ist Bastelpfusch, die Schaltung darüber mit zwei Gattern spielt sauber.

von Jakob (Gast)


Lesenswert?

Wenn es unbedingt der Clock-Eingang sein soll, hast du dir
selbst ein Problem aufgehalst, das nicht nötig ist!

Bei "gesunden" Tastern ist das Prellen nach < 5 ms vorbei.
Mit der Hand kann man nur maximal 20 mal pro Sekunde
tasten, das sind 50 ms (25 ms an/25 ms aus)

Nach Erkennen einer Tastenbetätigung, musst du den Clock-
Eingang für 10...20 ms sperren und auf die Ruhelage des Tasters
warten.
Was brauchst du für die 10...20 ms?
GENAU: Einen Timer, mit dem du die Zeit abzählst...

Nimm gleich den Timer, und frage per Timer-Interrupt den
µC-Port-Pin für die Taste alle 1...5 ms ab.

Aktiver Pegel: Eine Zählvariable um 1 erhöhen, (bei Überlauf
auf Max-Count setzen)
Inaktiver Pegel: Zählvariable löschen.

Hat die Zählervariable genau den Wert, den du für 20 ms
festgelegt hast, erhöhst du deinen eigentlichen Zähler um 1.

von Teo D. (teoderix)


Lesenswert?

Jakob schrieb:
> Wenn es unbedi..........


IC != µC


Und wenn:
Timer steuert den Taster der dessen Clockleitung bedient?

Jakob schrieb:
> Aktiver Pegel: Eine Zählvariable um 1 erhöhen, (bei Überlauf
> auf Max-Count setzen)

Man Junge, dein Timer zählt doch schon, da musst du nich auch noch die 
Finger dazu nehmen (sinnlose extraVariable).
Warumm 10x ofter als nötig abfragen. Das is kein ADC!
50ms reicht doch, auch zum entprellen. EIN Timer-Tick(Flag) alle 50ms in 
der Hauptschleife abfragen. Wenn keine Störungen, die über den Taster 
kommen, zu erwarten o. unerheblich sind, muss man den Tastendruck nicht 
mal verifizieren.

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


Lesenswert?

Manfred schrieb:
> Matthias S. schrieb:
>> Der 'Wechselschalter ohne Flipflop'
> ist Bastelpfusch, die Schaltung darüber mit zwei Gattern spielt sauber.

Da hast du recht, ergänze doch bitte mal den Artikel dazu...

Hier die Erklärung: Der 'Wechselschalter ohne Flipflop' erzeugt nämlich 
keine Schaltflanke, sondern eher eine Rampe, die den Clock Eingang eines 
IC mögl. nicht zufiredenstellt. Deswegen sollte man bei geforderten 
steilflankigen Signalen hinter so eine Schaltung immer einen 
Schmitt-Trigger setzen, wie es in der Schaltung darunter auch gemacht 
wurde.

von W.A. (Gast)


Lesenswert?

Teo D. schrieb:
> IC != µC

µC ∈ IC

von Joe F. (easylife)


Angehängte Dateien:

Lesenswert?

Hier meine 5 Cent Lösung.

: Bearbeitet durch User
von Manfred (Gast)


Lesenswert?

Matthias S. schrieb:
> Manfred schrieb:
>> Matthias S. schrieb:
>>> Der 'Wechselschalter ohne Flipflop'
>> ist Bastelpfusch, die Schaltung darüber mit zwei Gattern spielt sauber.
>
> Da hast du recht, ergänze doch bitte mal den Artikel dazu...
>
> Hier die Erklärung: ...

Danke :-)

Gehen wir gleich zwei Beiträge weiter zum "fet-debounce", geil, da 
werden zumindest einige CMOS direkt zum Oszillator.

von Joe F. (easylife)


Lesenswert?

Manfred schrieb:
> da
> werden zumindest einige CMOS direkt zum Oszillator.

Erläutere doch mal deine Aussage.

von Manfred (Gast)


Lesenswert?

Joe F. schrieb:
> Manfred schrieb:
>> da werden zumindest einige CMOS direkt zum Oszillator.
> Erläutere doch mal deine Aussage.

Logikbausteine haben definierte Bereiche, die als low oder high erkannt 
werden müssen. Sie erwarten steile Flanken - zu Details muß man die 
Familiendaten zu Rate ziehen. Fährt man einen Logikeingang langsam von L 
nach H oder umgekehrt, kann es passieren, das der Kamerad beginnt zu 
schwingen.

---------

Wir hatten ein Serienprodukt (ca. 50 CMOS 40xx), was über viele Jahre 
problemlos funktionierte. Auf einmal fielen die Dinger aus, der Kollege 
fand einen sporadisch beliebig getakteten Ausgang eines Gatters. Der 
ursprüngliche Entwickeler der Schaltung hatte den Eingang eines Gatters 
mit einem RC-Glied beschaltet :-( Die Lösung war zum Glück relativ 
simpel, es gibt ein pinkompatibles IC mit Schmitt-Trigger-Eingängen.

Was sage ich damit? Es geht vielleicht, vielleicht sogar über Jahre, 
über hunderte von Schaltungen. Dann kommt ein anderer Lieferant oder der 
Hersteller ändert seinen Fertigungsprozess - alle Bausteine sind 
nachweisbar innerhalb spezifizierter Werte, aber manche waren eben 
toleranter.

von Joe F. (easylife)


Lesenswert?

Manfred schrieb:
> Der
> ursprüngliche Entwickeler der Schaltung hatte den Eingang eines Gatters
> mit einem RC-Glied beschaltet :-(

Naja, deswegen ja der FET. Das Gatter kommt an das Signal "PULSE".
Slewrate ist ca. 90us/V.
Man muss im Hobbybereich ja nicht unbedingt Gatter verbauen, die mit AH 
oder AB anfangen...

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.