Hallo, habe nach diesem Beispiel http://www.arduino-tutor.de/digitaler-input-output/ mit positiver Logik (also 10k Widerstand nach Masse) eine Schaltung aufgebaut, Eingang ist PB3. uC ist ein Attiny85, der per Interrupt aus dem Schlaf geweckt wird und der Taster ist in meinem Fall ein Öffner. Schaltung funktioniert auch einwandfrei, wenn Öffner betätigt wird. Allerdings wird der Interrupt öfter auch ausgelöst, wenn sich jemand der Schaltung nur nähert aber der Öffner NICHT betätigt wird. Öffner ist ausgelagert und mit ca. 3m Kabel mit der Schaltung verbunden. Wo ist der Fehler und wie kann ich das abstellen? Danke für alle Antworten Matthias
Ein kleiner Kondensator (10nF) parallel zum Taster könnte helfen.
µC ausreichend geblockt? Unbenutzte Pins auf festem Potential? Kein Wackelkontakt bei der Verkabelung? Schalter in Ordnung? Eventuell helfen 10nF parallel zum Schalter, aber nahe am µC. Warum Öffner? Zieht dauerhaft Strom durch den 10k, der zudem auch etwas kleiner sein dürfte. Dann könntest du den µC auch ohne Schlafen betreiben und den Eingang abfragen mit ausreichender Entprellung.
Matthias schrieb: > Wo ist der Fehler und wie kann ich das abstellen? Vielleicht sind die Kontakte etwas korrodiert, weil der Strom durch den Schalter zu klein ist.
Matthias schrieb: > Allerdings wird der Interrupt öfter auch ausgelöst, wenn sich jemand der > Schaltung nur nähert aber der Öffner NICHT betätigt wird. Öffner ist Die Erklärung von negativer und positiver Logik auf der verlinkten Seite ist auch recht wackelig.
Das lange Kabel ist eine Antenne und generiert kleine Spannungsspitzen auf dem Kabel, die ausreichen den AVR aufzuwecken und den Interrupt auszulösen. Du könntest mit einem Kondensator entstören, d.h. mit dem verlängerst Du die Zeit bis sich die Spannung am Pin des AVR verändert, weil der Kondensator eine Auf-/Entladekurve hat. Durch diese Zeitverzögerung verteilst Du die "Energie" einer Störung auf mehr Zeit und die Spannung am Pin des AVR über-/unterschreitet nicht die Schaltschwelle bei einer ganz kleinen Energie, die diese Störungen üblicherweise haben. Im Prinzip kannst Du das ganz wunderbar kombinieren mit einem Entprellkondensator: https://www.mikrocontroller.net/articles/Entprellung#Einfacher_Taster Der sorgt auch einfach dafür, dass ein Tastendruck erst nach einer gewissen Dauer (50-100ms oder so) wahrgenommen wird, bis dahin "schluckt" der Kondensator den Tastendruck und unterdrückt damit auch kleine Spannungspitzen, die anderswo herkommen als vom Prellen des Tasters. Eine Störung hat nicht so viel Energie, dass sie den Kondensator aufladen könnte. Ansonsten finde ich das mit dem Öffner auch unschön. Du legst den AVR schlafen um Energie zu sparen, verbrennst aber dann doch Energie durch den ständigen Strom durch den geschlossenen Schalter.
Danke für die Antworten Das mit der Antenne und den kleinen Spannungsspitzen erscheint mir einleuchtend, denn ich hatte die Schaltung vorher schon mit negativer Logik aufgebaut und hatte den selben Effekt. Zur Erklärung: ich will eine Rezeptionsklingel mit einem optischen Signal erweitern. Dazu hatte ich zuerst so einen ähnlichen Mikroschalter https://www.conrad.de/de/mikroschalter-250-vac-6-a-1-x-ein-ein-cherry-switches-db1c-b1sc-tastend-1-st-703791.html?gclid=CIyjkrvw1skCFcaVGwod_7gONA&insert_kz=VQ&hk=SEM&WT.srch=1&WT.mc_id=google_pla&s_kwcid=AL!222!3!48256884177!!!g!!&ef_id=VmxdnAAAAPoDlU26:20151212174708:s in die Klingel eingebaut und die negative Logik/Schliesser verwendet. Hat aber den Klingelklöppel zu sehr beeinträchtigt und nicht mehr zuverlässig mechanisch geklingelt - zudem trat o.g. elektronisches Geisterklingeln auf. Habe dann den Klingelfuss neu gebaut, den Klöppel isoliert gelagert und ihn in nicht betätigter Stellung mit Magnet fixiert - so fungiert der Klingelfuss mit Klöppel als Öffner. Ausserdem ist so die Zeit länger, die der Klöppel unterwegs ist, als der Bruchteil einer Sekunde, in der er an die Glocke schlägt. Prinzipiell ist es kein Problem, wieder auf negative Logik umzubauen. Allerdings denke ich nicht, dass der kurze Kontakt Klöppel/Glocke ausreicht, den Interrupt auszulösen und mit Kondensator schon gar nicht.
"Habe dann den Klingelfuss neu gebaut, den Klöppel isoliert gelagert und ihn in nicht betätigter Stellung mit Magnet fixiert - so fungiert der Klingelfuss mit Klöppel als Öffner." Und das Ganze dann an nen µC... :-D You made my day...!
Wenn Du keinen Strom sparen musst, brauchst Du den AVR nicht schlafen legen und das mit dem Öffner ist auch kein Problem. Nur wenn Du den AVR mit Batterie betreiben möchtest und ihn deshalb schlafen legst, dann ist es nicht sinnvoll mit dem Öffner zu arbeiten.
Simpel schrieb: > Und das Ganze dann an nen µC... :-D > > You made my day...! Äusserst konstruktiver Beitrag - danke dafür Conny G. schrieb: > Wenn Du keinen Strom sparen musst, brauchst Du den AVR nicht schlafen > legen und das mit dem Öffner ist auch kein Problem. Das Schlafen legen ist/war ja nur ein Überbleibsel der ursprünglichen Schliesser Version. Werde auch wieder auf Schliesser umbauen, die Schaltung näher an der Glocke positionieren und mit einem geschirmten Kabel verbinden. Wenn dann immer noch Geisterläuten, werde ich den Kondensator testen und hoffen, dass die minimale Kontaktzeit Klöppel/Glocke ausreicht, den Interrupt auszulösen. Gibt es eigentlich Angaben, wie lange eine Pegeländerung anstehen muss, um den Interrupt auszulösen? Oder wäre es besser, den Attiny85 mit 8MHz laufen zu lassen und den Eingangspin permanent im Loop mit digitalRead abzufragen?
Simpel schrieb: > "Habe dann den Klingelfuss neu gebaut, den Klöppel isoliert gelagert und > ihn in nicht betätigter Stellung mit Magnet fixiert - so fungiert der > Klingelfuss mit Klöppel als Öffner." Dann ist es kein Wunder, das Du Störungen hast. Die Verbindung ist einfach zu unsicher. Vielleicht könntest Du einen kleinen Magnet am Klöppel oder inder Nähe anbringen und als Kontakt einen Reedkontakt verwenden.
Matthias schrieb: > Werde auch wieder auf Schliesser umbauen, die Schaltung näher an der > Glocke positionieren und mit einem geschirmten Kabel verbinden. Ein geschirmtes Kabel hilft, Schirm an Masse. Ich habe mal einen Touch-Schalter selber gebaut mit einem 1,5m Kabel die Sensorfläche entfernt. Das reagiert auch auf Annäherung ans Kabel oder auf das Einschalten der Espressomaschine, d.h. durch das Einschalten gab es einen Impuls auf dem Kabel, der sie gleich wieder ausschaltete :-) Schirm auf Masse und es hat funktioniert. > Wenn dann immer noch Geisterläuten, werde ich den Kondensator testen und > hoffen, dass die minimale Kontaktzeit Klöppel/Glocke ausreicht, den > Interrupt auszulösen. > Gibt es eigentlich Angaben, wie lange eine Pegeländerung anstehen muss, > um den Interrupt auszulösen? Das steht im Datenblatt des µC. Habe hier gerade ein Datenblatt eines Attiny45 rumfliegen, wenn ich das Diagramm in der Sektion "Interrupts" richtig interpretiere braucht es gerade mal 6 Taktzyklen um den Int auszulösen und 3 um den Pin Change zu erkennen. Das ist schnell, das sind nur µs. Allerdings kommt es darauf an, wielange der Impuls vom Klöppel dauert, ob Du einen vernünftigen Wert für den Kondensator finden kannst, damit das nicht weggeschluckt wird. Ohne Kondensator müsste das klappen, aber das prellt und sollte dringend entprellt werden, sonst hast Du immer ein paar Impulse davon. > Oder wäre es besser, den Attiny85 mit 8MHz laufen zu lassen und den > Eingangspin permanent im Loop mit digitalRead abzufragen? Das ändert es nicht, Du brauchst ja auch eine Zeit in der Schleife wieder bei der Pinabfrage zu sein, das ist eher weniger gründlich als der Interrupt. Auch abhängig von der Dauer des Impulses vom Klöppel. Wenn Du ein Oszilloskop hast könntest Du Dir den Signalverlauf mal ansehen. Das wäre sehr hilfreich das genauer zu wissen, sonst musst Du Wissen mit Experimentieren ersetzen. Oder Du zählst die Serie der Impulse mit ihrer Dauer und Pause auf dem Attiny mit und gibst es Dir danach über die serielle Schnittstelle aus. Meine Vermutung wäre, dass der Impuls des Klöppels gar nicht so kurz ist wie man meint. Millisekunden wären ja schon 1.000 Mikrosekunden.... für einen µC eine Ewigkeit :-)
Danke für Deine ausführlichen Antworten Conny G. schrieb: > sonst musst Du > Wissen mit Experimentieren ersetzen So wird's wohl werden, aber es steht ja der Weihnachtsurlaub an
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.