Suche Schaltung - begrenzte Drück-Zeit

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Hallo miteinander,


    ich suche Komponenten für eine eigentlich einfache Schaltung:


    K1 auslösen, wenn:

    • Taster S1 losgelassen wird (Fallende Flanke)
      UND
    • Taster S1 <1s gehalten wurde


    Im Umkehrschluss: K1 nicht auslösen, wenn:

    • Taster S1 >=1s gehalten wurde


    Stark vereinfacht:


    Sinn: Wenn der Taster kurz gedrückt wird, wird per Relais ein Licht ein/ausgeschaltet. Wenn länger der Taster gehalten wird, wird die gedrückte Zeit gemessen (nicht dargestellt).


    Weiteres (aber aus meiner Sicht nicht relevantes):

    - das Relais ist ein Selbsthalte-Relais

    - Steuerspannung ist 5/12/24V DC

    - Lastspannung ist 230V AC


    Vielen Dank!

  • Moinsen,

    ein klassische Aufgabe für einen AVR µC Wie den ATTINY bzw. Tiny13 / aber auch Tiny 9. Dazu einen kleinen Spannungsregler wie den 2950-50 und einen Treiber-MOSFET wie den TSM2302, sowie eine Freilaufdiode BY 550-200. Und ein bißchen Geplänkle ;)
    Der Tiny kann de Einschaltimpuls vom Taster als IRQ Event messen, entscheiden, ob er einen Steuerimpuls über einen anderen GPIO -> MOSFET Treiber fürs Relais ausgibt, oder via UART ( RS232 ) bzw I²C die Daten ( Tasterbetätigungszeit ) ausgeben.

  • Franky07 vielen lieben Dank für deinen Vorschlag! Vor allem die ausführliche Beschreibung per PN!

    Ich glaube, dass ich deinen Vorschlag zu 50% (wirklich) verstehe, denke aber immer noch, dass es zu komplex ist. Ich möchte vorwiegend fertige Module verwenden, um mich nicht in Kleinigkeiten zu verstricken (von denen ich mich jetzt bisher nicht auskenne).


    Ich habe mir noch mal genau klargemacht, was ich exakt haben möchte. Zu meiner obigen Beschreibung kommt noch die Ergänzung: es muss auch ohne programmierte Steuerung rudimentär (an/aus) funktionieren!


    Ein weiterer Vorschlag von mir:

    • S1: der Taster zum Licht ein/ausschalten und Signal an Steuerung (für Dimmen) ausgeben
    • In: Eingang [1]
    • Rz, Dz: Spannung für In auf 3,3V reduzieren
    • D1: verhindert, dass K3 [2] einen Taster-Druck simuliert
    • K3: Schaltet die Leuchten (K1) ein/aus
    • K2: verhindert das Einschalten der Leuchten (K1) bei Drücken <1s
    • K1: Relais, dass den LED ein/ausschaltet
    • Out1: Ausgang von meiner Steuerung [1][3], bei aktiver Steuerung offen
    • Out2: Ausgang von meiner Steuerung [1][3], aktiviert bei aktiver Steuerung die Leuchte


    Fälle:

    1. Steuerung ist inaktiv (nicht angeschlossen, Softwarefehler, ...): mit S1 aktiviert man immer direkt K1 und somit die Leuchte
    2. Steuerung ist aktiv, S1 wird <1s gedrückt: K2 ist geöffnet; Signal wird von In erkannt; Beim Loslassen von S1 wird Out1 und Out2 geschlossen und die Leuchte aktiviert.
    3. Steuerung ist aktiv, S1 wird >1s gedrückt: K2 ist geöffnet; Signal wird von In erkannt; Bei Dauer >1s wird per Steuerung ein anderer Ausgang (OutX) geschalten und Dimmer o.Ä. gesetzt (0-10V).


    [1] z.B. MCP23017

    [2] z.B. 16-Channel 24V Relay Modul

    [3] Raspberry Pi mit OpenHab, verbunden mit I2C zu [1]



    Was meint ihr hierzu?

  • Moinsen,
    Ja und wie nun weiter ?

    Ich verstehe im Kontext zu deiner Ursprungsanforderung:

    Steuerspannung ist 5/12/24V DC

    dieses neue Schaltbild nicht. Ausgehende davon, das du Rz + Dz nicht für den gesamten angegebenen Spannungsbereich statisch auslegen kannst, wird diese Schaltung so nichts viel bringen.
    Der MCP23017 kann so erst einmal kein Relais direkt ansteuern.
    Also verstehe ich den ganzes Sinn nicht so richtig, wenn du ohnehin einen Controller ( RasPI ) verwendest, weiterhin einen PortExpander MCP23017, dazu noch einer Relaiskarte, warum du das nicht ohne das PI machen willst !? Grundsätzlich, wenn der I²C Bus blockiert ist, der oder das PI abgekackt ist, dann hast du ein Problem mit der Schaltausführung ! Wenn zudem deine OpenHAB Software keine I/O Prüfung des I²C Busses durchführt, und damit auch keinen Reset(Überstrich) zum MCP23017 auf Grund irgendwelcher Übertragungsfehler senden kann, weil vielleicht auch nicht verbunden, dann ist die einzigste Lösung der komplette Re-Start des RasPis um diese Schaltung wieder zum laufen zu bringen.
    Für eine reines Eventsystem, wo nur in der Nebenbetrachtung ein Überzeitevent an den Controller ( RasPi ) zurückgemeldet werden soll -> Kernaufgabenstellung ->

    Sinn: Wenn der Taster kurz gedrückt wird, wird per Relais ein Licht ein/ausgeschaltet. Wenn länger der Taster gehalten wird, wird die gedrückte Zeit gemessen (nicht dargestellt).

    ist die Only alles über das RASPI Version aus meiner Sicht viel zu Fehleranfällig. Vor allem du hast mit dem I²C im Störfall ohne mögliche Fehlerexceptions nur den kontrollierten Re-Boot um aus dem Schlamassel wieder heraus zu kommen.
    Solche Subsysteme basierend auf einem AVR Controller haben im Bedarfsfalle eine Reboot Zeit von unter 10 mSek.
    Das sollte man sich sehr genau überlegen, ob dieses System ( mir unbekannt ) OpenHAB überhaupt in der Lage ist eine Datenkollision auf dem I²C Bus zu erkennen, und mit einer entsprechenden Reaktion ( Bus-Master-Reset mit anschließender Neukonfiguration des PortExpanders ) zu reagieren ?

    Wenn du diese Fragen für dich beantworten kannst, was die Kommunikationssicherheit via I²C, und den NotfallExceptions dieses System ist, kannst du gerne den Versuch machen, diese Schaltung so umzusetzen. Wobei ich den grundsätzlichen Zweifel hege, das dieses INPUT so wie dargestellt auch funktionieren wird. Denn in diesem Fall bricht über D1 und K1 ein die Spannung soweit zusammen, das einen kontrollierten Prellfreien High Pegel auf das INPUT zu legen.
    Du musst immer davon ausgehen das jeder mechanische Taster prellt, ob du das in deiner SW abfangen kannst ? Keine Ahnung. Aber wie das Stromstoßrelais auf dieses "Geprelle" reagiert, weiss ich leider auch nicht.

    Du kannst es mit diesem Aufwand an Relais, Kontakten und was auch immer genutzten I/O Handlings probieren. Nur effektiv 3 I/O Ports für eine solche Aufgabe ? Aus meiner Sicht ein Aufwand, mit zu vielen Fehlerquellen. Gut es ist deine Entscheidung, und dein Wille.

    Franky