Ankündigung

Einklappen
Keine Ankündigung bisher.

KONNEKTING 16CH Binäreingang (potentialfrei) für Reed-Kontakte

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Wie mache ich das mit einem I2C Port Expander !? den kann ich doch nur zyklisch abfragen und weiß nicht, ob gerade eine Störung anliegt oder nicht. Deshalb frage ich im Code den Eingang ja mehrere male nacheinander ab und schau ob es plausibel ist.

    S0 mal ausgeschlossen, die lese ich direkt über einen I/O Port am µC aus.
    Zuletzt geändert von Masifi; 26.01.2017, 10:55.

    Kommentar


      Was ist mit dem interrupt-pin? Hast du den nicht angebunden (laut code wohl nicht... :-( )


      Aber auch ohne interrupt-pin:

      Wenn du nur alle 100m den status der pins abfrägst, und über einen Zeitraum von 300ms der status "gleich" bleiben muss damit ein "tatsächlicher change" vorliegt, hast du auch so schon kurze fehlerspikes gekillt (primitiv-tiefpass in SW).

      Mit der variation der beiden Zeiten kannst du du die Frequenz für den Tiefpass "einstellen".

      Prinzipiell kann man das gleiche für S0 machen, nur da eben direkt interrupt-basiert.
      Zuletzt geändert von tuxedo; 26.01.2017, 11:36.

      Kommentar


        Ich möchte aber nur im Zyklus von 1sek die Zustände der Reed-Kontakte ("gepulst") abfragen und dann nur darauf reagieren wenn sich was getan hat. Daher nutze ich den Int-Pin des Expander nicht, auch wenn er angeschlossen ist (vielleicht braucht man ihn ja doch mal).

        bei meiner ersten Schaltung konnte ich bei offenem Fenster messen wann ich will, er hat immer nur Fahrkarten zurückbekommen (Eingangsschaltung viel zu empfindlich), es gab faktisch bei offenem Fenster keinen "definierten" Zustand. --> Soviel zu, die SW wird es schon richten, da kann die SW tun und lassen was sie will und wird es trotzdem nicht schaffen. Das ist das Schöne wenn die Theorie auf die Praxis trifft :-)

        Mit der neu ausgelegten Schaltung ist das jetzt deutlich besser. Hier sollte die HW schon 98% aller Störungen Filtern und die restlichen dann von der SW.

        Kommentar


          welche HW-Version habe ich?

          Kommentar


            bei meiner ersten Schaltung konnte ich bei offenem Fenster messen wann ich will, er hat immer nur Fahrkarten zurückbekommen (Eingangsschaltung viel zu empfindlich), es gab faktisch bei offenem Fenster keinen "definierten" Zustand. --> Soviel zu, die SW wird es schon richten, da kann die SW tun und lassen was sie will und wird es trotzdem nicht schaffen. Das ist das Schöne wenn die Theorie auf die Praxis trifft :-)
            Naja, mit einer kollosal falsche HW wird es in SW schwer, aber nicht unmöglich: Du musst nach Shannon-Nyquist (Stichwort "Abtasttheorem") nur doppelt so schnell Messen wie Signale auf der Leitung auftreten, um das Signal zu 100,0% fehlerfrei in der SW vorliegen zu haben. Dann ist es ein leichtes mit der genannten Technik einen Tiefpass in SW zu basteln. Wenn der Messstrom nicht direkt im µAmpere-Bereich liegt (was extrem förderlich für Störungen ist) und die Störungen nicht gleich mit 1Khz auftreten, ist das in SW absolut kein Problem.
            Dass ist das schöne an der Physik. Die funktioniert immer.

            Zum gepulst abfragen (was ja durchaus Sinn macht und wünschenswert ist):

            Du weißt doch wann du den Puls ausgibst... Dann kannst du auch mit dem Int-Pin entsprechend darauf reagieren. D.h. Interrupt-Events nur dann beachten, wenn der Puls gerade eingeschaltet ist. Damit hast du "änderungen" die während eines Impulses auftreten abgedeckt (und ein klein wenig schneller erkannt, wie wenn du kein Int-Pin benutzt).

            1x pro Sekunde "testen" ist "zu träge" für mein befinden. Es geht ja beim pulsen darum, das Risiko zu mindern, dass, während gerade Spannung anliegt, der Reed-Kontakt sich öffnet oder schließt.
            Mit 1Hz klappt das auch, logisch. Aber auch mit 10 oder 100Hz hast du das Risiko drastisch gemildert. UND du hast den Status deutlich schneller ermittelt. 1s würde mich stören.... Ich hab z.b. neben der Haustür einen Glastaster der mit mit einer LED den STatus der Fenster und der Haustür signalisiert. Würde mich immens stören wenn das Öffnen der Haustür nicht "instant" mit der LED signalisiert werden würde, sondern bis zu 1sek Verzögerung hat. 300ms sind für mein Geschmack das absolute Maximum.
            Zuletzt geändert von tuxedo; 26.01.2017, 12:05.

            Kommentar


              Du musst nach Shannon-Nyquist (Stichwort "Abtasttheorem") nur doppelt so schnell Messen wie Signale auf der Leitung auftreten, um das Signal zu 100,0% fehlerfrei in der SW vorliegen zu haben.
              Wieder Theorie :-) wenn ich nur alle 1sek den Status messen will, dann wird das etwas schwer. Und ich will nicht alle 1sek eine Messung der Messung machen -> baue dir eine vernünftige HW und du sparst dir diese ganzen Dinge, die theoretisch sicher alle Richtig sind :-)

              Du weißt doch wann du den Puls ausgibst... Dann kannst du auch mit dem Int-Pin entsprechend darauf reagieren. D.h. Interrupt-Events nur dann beachten, wenn der Puls gerade eingeschaltet ist. Damit hast du "Änderungen" die während eines Impulses auftreten abgedeckt (und ein klein wenig schneller erkannt, wie wenn du kein Int-Pin benutzt).
              Ich will die Kontakte doch "Stromlos" haben, daher kann ich den INT-Pin nicht wirklich nutzen. Außerdem kannst du bei so einem Int-Pin nie sicher sein, ober er auf allen 16Ch die Peaks erkennt. Was passiert wenn zufällig zwei Peaks fast gleichzeitig kommen und der INT auf LOW geht, du gerade abfrägst, der INT wieder auf HIGH geht und genau etwas davor kommt der Peak auf dem anderen CH, dann bezweifle ich, dass der Expander das so einfach noch erkennt. Der ist von seiner Technologie sicher nich so ausgelegt um "Stör-Peaks" zu detekieren, das ist auch nicht seine Aufgabe. Also auch das hier klingt in der Theorie gut und richtig, aber die Praxis wird dir ein anderes Bild zeigen, auch wenn, der Fall sicher nicht oft auftritt. In der SW gibt es "1en" und "0en", in der HW Kapazitäten, Induktivitäten, Widerstände, ... :-)

              1x pro Sekunde "testen" ist "zu träge" für mein befinden. Es geht ja beim pulsen darum, das Risiko zu mindern, dass, während gerade Spannung anliegt, der Reed-Kontakt sich öffnet oder schließt.
              Mit 1Hz klappt das auch, logisch. Aber auch mit 10 oder 100Hz hast du das Risiko drastisch gemildert. UND du hast den Status deutlich schneller ermittelt. 1s würde mich stören....
              Man kann über die Suite auch zwischen 300ms 500ms und 1000ms wählen. Ja gut, dass mit der Tür verstehe ich, wobei alles gewöhnungssache ist, aber sonst sind 1s doch völlig ok.
              Zuletzt geändert von Masifi; 26.01.2017, 13:25.

              Kommentar


                Wieder Theorie :-) wenn ich nur alle 1sek den Status messen will, dann wird das etwas schwer. Und ich will nicht alle 1sek eine Messung der Messung machen -> baue dir eine vernünftige HW und du sparst dir diese ganzen Dinge, die Theoretisch sicher alle Richtig sind :-)
                Nein, das ist gelebte Praxis. Was glaubst du wieso eine Audio-CD mit 44,1kHz arbeitet?
                Und meine Kernaussage beibt: Ein bisschen einfacher Tiefpass mit einen vernünftigen Messtrom (nicht µA, sondern einige wenige mA). Das Feintuning dann in der SW.

                Aber lassen wir das. Die Diskussion führt zu nix.

                Ich will die Kontakte doch "Stromlos" haben, daher kann ich den INT-Pin nicht wirklich nutzen.
                Jepp. Der Int-Pin würde nur die Erkennungszeit weiter reduzieren wenn gerade ein Messstrom anliegt. Das ist keine Lösung, das ist eher eine Feintuning-Optimierung. Dachte ich hätte das zum Ausdruck gebracht.

                Wie das ist wenn ein IO-Pin direkt nach dem Int wieder seinen Status ändert und ob man da auch nochmal irgendwie dran kommt: So genau hab ich die Datenblätter noch nicht studiert. Ich meine aber - ich könnte mich auch irren - was beim überfliegen in der Richtung gelesen zu haben...

                Man kann über die Suite auch zwischen 300ms 500ms und 1000ms wählen. Ja gut, dass mit der Tür verstehe ich, wobei alles gewöhnungssache ist, aber sonst sind 1s doch völlig ok.
                Nope. 1s ist verdammt lange, wenn man damit nicht nur eine LED visualisiert, sondern z.B. Licht schaltet. Das Ohr nimmt Verzögerungen von >=100ms ohne Schwierigkeiten wahr. Bei der telefonie z.b.: während da 100ms noch "ganz okay" sind sind 200ms delay der overkill. Das Auge ist noch empfindlicher. Wenn mit dem Signal etwas geschaltet werden muss, dann sind 1sek Erkennungsrate die Definition der "langsamheit".

                Aber gut, wenn dir eine Sekunde reicht... dann passt das ja.

                Kommentar


                  Nein, das ist gelebte Praxis. Was glaubst du wieso eine Audio-CD mit 44,1kHz arbeitet?
                  ich will doch eigentlich nur ein statisches 1 oder 0 Signal abfragen und kein analoges Audio-Signal.

                  Aber lassen wir das. Die Diskussion führt zu nix.
                  Schade, ich mag so Diskussionen eigentlich sehr. Ich finde einfach, dass man immer mehr in die SW auslagert, weil man denkt diese kann das genauso gut. Das mag auch in gewissen Dingen stimmen, aber meine berufliche Tätigkeit zeigt leider, dass das nicht immer der Fall ist. Ich verstehe es auch warum das so ist, die meisten Personen verstehen heute die Informatik besser als die HW. Es gibt nicht mehr die HW-Bastel an der Anzahl wie früher, dank Arduino, Raspberry Pi, .....

                  Nope. 1s ist verdammt lange, wenn man damit nicht nur eine LED visualisiert, sondern z.B. Licht schaltet. Das Ohr nimmt Verzögerungen von >=100ms ohne Schwierigkeiten wahr. Bei der telefonie z.b.: während da 100ms noch "ganz okay" sind sind 200ms delay der overkill. Das Auge ist noch empfindlicher. Wenn mit dem Signal etwas geschaltet werden muss, dann sind 1sek Erkennungsrate die Definition der "langsamheit".
                  Mit einem Binäreingang mit dem ich Reed-Kontakte einlese, was zu 90% Fenster und Türen sind, tue ich mir etwas schwer, das mit einem "Ton" zu vergleichen. Wenn ein Alarm erst max. 300ms später kommt, oder ein Licht an geht(wer schaltet mit einem Reed-Kontakt ein Licht, ernste Frage?), dann ist das doch nicht langsam.
                  Ich habe außer bei einer "Haustür" ja so gut wie nie eine Anzeige, direkt am Objekt das ich öffne und dann sehe ich ja eh nicht wie schnell die Anzeige ist und ich weiß ja, dass ich das Fenster jetzt geöffnet habe, warum soll ich das innerhalb von <300ms kontrollieren wollen, ob es jetzt auch wirklich offen ist !?
                  Mein Arbeitskollege frägt seine Fenster alle Sekunde ab und er beschwert sich darüber kein bisschen :-)
                  Aber ich kann auch gerne den Wert 100ms noch aufnehmen.

                  Verzeiht mir meine Schreibwut und ich werde trotzdem an meinen Binäreingang weiter "basteln"

                  Kommentar


                    Zitat von Masifi Beitrag anzeigen
                    ich will doch eigentlich nur ein statisches 1 oder 0 Signal abfragen und kein analoges Audio-Signal.
                    Dem Abtasttheorem ist es egal was für ein SIgnal da kommt. Analog, Digital, Rechteck, Sägezahn, was totales wildes... Signal ist Signal. Abtasttheorem verstanden? Nein...


                    Schade, ich mag so Diskussionen eigentlich sehr. Ich finde einfach, dass man immer mehr in die SW auslagert, weil man denkt diese kann das genauso gut. Das mag auch in gewissen Dingen stimmen, aber meine berufliche Tätigkeit zeigt leider, dass das nicht immer der Fall ist. Ich verstehe es auch warum das so ist, die meisten Personen verstehen heute die Informatik besser als die HW. Es gibt nicht mehr die HW-Bastel an der Anzahl wie früher, dank Arduino, Raspberry Pi, .....
                    Ich zitiere mich nochmal:

                    Nichts desto trotz: Ein Tiefpass etc. in HW schadet nicht.
                    Es war also nie davon die HW außer acht zu lassen. Ich sagte nur: Da kommt kein Signal oder eine Störung für die man Quantenphysik studiert haben muss. Einfacher Tiefpass, ausreichend Mess-Strom und fertig. Damit ist das allermeiste abgefangen. Den Rest macht die Software. Und das sage nicht nur ich als Software'ler, sondern nach recherchen auch viele Hardware'ler.


                    Mit einem Binäreingang mit dem ich Reed-Kontakte einlese, was zu 90% Fenster und Türen sind, tue ich mir etwas schwer, das mit einem "Ton" zu vergleichen. Wenn ein Alarm erst max. 300ms später kommt, oder ein Licht an geht(wer schaltet mit einem Reed-Kontakt ein Licht, ernste Frage?), dann ist das doch nicht langsam.
                    Du vergisst den Bus. Zu den 300ms addieren sich weitere Latenezen auf. Schnell bist du bei 400ms.

                    Wenn du einen Raum betrittst und Licht haben willst, das Licht vom Reed in der Tür geschaltet wird, stört das ungemein. Ich kann dir aus dem Stehgreif ein Dutzend Leute nennen die dir genau das attestieren können, und die mit Technik sonst absolut nix am Hut haben.

                    Ich habe außer bei einer "Haustür" ja so gut wie nie eine Anzeige, direkt am Objekt das ich öffne und dann sehe ich ja eh nicht wie schnell die Anzeige ist und ich weiß ja, dass ich das Fenster jetzt geöffnet habe, warum soll ich das innerhalb von <300ms kontrollieren wollen, ob es jetzt auch wirklich offen ist !?
                    Weil man mit so einem Binäreingang ncht nur... ach was rede ich. Ich habs ja schon mal geschrieben ...

                    Mein Arbeitskollege frägt seine Fenster alle Sekunde ab und er beschwert sich darüber kein bisschen :-)
                    Wenn das Teil sonst niemand anderes nutzen soll: Optimale Lösung gefunden würde ich sagen.
                    Wenn das Gerät auch andere nutzen sollen: Ich bezweifle dass eine Testperson und deren Anforderungen eine adäquate Referenz für den Rest des potentiellen Interessentenkreises ist.



                    Verzeiht mir meine Schreibwut und ich werde trotzdem an meinen Binäreingang weiter "basteln"
                    Nein, du hörst sofort damit auf... lol... nein, ehrlich. Was soll dieser Satz? Sehe ich so aus als wollte ich dich davon abhalten? Es ist dein Aktor, tu und lass damit wie du es für richtig hälst.
                    Zuletzt geändert von tuxedo; 26.01.2017, 15:19.

                    Kommentar


                      Zitat von Masifi Beitrag anzeigen
                      (wer schaltet mit einem Reed-Kontakt ein Licht, ernste Frage?)
                      Ich mache das an 2 Stellen daheim.
                      Balkontür: Licht geht an wenn draußen dunkel ist.
                      GästeWC (für 2-3m² Raum war ich zu geizig mir ein PM zu holen, der auch nach bei langen "Sitzungen" versagt. Deswegen: Tür auf => Licht an, Schoß zu => Licht dauer an.
                      In diesen Fällen will ich das Licht sofort haben, ich persönlich merke sogar 500ms Verzögerung. 300ms wären für mich schon grenzwertig. Wenn es dann noch eine LED-Lampe ist, die auch noch selber wegedem Schaltznetzteil eine Verzögerung von 500-1000ms hat, dann ist das für mich NoGo! (Das war der Grund warum die meisten Lampen auf 12V Dimmer mit einem immer eingeschalteten Netzeil umgestellt habe)

                      Kommentar


                        Zitat von Masifi Beitrag anzeigen
                        wer schaltet mit einem Reed-Kontakt ein Licht, ernste Frage?
                        Das mache ich tatsächlich auch an einer Stelle; über einen Reed-Kontakt schalte ich die Innenbeleuchtung (12V LED Stripe) des Schaltschranks.
                        Gruß
                        Frank

                        Soziologen sind nützlich, aber keiner will sie. Bei Informatikern und Administratoren ist es umgekehrt.

                        Kommentar


                          @mastif bei meiner Speisekammer und meiner Schrank Beleuchtung geht über Reed Kontakte das Licht ein und aus.

                          Kommentar


                            Ah, das ist eine interessante Lösung. Sobald du den Schaltschrank aufmachst geht das Licht an.
                            Hast du dafür dann einen eigenen Schaltaktor verwendet, oder hast du was spezielles für den 12V Strip !?

                            Aber würde es dich stören, wenn das Licht erst nach max 300ms angeht !?

                            Kommentar


                              Die warnehmungsgrenze für solche Verzögerungen ist so bei 200ms. Alles drüber kann man wahrnehmen ob es dann aber wirklich stört bei. Licht würde ich für mich bei 300ms verneinen.

                              Kommentar


                                ich gebe mich geschlagen, werde das wohl mal ändern
                                Die Diskussion hat sich doch gelohnt, ich habe nicht gedacht, dass es so viele "Freaks" wie mich gibt, die ihren Schrank an KNX anbinden

                                Wenn 300ms eingestellt sind, heißt das ja auch das es im Mittel 150ms dauert und nur in wenigen Fällen an die 300ms.

                                Kommentar

                                Lädt...
                                X