Mehrere Taster an einem Pin ?

  • Ich bin mit Sicherheit KEIN Profi. Ich habe lediglich einen Elektronikkurs bei einer Fernschule absolviert. Der nannte sich Elektronik - Grundkurs. Damit ich das Ganze was ich da gelernt habe vertiefen kann und nicht wieder vergesse, beschäftige ich mich auch mal mit Schaltungen für die ich selber keine Verwendung habe. Andere lösen halt Sudoku Rätsel.


    Von daher gehe ich davon aus, dass ich hier Grundlagen von mir gebe und das muss auch nicht alles so 100%ig stimmen. Vor drei Jahren noch, wusste ich kaum, wozu ein Kondensator überhaupt gut ist.


    Aber eines ist (für mich) sicher. Ohne Grundlagen kann man das "Advanced" nicht kapieren.

  • Hallo Kai,


    vielen lieben Dank für deine große Mühe.


    Wie Hans schon richtig geschrieben hat, sprechen wir hier nicht mehr von einer Grundlagenübung ^^

    Du bist halt einfach ein Profi mit viel Wissen :thumbup:

  • Hallo Kai,


    ich finde es super, was Du hier ablieferst. Ich bin zwar mit vielen elektronischen Bauteilen vertraut, aber ich könnte so eine Schaltung
    nicht entwickeln. Reden wir hier wirklich noch von Grundlagenübungen? ;)


    Gruß

    Hans

  • Hallo zusammen,


    nachdem Nicole hier die mehr oder weniger sinnvolle Tastergeschichte aufgerollt hat, habe ich mich selber auch mal mit zwei Aspekten zu Tastern beschäftigt. Einmal geht es um das Entprellen von Tastern mit Hilfe von Hardware und zum Zweiten um die Steuerung der Tasten in dem Sinne, dass an der Leitung "ANALOG_PIN" kein Signal anliegt, wenn beide Taster gleichzeitig gedrückt werden.


    Da normalerweise jeder Taster eine eindeutige Bedeutung haben sollte, ist das gleichzeitige Drücken beider Taster ein ungültiger Zustand.


    Taster-Schmitt-Trigger.png



    In der Schaltung wird intensiv mit RC Gliedern gearbeitet. Unter anderem dienen sie dem Entprellen von Tastern im Zusammenspiel mit einem invertierenden Schmitt-Trigger (40106).


    Durch die RC Glieder wird die Schaltung zeitverzögert, was den evtl. Prellvorgang bei der Tasterbetätigung entschärft. Jedem der beiden Taster ist eine RC-Schaltung (R9/C1 und R8/C2) zugeordnet. Ein Kondensator wird bei Tastendruck über einen recht hohen Widerstand entladen. Wird eine eine bestimmte Schaltschwelle erreicht, erfolgt eine Aktion durch den Schmitt-Trigger.


    Das dauert je nach Widerstand-Kondensatorkombination eine bestimmte Zeit. Prellt in dieser Zeit der Taster, d.h. er schwingt zwischen dem Zustand ein- und ausgeschaltet, wird das durch das RC-Glied überbrückt. Erreicht die Spannung am Kondensator die untere Schaltschwelle des Schmitt-Triggers, schaltet dieser seinen Ausgang auf HIGH.


    Lässt man den Taster los, funktioniert der Prozess umgekehrt. Der Kondensator lädt sich wieder auf. Erreicht seine Spannung die obere Schaltschwelle des Schmitt-Triggers, wechselt dessen Ausgang auf LOW.


    Schmitt-Trigger-Zeit.PNG



    In dem Oszillogramm kann man den Vorgang sehr gut erkennen. Ist ein Taster nicht gedrückt, ist der Ausgang des Schmitt-Triggers auf LOW (grün). Der Eingang vom Taster hat einen High-Pegel (gelb). Wird er gedrückt, so wird sein Pegel auf Ground gezogen und der Kondensator entlädt sich (in ca. 28ms) von etwa 5V auf ca. 1,5V. Das ist die untere Schaltschwelle des Schmitt-Triggers. Ist diese Schwelle erreicht, wird sein Ausgang auf HIGH umspringen. Das ist das Signal für "Taster gedrückt".


    Wird der Taster losgelassen, so wird er wieder von Ground getrennt und es liegen über dem Taster wieder 5V an. Der Kondensator lädt sich wieder auf und bei ca. 2,5V geht der Ausgang des Schmitt-Triggers wieder auf LOW. Das ist das Signal für "Taster nicht gedrückt".


    Durch den Einsatz des Schmitt-Triggers wird das Ausgangssignal auch bei prellenden Tastern sauber sein.


    Die Signale der Taster werden durch einen Spannungsteiler unterscheidbar. Der Taster S1 wird an der ANALOG_PIN Leitung eine Spannung von etwa 2,3V erzeugen, der Schalter S2 eine von etwa 4,2V.


    Schmitt-Trigger-Pegel.PNG


    Im Anschluss an die Schmitt-Trigger-Schaltung folgt eine Kombination aus mehreren NOR-Gattern (IC 74HC02). Durch diese Verschaltung wird dafür gesorgt, dass beide Schalter inaktiv werden, sollten sie gleichzeitig gedrückt sein. Außerdem wird ein zweiter Ausgang (DIGITAL_PIN) getriggert. Ist sein Zustand HIGH, ist kein Taster aktiv, ist er LOW, ist ein Taster aktiv. Im Grunde ist das eine (fast) komplette XOR Schaltung die mit NOR-Gattern umgesetzt wurde.


    Bei einer kompletten XOR Schaltung wären Taster und "DIGITAL_PIN" Ausgang synchron.


    XOR-NOR.jpg

    Diese Grafik zeigt eine komplette Umsetzung einer XOR Schaltung mit NOR Gattern. In der vorgestellten Schaltung fehlt der letzte Baustein ganz rechts.


    Am Ende kommt noch ein weiteres RC-Glied zum Einsatz (R3/C3), welches den Schaltvorgang für HIGH an der im Schaltbild als "ANALOG_PIN" bezeichneten Leitung verzögert. Ohne diese Verzögerung wäre die Leitung bei gleichzeitigen Drücken der Taster für etwa 30-50ms auf HIGH, bevor wieder ein LOW Zustand geschaltet wird.


    Das war mal wieder eine kleine Grundlagenübung zu RC-Gliedern, Schmitt-Trigger und ein bisschen Digitaltechnik ohne Microcontroller. Wen es interessiert, viel Spaß beim Nachbauen und herumprobieren. Ich hab noch ein kurzes Video gemacht in dem die Funktion demonstriert wird:


  • Der Widerstand ist nicht so verbaut weil Source „unten“ ist. Er ist so verbaut, weil dort Masse ist. Er hat die Aufgabe den Gateanschluss auf ein definiertes (0) Potential zu ziehen, wenn dort keine Spannung anliegt.

    Das ist notwendig um sicher zu stellen, das der Mosfet auch wirklich schließt. Von daher verstehe ich nicht, was Du bei einem Pulldown mit den Drain- und Sourceanschlüssen hast. Die haben damit nur indirekt etwas zu tun.


    Man hätte auch ein Massezeichen direkt an den Widerstand heften können. Dann gäbe es, zumindest „zeichnerisch“, keine Verbindung zum Sourcepin des Mosfets.

  • Hallo Kai,


    ich habe mir deine Schaltungen nochmals angesehen.

    Du hast absolut Recht ich liege falsch !


    Bei deiner letzten Zeichnung weiter unten kann man den Pfeil meiner Meinung nach nicht so gut erkennen wie in deinen anderen Zeichnungen.

    Natürlich hätte ich nur der Linie bei dem Pfeil folgen müssen und hätte somit auch gesehen um welchen Mosfet es sich handelt :rolleyes:


    Deine/Eure Erklärungen sind nicht spurlos an mir vorbei gegangen es ist für mich nicht so leicht das ganze zu verstehen.

    Trotzdem gebe ich mir Mühe damit ich es verstehe, auch wenn es manchmal für Euch anders rüber kommt.


    Jetzt weiß ich auch warum der 56K anders verbaut ist.

    Weil die Source jetzt unten anstatt oben ist ;)


    Ich werde es testen und melde mich mit dem Ergebnis zurück.


    Vielen Dank für Eure große Hilfe.

  • Hmm…. der Pfeil (nicht die Diode) zeigt in Richtung Substrat und nicht nach außen. Also ist es ein N-Kanal Mosfet.

    Die Erklärungen im Thread „PNP-Mosfet“ bezüglich Pullup- oder Pulldown Widerständen (R4) scheinen spurlos an Dir vorüber gegangen zu sein. Vom Abgriff zum digitalen Pin aus gesehen, handelt es sich um eine Low-Side Schaltung.


    Es wurde schon alles erklärt. Alles schon aufgeschrieben. Mehrfach. Wenn es dich wirklich interessieren sollte, liegt es an Dir die ganzen Informationen durchzuarbeiten und die Grundlagen zu lernen. Es hilft nichts, wenn wir hier im Forum zig mal das gleiche Schreiben.

  • Ich glaube ich habe mir gerade selbst ein Eigentor geschossen ;)


    Laut Symbol ist es ein P-Mosfet.

    Aber was ich nicht ganz verstehe, warum ist der Drain Ausgang dann mit GND unten verbunden ?

    Würde das keinen Kurzschluss geben :/


    Oder verhindert der 56K Widerstand den Kurzschluss ?

    Weil bei deiner anderen Schaltung hattest du den 56K zwischen Source und Gate.

    Das habe ich verstanden aber hier ist es ja genau anders rum.


    Vielleicht kannst Du mir das bitte erklären damit ich es besser verstehe.


    Vielen Dank für Eure Mühe.

  • A1 ist ein analoger Eingang , D1 ein digitaler. Die Schaltung der LED wurde nicht berücksichtigt, weil es für die Antwort auf Deine Frage irrelvant war. Und ja, es wäre da noch ein dritter Pin für die LED Steuerung notwendig.


    Was das für ein Mosfet ist, sieht man am Schaltsymbol und an der Verwendung des 56k Widerstandes. Da verweise ich auf den Thread „PNP-Mosfet“. Da steht fast alles über Mosfets, was es im Hobbybereich dazu zu sagen gibt.


    Du darfst ruhig noch ein bisschen mehr nachdenken. Dann würde sich die ein oder andere Frage wahrscheinlich von selbst erledigen ;):P.

  • Hallo Kai,


    vielen Dank für deine Hilfe und deinen Schaltplan.


    Danke für den Tip mit den Potentialen das werde ich versuchen umzusetzen.


    Ich habe noch Fragen zu deinem Schaltplan.

    Du nutzt einen NPN Mosfet um die Schaltimpulse der Taster weiter zu leiten richtig ?


    Anschluss A1 ist dafür da damit ich auswerten kann welcher Taster gedrückt wurde.

    Der D1 Pin wird nur genutzt um mit den beiden Tastern den Arduino aus dem Tiefschlaf zu holen.


    Oder werden die Pins D1 und A1 wie ganz normale Pins an denen Taster angeschlossen sind funktionieren ?

    Wie schon gesagt möchte ich ja eine LED ein oder ausschalten somit würde ich ja dann noch einen 3 Pin benötigen.


    Oder denke ich schon wieder zu viel ?


    Vielen Dank für eure Mühe.

  • Hallo Pius,


    das kann Nicole ja dann machen :). Ich hatte den Widerstand schon von 400Ω auf 2,2kΩ gesetzt um den Abstand zu vergrößern. Da es ja nur zwei Taster sind ginge aber sicher auch 10k / 10k.


    Nicole:

    Bevor ich jetzt auf jedes Detail dieser Beispielschaltung(en) festgenagelt werde. Die Widerstandwerte sind mehr oder weniger willkürlich. R5 kann man auch weglassen. Es ist nur ein Beispiel und soll als Lösungsansatz dienen. Mehr nicht.

  • Hallo KaiR

    wie immer vollerr Ideen. Dein Vorschlag wird funktionieren, wobei ich die Spannung für S1 noch tiefer setzen würde, damit der Abstand zwischen beiden Spannungen deutlicher wird.

    Eine OR Schaltung mit den zwei Tasten, um den Interrupt auszulösen und zwei Gatter für die Trennung und danach ein Spannungsteiler für jede Taste geht auch.

    Gruss

    Pius

  • Nur mal so eine Idee.... aber ausprobieren musst Du schon selber....


    Taster.png           Taster2.png



    Es wäre gut, wenn Du dir angewöhnst die höheren Potentiale oben und die niedrigeren unten im Schaltplan anzuordnen. Also Betriebsspannung oben, GND nach unten. Dann ist das einfacher zu lesen...

  • Hallo Daniel,


    vielen Dank für deine Mühe.


    Man kann ja mehrere Taster in Reihe Schalten und zwischen jeden Taster einen Widerstand einbauen.

    Jetzt führt man die Taster Leitung zu einem Analogen Pin und kann somit die Taster auswerten.


    Taster 1 hat z.B. 1023

    Taster 2 hat z.B. 900

    usw....


    Somit kann ich genau zuweisen welcher Taster gedrückt wurde da ich es über analogRead auswerten kann.

    Nur bei einem Interrupt Pin ist das so meiner Meinung nach nicht möglich.


    Darum wollte ich Euch Fragen wie man es bei einem Interrupt Pin lösen könnte ?

    Mein Ziel ist es den Arduino mit Taster 1 oder auch Taster 2 aus dem Tiefschlaf zu holen und schließend eine LED zu schalten.

    Damit ich den Arduino aus dem Tiefschlaf holen kann benötige ich den Interrupt Pin.


    Hier mal meine Schaltung:


    Taster.png

  • Hallo zusammen,


    ich würde gerne wissen ob es möglich ist mehrere Taster an einem Interrupt Pin anzuschließen ?


    An einem normalen Analog Pin funktioniert es Problemlos.

    Nur geht das auch bei einem Interrupt Pin ?


    Welche Erfahrungen habt Ihr hier gemacht ?


    Vielen Dank im Voraus

    Nicole