74HC14 gibt kein vernünftiges Ausgangssignal

  • nabend mal wieder,
    Ich will ein paar Taster entprellen und habe dazu nach Vorbild von mikrocontroller das hier mit einem 74HC14 und R1=R2=10kOhm nachgebaut, bzw es versucht. Ich hab die Schaltung mal aufgemalt. Ist denk ich besser zu erkennen, als auf dem Steckbrett. Siehe Anhang. Leider kommt bei mir auf Pin 18 kein vernünftiges Signal an, bzw es springt einfach zwischen 0 und 1 hin und her, als wäre gar nix angeschlossen.

    Wenn ich direkt hinter R2 den GPIO Pin anschließe, messe ich da auch einen Stromfluss von 0,2uA. Außerdem wird der Tastendruck zuverlässig erkannt (mit Prellung). Wenn ich es so anschließe, wie gezeigt, messe ich zwischen R2 und dem 74HC14 gar keinen Strom.

    Jetzt die offensichtliche Frage: Hab ich das richtig gemacht? Klar, der C fehlt, habs aber auch mit 100nF ausprobiert, kein Unterschied. Woran kann es liegen?

    Viele Grüße

    PS: Datenblatt vom 74HC14: http://cdn-reichelt.de/documents/date…C14.74HCT14.pdf

  • Hallo


    Ich will ein paar Taster entprellen und habe dazu nach Vorbild von mikrocontroller das hier mit einem 74HC14 und R1=R2=10kOhm nachgebaut, bzw es versucht. Ich hab die Schaltung mal aufgemalt. Ist denk ich besser zu erkennen, als auf dem Steckbrett. Siehe Anhang. Leider kommt bei mir auf Pin 18 kein vernünftiges Signal an, bzw es springt einfach zwischen 0 und 1 hin und her, als wäre gar nix angeschlossen.

    Wenn ich direkt hinter R2 den GPIO Pin anschließe, messe ich da auch einen Stromfluss von 0,2uA. Außerdem wird der Tastendruck zuverlässig erkannt (mit Prellung). Wenn ich es so anschließe, wie gezeigt, messe ich zwischen R2 und dem 74HC14 gar keinen Strom.

    Jetzt die offensichtliche Frage: Hab ich das richtig gemacht? Klar, der C fehlt, habs aber auch mit 100nF ausprobiert, kein Unterschied. Woran kann es liegen?

    PS: Datenblatt vom 74HC14: http://cdn-reichelt.de/documents/date…C14.74HCT14.pdf


    ..das wird so nix...

    erst mal fehlt das C, aber selbst das eintprellt nicht sauber (siehe deinen link).
    Auch der Schmitt-trigger der ja 2 Schaltschwellen hat, "prellt" mit, wenn das Signal an den Schaltschwellen "flattert".
    Entweder ne saubere Hardwareentprellung (gibt's genug im i-net) oder ne Flankengetriggerte ISR mit ner entspr. bouncetime.
    Dann hast Ruhe.

    gruß root

    Einmal editiert, zuletzt von root (20. Februar 2016 um 22:19)

  • Hi root,
    danke für deine Antwort. Ich würde es schon gern in Hardware realisieren. Nur dachte ich, das hier wäre eine "saubere Hardwareentprellung"... Leider spuckt mir Google immer nur aus "machs doch in Software" und "Peter Dannegger". Zu Hardware Entprellung ist das das beste, was ich finden konnte...

  • Was root schreibt ist von der Theorie her richtig. In der Praxis ist es aber wohl eher selten, dass der Taster exakt am Triggerpunkt prellt. Ich würde sagen, probier es aus. Der C ist aber wichtig. Den musst Du mit einbauen. Der Schmitt-Trigger invertiert das Signal. Du kannst es aber wieder richtig herum bekommen, indem Du den Ausgang von 1 (also Pin2) in den Eingang von zum Beispiel 2 (Pin3) gibst. Am Ausgang von 2 (Pin4) kommt dann das entprellte Signal so herum raus, wie Du es benötigst.

    Berichte doch mal, ob es geklappt hat.

  • Finde das SIgnal so rum eigentlich ganz praktisch. Offen = False, Geschlossen = True. Aber selbst, wenn es anders rum wäre, würde ich vermutlich nicht nochmal invertieren, weil ich die Pins für andere Taster brauche ^^ Das würde ich dann tatsächlich in der Software machen ;)
    Ich vermute, dass der Inverter kaputt ist. Werde die Tage eh nochmal ne Bestellung bei Reichelt aufgeben, dann kommt der nochmal mit auf die Liste.

    EDIT: Grad mal wieder durch gepiepst. Irgendwie sitzt der IC nicht richtig auf dem Breadboard... Hab auch mal einen Attiny aufgesteckt, gleiches Problem. Wenn ich ihn vorne rein drücke, verliert er hinten den Kontakt und umgekehrt. Ich nutze diese Breadboards: http://www.reichelt.de/index.html?ACTION=3;ARTICLE=139507

    Was nutzt ihr denn für welche?

    Einmal editiert, zuletzt von KrawallKurt (25. Februar 2016 um 18:07)

  • Hallo.
    Weiß zwar nicht warum unbedingt per Hardware entprellen aber ok.
    Per Hardware gibt es sehr wohl saubere Lösungen. Siehe >hier< .


    Was nutzt ihr denn für welche?

    Das ist so ne Sache.
    Bei allen Breadbord's gibt's ne Oxydation, und ausleiern der Kontakte.
    Muss ja nicht gleich ein Mercedes sein, aber vor 1€ Dingern würd ich abraten.
    Ich selbst nutze >das< und bin recht zufrieden.
    Wenn das (je nach Nutzung) nach 1-2 Jahren rummuckt... Tonne, und neues her.

    gruß root

  • Hmm, aber FlipFlops kann ich nur für Umschalter benutzen, oder? Wenn ich jetzt einen "normalen" Schließer habe, fällt diese Option raus.
    Beim Drehimpulsgeber bin ich mir nicht so ganz sicher, wie das ist. Kann man den irgendwie mit 'nem FlipFlop verbinden?

  • Für die Drehimpulsgeber habe ich mal das hier gebaut: Drehimpulsgeber / Inkrementalgeber entprellen
    Damit bekomme ich bei meinen Projekten immer saubere Signale. Am stärksten war die Wirkung hier zu bemerken: Tischkreissäge Proxxon FET mit Drehzahlregelung, Licht und LCD
    Seitdem die Platine dort verbaut ist, hat sich der Motor nicht mehr anders gedreht, als ich dies am DIG vorgegeben habe.

  • @root: Danke für den Tipp, aber das ist mir doch n Tick zu teuer glaub ich. Ich probier erst mal mein Glück mit der Entprellung von mikrocontroller.net. Wenn's nicht 100% perfekt ist, wird das denke ich auch okay sein.

    Neueinsteiger: Ja, den Thread kenne ich und das ist ja in Prinzip genau das gleiche, was ich auch baue. Hab es jetzt auch mal schnell mit einem Taster aufgebaut und es funktioniert auch ganz gut... zu Beginn. Dann kriegt die CPU ziemlich uncoole Herzrhythmusstörungen.

    Ich hab gerade einen neuen Thread dazu aufgemacht, könnte eine größere Geschichte werden: Klickmich

    Viele Grüße

  • Hi.

    Also, so ganz verstehe ich dein Prob nicht.
    Erstmal willst ne Entprellung per Hardware.Nachden du angeblich nix gefunden hast, ist dir der MAX nen Tick zu teuer, und versuchst dich mit Softwareentprellen.
    Ok, zu deiner Python Lösung sag ich nix, aber:
    Warum machst dann nicht

    Code
    GPIO.add_event_detect(18, GPIO.BOTH, callback = doIfHigh, bouncetime = 200)


    da erwsicht du beide Flanken, kannst das C vergessen und den R2, und brauchst nur nen Rv. Mit der Bouncetime stellt quasi alle folgenden Interrupt's an diesem Pin auf "ignore"..

    Hier ein Beispiel:

    ist von >hier<.

  • Hallo KrawallKurt,

    Zitat

    Ich vermute, dass der Inverter kaputt ist.

    Und ich bin mir ziemlich sicher, dass dein IC nicht kaputt ist. Aber -> klar es könnte wirklich defekt sein.
    Warum aber meine Vermutung?
    Du setzt das Ic in einen undefiniertes Zustand. Ohne viel zu schreiben sehe dir bitte meine Abbildung an.
    Abb. 1 zeigt eine sehr Rudimäre (aus meinem Schulbuch) Schaltung des "Schmitty". Abb.2 ist eine "Nachmachung" die ich im Net gefunden habe. Damals haben die Hersteller auch die Integrierte im Ic Schaltung in dem Datenblatt bei gelegt, .... Deine Schaltung habe ich in der Blauenrahme "?reproduziert / nachgestellt".
    Der Eingangstransistor des 74HC14 (habe ich übrigens mit einem Rotem Punkt markiert) sieht die Masse (also den L- Pegel) hinter dem 10k Widerstand überhaupt nicht.

    Als dein Schalter nicht betätigt ist, bekommt das Eingang des Trigger einen "Sauberen" H- Pegel.
    (Vcc durch R1 und R2) Mann kann / wird (aus Erfahrung) um die 3 und "batsch" Volt messen.
    Wird das Schalter gedrückt, setzt sich das Ic in einen undefiniertes Zustand. H ist weg, aber AUCH kein L.

    Nur am Rande; es hat sich in der TTL- Technik etabliert:
    Ein "Sauberes" -> H- Pegel soll mehr als 2,5V
    Ein "Sauberes" -> L- Pegel soll weniger als 0,4V
    Zustände die sich dazwischen, oder den Spannungsdifferenzen ausweiten, sorgen (je nach Schaltung .... ) für unstabile bis zu nicht funktionierende Schaltkreise.

    Aber ich Poste hier, weil ich mir relativ sicher bin (ok; - ist nur ´ne Spekulation) , dass dein 74HC14 "Stein" nicht defekt ist.
    Und das, kannst du "baby- leicht" überprüfen, in dem du Wert des R2 (aus deiner Schaltung) auf ca. 100 / 600 Ohm reduzierst, oder du den Pin 1 des "Schmitty" direkt mit einem (nicht weniger als 100 Ohm) 100 .... 300 Ohm Widerstand überbrückst. (Gelb auf meinem Bild dargestellt.)

    ABER ACHTUNG * !
    Nicht weniger als 100 Ohm !!! ...

    Ist dein IC doch nicht Defekt, und soll es mit meinem Tipp (R2 aus deiner Schaltung auf die ca. 100 Ohm zu ändern) Funktionieren (GPIO Aktivitäten werden war genommen), ist dass noch KEINE Hardware- Entprellung, ich betone es!, es hat mit keinerlei Hardware- Entprellung zu tun.

    Ich kann mich auch nur den allen User hier anschließen und sage das selber:
    ohne das C wird gar nichts. (Nun; ich bevorzuge persönlich das CR Glied)


    Gruß
    Georg

    * -> Ich werde es sogar kurzschließen - soll ABER; - E-Gatte mit Vcc (im Defekt Fall wirklich) Galvanisch verbunden sein -> prost Malzeit - Es Raucht - & Pi bekommt Flügeln.
    ...
    Also Bitte NICHT machen.

    EDIT!
    @root
    Bist du sich sicher?

    Zitat

    Warum machst dann nicht
    Code: Alles markieren
    GPIO.add_event_detect(18, GPIO.BOTH, callback = doIfHigh, bouncetime = 200)
    da erwsicht du beide Flanken, kannst das C vergessen und den R2, und brauchst nur nen Rv. Mit der Bouncetime stellt quasi alle folgenden Interrupt's an diesem Pin auf "ignore"..

    Hier ein Beispiel:
    ...

    Da stimmt was nicht. Oder?
    Aber .. kann mich irren.

  • Eigentlich habe ich mich nicht mit Software-Entprellung versucht... Den Code von dir kenne ich. Meiner ist quasi die Abwandlung davon.
    Was ich eigentlich will? Saubere Flankenerkennung, am liebsten in Hardware. Scheint ja mit der Variante von mikrocontroller auch einigermaßen zu funktionieren. Nur leider kann ich das nicht richtig testen, weil zwischendurch das System einfriert. Das ist momentan das große Problem.
    Wahrscheinlich war mein Übergang von einem Problem zum nächsten etwas abrupt, sorry. Mein ursprüngliches Problem sind prellende Taster. Beim rumbasteln und versuchen, diese zu entprellen ist mir dann das Problem mit dem einfrierenden system aufgefallen und das ist auf meiner Prioritätenliste nach oben gerutscht, denn, wenn das system so reagiert, kann ich nicht ausreichend validieren, ob meine Entprellung was taugt.

    Wenn ich das Programm ausführe, das du grad gepostet hast, passiert exakt das gleiche mit dem system nach ein paar mal Taster drücken.

    Code
    Feb 26 04:04:52 Pi2 kernel: [ 5411.304669] gpiomem-bcm2835 3f200000.gpiomem: gpiomem device opened.
    Feb 26 04:05:25 Pi2 kernel: [ 5444.130875] mmc0: Timeout waiting for hardware interrupt.
    Feb 26 04:05:32 Pi2 kernel: [ 5451.281083] INFO: rcu_sched detected stalls on CPUs/tasks:
    Feb 26 04:05:32 Pi2 kernel: [ 5451.281119] 0: (1 GPs behind) idle=907/2/0 softirq=93766/93766 fqs=2101 
    Feb 26 04:05:32 Pi2 kernel: [ 5451.281129] (detected by 1, t=2102 jiffies, g=67649, c=67648, q=1250)
    Feb 26 04:05:32 Pi2 kernel: [ 5451.281142] Task dump for CPU 0:
    Feb 26 04:05:32 Pi2 kernel: [ 5451.281151] swapper/0       R running      0     0      0 0x00000002
    Feb 26 04:05:57 Pi2 kernel: [ 5476.091159] mmcblk0: timed out sending r/w cmd command, card status 0x900
    Feb 26 04:05:57 Pi2 kernel: [ 5476.157233] mmc0: tried to reset card


    georg-Lu_1963-1: Jap, hast Recht. Der IC ist nicht kaputt, das Breadboard ist scheiße. Hat sich schon geklärt ;)

    Einmal editiert, zuletzt von KrawallKurt (26. Februar 2016 um 04:20)

  • Ja, das Breadboard... Da habe ich auch schon so manche Stunde mit der Suche nach Schaltungsfehlern verbracht. Letztlich stellte sich dann raus, dass ein Kontakt nicht richtig vorhanden war.

    Um Deine Entprellung zu validieren könntest Du einfach einen Oskar anschließen. Wenn Du keinen hast, wäre das doch mal ein guter Grund über eine Anschaffung nachzudenken. Die gibt es inzwischen auch für wirklilch schmale Geldbeutel zu kaufen. Die werden dann nicht hoch präzise arbeiten, aber für solche Aufgaben wird es ausreichen. Ich selber nutze für simple Signalerfassung unterwegs ganz gerne den DSO021. Wie ich gesehen habe, gibt es sogar für gut 20 Euro schon einen Bausatz incl. LCD mit einem Versand innerhalb DE. ebay 262136346371. Wie gesagt, das ist kein Präzisionsmessgerät, aber für solche Dinge wird es reichen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!