Arduino als Türöffner

neo243:
wie verbinde ich es mit dem Arduino und welche Libraries brauche ich dazu ?

IN1 und IN2 verbindest Du mit zwei digitalen Ausgängen des Arduino.
VCC ist 5V am Arduino und GND heißt auch am Arduino so.
Diese Relais schalten vermutlich "active Low", also inverse Logik (High am Arduino Ausgang bedeutet ein nicht geschaltetes Relais, Low ein geschaltetes Relais, einfach austesten). Eine Library braucht es nicht.

hi,

hilft vielleicht:

http://www.dhgate.com/5pcs-lot-new-5v-2-channel-relay-board-shield/p-ff80808138a2e7710138af6cad1a588d.html

gruß stefan

so läuft danke für eure Hilfe wenn man in1 auf high schaltet geht das erste Relais und bei in2 das 2te

Sobald ich den Trafo habe melde ich mich wieder.

Hi,

ich häng mich mal hier an :slight_smile:

Habe etwas ähnliches wie Neo aufgebaut. Allerdings ein wenig komplexer mit onewire Bus zum einlesen von iButtons und darüber ne Art Zugangskontrolle.
Außerdem nutze ich dazu dieses Relais-Board: 8-Channel 5V Relay Module for Arduino Raspberry Pi – SainSmart.com

Zusätzlich dazu habe ich noch an jeder Tür eine Anzeige (rote/grüne LED) die anzeigt ob der Zugang gewährt wird oder nicht. Diese LED's werden über ein 74HC595 Shift-Register angesteuert. Für die Türöffner nutze ich einen standard Klingeltrafo (12V AC), die Türöffner sind quasi auch Standard von EffEff.

Nun kommt es aber beim anziehen und abfallen der Spule im Türöffner offensichtlich zu Spannungspitzen. Leider spielen dann die Shiftregister ein wenig verrückt und ändern ihren Zustand. Reproduzieren lässt sich das Ganze indem ich einen losen Türöffner an den Klingeltrafo halte. Ich hatte mich extra für dieses RelaisBoard entschieden, da es eine Sperrdiode und offensichtlich auch einen Optokoppler besitzt.

Das Problem mit den undefinierbaren Zuständen im ShiftRegister habe ich mittlerweile durch kurzes ausschalten der LEDs zum Schaltzeitpunkt des Relais/Türöffners umgangen. Allerdings hätte ich die "Störung" gerne von meiner Schaltung fern gehalten.

Ich habe schon versucht den Kondensator wie im ShiftOut Tutorial (http://arduino.cc/en/Tutorial/ShiftOut) zu setzen und habe auch schon ein RC-Entstörglied auf die Primärseite (230V) des Klingeltrafos gesetzt. Beides leider ohne Erfolg.

Hat einer von euch noch eine Idee?

Danke und Gruß,
prego

PS: Im Anhang ein Bild von der damals noch nicht verdrahteten Anlage. Der Klingeltrafo hängt eine Hutschiene weiter unten in der selben Unterverteilung. Die iButton-Leser baumeln noch Testweise rum :wink: Auf den unteren Platinen erkennt ihr die ShiftRegister und vor den Klemmen sind jeweils die Status-LEDs zu erkennen. Basis ist ein Arduino Mega mit Ethernet-Shield.
Die Taster im oberen Bereich sind für Etagentaster und dergleichen vorgesehen.

IMG_2202.jpg

prego:
Nun kommt es aber beim anziehen und abfallen der Spule im Türöffner offensichtlich zu Spannungspitzen. Leider spielen dann die Shiftregister ein wenig verrückt und ändern ihren Zustand. Reproduzieren lässt sich das Ganze indem ich einen losen Türöffner an den Klingeltrafo halte. Ich hatte mich extra für dieses RelaisBoard entschieden, da es eine Sperrdiode und offensichtlich auch einen Optokoppler besitzt.

Das Board ist im allgemeinen als solches mit Optokoppler identifizierbar, wenn es eine inverse Schaltlogik für das Relais hat, also das Relais bei "HIGH" nicht geschaltet ist und bei "LOW" schaltet es. Diese Relais mit Optokoppler sind wesentlich störsicherer als solche ohne Optokoppler.

Trotzdem mußt Du beim Schalten von Gleichstrom mit induktiven Lasten (allem, was eine Spule drin hat) immer eine ausreichend dimensionierte Freilaufdiode vorsehen, hier bei Wikipedia unter dem Begriff "Schutzdiode" erklärt:

Spannungsverlauf bei einem geschalteten Gleichstrom mit und ohne Freilaufdiode siehe:

Die Freilaufdiode wird in Sperrrichtung(!) parallel zur angeschlossenen Last am Relaisausgang betrieben.
Und sie muß ausreichend dimensioniert sein, um die beim Abschalten entstehenden Ströme wenigstens kurzfristig zu vertragen.

Hi,

danke für deine Antwort :slight_smile:

jurs:
Das Board ist im allgemeinen als solches mit Optokoppler identifizierbar, wenn es eine inverse Schaltlogik für das Relais hat, also das Relais bei "HIGH" nicht geschaltet ist und bei "LOW" schaltet es. Diese Relais mit Optokoppler sind wesentlich störsicherer als solche ohne Optokoppler.

Das Board ist dann definitiv eins mit Optokoppler, da die Eingänge auf Low sein müssen, damit das Relais schaltet.

jurs:
Trotzdem mußt Du beim Schalten von Gleichstrom mit induktiven Lasten (allem, was eine Spule drin hat) immer eine ausreichend dimensionierte Freilaufdiode vorsehen,...

Klasse Info, das war mir bisher nicht klar...
Allerdings schalte ich ja Wechselstrom (12V AC) damit die Öffner surren. Genaugenommen könnte ich Sie auch mit Gleichstrom betreiben, allerdings sind sie dafür laut Datenblatt nicht vorgesehen.

Gibt es hier eine ähnliche Lösung? Oder kann ich vielleicht sogar dem Problem Herr werden, ohne auf Anschlusseite ein Bauteil parallel zu schalten?

Gruß,
prego

//edit:
Ach, jetzt habe ich dich glaube ich verstanden. Die Relais sind natürlich Gleochstromspulen. Allerdings ist diesen, wenn ich den Bestückungsplan der Relais-Platine richtig lese, bereits eine Freilaufdiode (D1-D8) vorgeschaltet, oder?

prego:
Allerdings schalte ich ja Wechselstrom (12V AC) damit die Öffner surren. Genaugenommen könnte ich Sie auch mit Gleichstrom betreiben, allerdings sind sie dafür laut Datenblatt nicht vorgesehen.

Gibt es hier eine ähnliche Lösung?

Für Wechselstrom fällt mir nur eine "Snubber"-Schaltung ein, zu deutsch: RC-Löschglied.

Siehe:

Dieser Snubber dient zur Funkenlöschung an den sich öffnenden Kontakten. Dort entsteht ja immer dann Funkenfeuer, wenn die Abschaltung des Realais nicht exakt im Strom-Nulldurchgang erfolgt. Aber fragt mich nicht, wie man die optimalen Werte für Kondensator und Widerstand errechnet. Da weiß ich nur, dass die an Spannung und Strom und die Induktivität der Spule angepaßt sein müssen.

Gerade mal gegoogelt und das gefunden:

Also wenn Du nicht nur Pi mal Daumen dimensionieren möchtest, müßtest Du die Induktivität der Schaltung kennen. Gibt's ein Datenblatt für Deinen Türöffner? Sind im Datenblatt vielleicht sogar Schaltungsbeispiele enthalten, vielleicht sogar mit Vorschlägen für Widerstand und Kondensator an einem RC-Löschglied?

Danke nochmal.

Also verbaut sind größtenteils http://secure.effeff.de/index.php?key=produktkatalog&lang=de&c=effeff&treeID=1219 - die beiden unterscheiden sich nur mechanisch, durch den "Schnapper". Allerdings sind im Gebäude auch andere Türöffner und ich kann nicht wirklich kontrollieren welche da genommen werden. Ist eine Büroetage wo die Türen durch iButton zugangsgeschützt sind.

Der Fehler tritt ja auch auf wenn ich die Relaisplatinen an denen die Öffner hängen abklemme (im ersten Bild oben Rechts die 10-pol Stecker abziehe) und dann einen Öffner direkt an den Klingeltrafo halte, zum Test. Vielleicht muss ich meine Schaltung selbst irgendwie enstören? Also dafür sorgen, dass die Spannungspitze der Türöffner meine Schaltung garnicht erreicht?

Vielleicht hast du ja dazu ein paar Ideen....

Grüße,
p

prego:
Vielleicht hast du ja dazu ein paar Ideen....

Also jetzt nochmal genau: WANN tritt die Störung genau auf?

  • Beim Einschalten des Türöffners?
  • Während der Türöffner eingeschaltet ist?
  • Beim Ausschalten de Türöffners?

Momentan gehe ich davon aus: Die Störung tritt in dem Augenblick auf, in in dem der Türöffner ausgeschaltet wird.

Und welche Spannung schaltest Du mit dem Relais?

  • die Primärspannung 230 V?
  • die Sekunderäspannung 8-12 V?`
    Wieviel Volt und wieviel Ampere werden geschaltet?

Oben schriebst Du auch schon was von RC-Glied.
Ist das die von mir angesprochene Snubber-Schaltung?
Welche konkreten Werte für den Kondensator und den Widerstand hast Du gewählt, ohne dass sich eine Reduziertung der Störungen einstellte?

prego:
Vielleicht muss ich meine Schaltung selbst irgendwie enstören? Also dafür sorgen, dass die Spannungspitze der Türöffner meine Schaltung garnicht erreicht?

Hast Du denn in Deiner Schaltung irgendwelche "langen Leitungen" mit 5V-Signalen? Oder sind die einzigen langen Leitungen an Deiner Schaltung die am Relais angeschlossenen zum Klingeltrafo und zum Türöffner?

Hi,

jurs:
Also jetzt nochmal genau: WANN tritt die Störung genau auf?

  • Beim Einschalten des Türöffners?
  • Während der Türöffner eingeschaltet ist?
  • Beim Ausschalten de Türöffners?

Momentan gehe ich davon aus: Die Störung tritt in dem Augenblick auf, in in dem der Türöffner ausgeschaltet wird.

Die Störung tritt im Moment des Einschaltens UND Ausschaltens auf.

jurs:
Und welche Spannung schaltest Du mit dem Relais?

  • die Primärspannung 230 V?
  • die Sekunderäspannung 8-12 V?`
    Wieviel Volt und wieviel Ampere werden geschaltet?

Ich schalte die 12V AC für den Türöffner. Das RC-Glied hatte ich noch rumliegen und habe das auf die Primärseite des Klingeltrafos gehangen.

jurs:
Oben schriebst Du auch schon was von RC-Glied.
Ist das die von mir angesprochene Snubber-Schaltung?
Welche konkreten Werte für den Kondensator und den Widerstand hast Du gewählt, ohne dass sich eine Reduziertung der Störungen einstellte?

Denke nein, da es ein irgendwann mal für was anderes bestelltes RC-Glied ist. Da müsste ich den Typ jetzt raussuchen.
Für den Kondensator habe ich die im Tutorial vorgeschlagenen 0,1?F genommen.

jurs:
Hast Du denn in Deiner Schaltung irgendwelche "langen Leitungen" mit 5V-Signalen? Oder sind die einzigen langen Leitungen an Deiner Schaltung die am Relais angeschlossenen zum Klingeltrafo und zum Türöffner?

Schau dir mal das Bild von meinem ersten Posting an. Dort kann man die Kabellängen denke ganz gut erkennen. 2x10pol zu den Relaisboards (rechts) mit etwas 20cm länge und - ich denke das könnte sogar ein Problem sein - ca 40cm Flachband 20pol zu den Lesern wo auch die ShiftRegister sitzen (unten).
Die Leitungen zu den Türöffnern sind durchs ganze Haus verlegt. Aufgrund der Freilaufdiode und der Optokoppler auf den Relaisboards sollte man das jha ausschließen können. Auch weil der Fehler ja genauso auftritt, wenn ich die Relaisboards abklemme und einen Türöffner zum Test direkt an den Klingeltrafo halte.

Hab ich jetzt einfach nur zu große Kabellängen und es "strahlt" mir deswegen in meine Schaltung?

prego:
Die Störung tritt im Moment des Einschaltens UND Ausschaltens auf.

Dass die Störung auch beim Einschalten auftritt, ist schlecht. Die Snubber-Schaltung hilft meines Erachtens nur gegen den Abreißfunken und damit Störungen beim Ausschalten. Ganz sicher bin ich mir dabei aber nicht.

prego:
Ich schalte die 12V AC für den Türöffner. Das RC-Glied hatte ich noch rumliegen und habe das auf die Primärseite des Klingeltrafos gehangen.

Wenn Du den Sekundärkreis schaltest, ist eine Snubberschaltung im Primärkreis völlig witzlos. Die Snubberschaltung muß natürlich dort sitzen, wo der Wechselstrom geschaltet wird und der Abreißfunken auftritt:

Wechselstrom an induktiver Last im Primärkreis schalten ==> Snubberschaltung im Primärkreis
Wechselstrom an induktiver Last im Sekundärkreis schalten ==> Snubberschaltung im Sekundärkreis

prego:
Denke nein, da es ein irgendwann mal für was anderes bestelltes RC-Glied ist. Da müsste ich den Typ jetzt raussuchen.
Für den Kondensator habe ich die im Tutorial vorgeschlagenen 0,1?F genommen.

Hm, also wenigstens angepaßt an Strom und Spannung sollte der Snubber wohl sein.
Wieviel Strom zieht denn der Türöffner nun an 12V Wechselstrom genau? Ein gutes halbes Ampere?

prego:
Schau dir mal das Bild von meinem ersten Posting an. Dort kann man die Kabellängen denke ganz gut erkennen. 2x10pol zu den Relaisboards (rechts) mit etwas 20cm länge und - ich denke das könnte sogar ein Problem sein - ca 40cm Flachband 20pol zu den Lesern wo auch die ShiftRegister sitzen (unten).

Du hast also 20cm und 40cm lange Antennen, die Funkstörungen empfangen, und die 40cm langen Antennen verursachen Störungen schon in Deinen eigenen Bauteilen. Stell mal ein UKW-Radio im Raum auf, was das für ein Prasseln beim Empfang verursachen wird, wenn Du den Türöffner betätigst! Deine Schaltung wird jenseits aller EMV-Spezifikationen sein und Funk auf allen Frequenzen in ganz erheblichem Ausmaß stören, wenn Du sogar schon auf Deinen eigenen Leitungen Probleme hast.

prego:
Die Leitungen zu den Türöffnern sind durchs ganze Haus verlegt. Aufgrund der Freilaufdiode und der Optokoppler auf den Relaisboards sollte man das jha ausschließen können.

Die Freilaufdiode auf dem Relaisboard kannst Du vergessen: Die verhindert nur die Störungen, die beim Schalten der 5V am Relais (Gleichstrom) beim Schalten der Relaisspule mit den 40mA Steuerstrom entstehen würden, mehr nicht. Insbesondere verhindert diese absolut keine Störungen, die Du beim Schalten der Lasten im Ausgangskreis erzeugst.

prego:
Auch weil der Fehler ja genauso auftritt, wenn ich die Relaisboards abklemme und einen Türöffner zum Test direkt an den Klingeltrafo halte.

Die Störungen kommen ja auch nicht von Deinem Relaisboard, sondern vom Schalten des Wechselstroms an der induktiven Last ohne Snubber.

prego:
Hab ich jetzt einfach nur zu große Kabellängen und es "strahlt" mir deswegen in meine Schaltung?

Bei EMV-Problemen gibt es immer zwei Seiten: Das Gerät, das die Störungen einfängt (Deine Schieberegister mit den Angeschlossenen "Antennen" in Form langer, nicht abgeschirmter Zuleitungen) und das Gerät, das die Störungen aussendet (Abreißfunken beim Schalten von Wechselstrom).

Und bei beidem könnte man ansetzen: Das gestörte Gerät kann besser gegen Störungen abgeschirmt werden. Beispielsweise indem bei den langen Anschlußleitungen geschirmte statt ungeschirmte Kabel zum Anschließen verwendet werden. Oder das ganze Gerät in ein geerdetes Metallgehäuse eingebaut wird. Oder man kann die Störungen besser vermeiden.

Als einfachsten wäre es vielleicht, zuerst mal tatsächlich die Snubber-Schaltung im geschalteten Stromkreis einzusetzen.

Bei 12 V und 0,5 A im geschalteten Sekundärkreis zum Beispiel mit einem Snubber von R= 2,7 Ohm, C= 0,27 µF (270 nF)

Die Kondensatoren für Snubber müssen besonders impulsfest sein, damit sie nicht in kürzester Zeit durchhauen. Ich glaube, dafür verwendet man die Bauform "Folienkondensator".

Wow - Danke!

Leider genau die Richtung die ich nicht gehofft hatte. Aber du hast natürlich völlig recht.

Die Türöffner ziehen übrigens kurzzeitig bis zu 1,5 Ampere (laut Spec), hatte ich vergessen dazu zu schreiben. Die Türöffner sind mit normalem DA-Kabel (4x2x0,8) angeschlossen. Der Schirm dieser Leitungen liegt zwar auf Maße, scheint aber nicht das Problem zu sein (Gegencheck mit abgezogenen RelaisBoards).

Schlussendlich geht es also wohl um die Steuerleitung meiner Schaltung die hier als Antenne wirkt. Vor allem da der Klingeltrafo nur eine Hutschiene drunter hängt und es quasi keine EMV-Trennung gibt. (Ich geh hier immer vom Testfall mit Türöffner direkt am Klingeltrafo aus).

Ich werde mir die Schnubberschaltung mal genauer ansehen, kann ich aber denke erst übers Wochenende.

Würde es reichen, wenn ich die Schnubberschaltung einfach an die Sekundärseite des Klingeltrafos hänge oder muss ich jeden Türöffner einzeln beschalten?

Vielen Dank für deine Hilfe :slight_smile:

prego:
Würde es reichen, wenn ich die Schnubberschaltung einfach an die Sekundärseite des Klingeltrafos hänge oder muss ich jeden Türöffner einzeln beschalten?

Typische Beschaltung des Snubbers ist:

  o U~                                         U~ o
  |                                               |
  |                                               |
  |                                               |
  |                                               |
  |              Relaisausgang                    |
  |                -----                          |
  +----+-----------o   o------+---- Türöffner ----+
       |           Relais     |
       |                      |
       |                      |
       |    ___          ||   |
       +---|___|---------||---+
                         ||
             R
                         C

Es muß immer der geschaltete Relaisausgang beschaltet werden, dort wo der Strom geschaltet wird.

Eine Alternative beim Schalten von Wechselstrom mit einem mechanischen Relais und Snubberschaltung wären Solid-State-Relais (Halbleiterrelais). Diese gibt es in Ausführungen, die im Nulldurchgang schalten und zusätzlich eine Varistor-Löschschaltung gleich mit im Relais enthalten haben.

prego:

jurs:
Das Board ist im allgemeinen als solches mit Optokoppler identifizierbar, wenn es eine inverse Schaltlogik für das Relais hat, also das Relais bei "HIGH" nicht geschaltet ist und bei "LOW" schaltet es. Diese Relais mit Optokoppler sind wesentlich störsicherer als solche ohne Optokoppler.

Das Board ist dann definitiv eins mit Optokoppler, da die Eingänge auf Low sein müssen, damit das Relais schaltet.

Das dann aber unschön... Heißt ja im Umkehrschluss, wenn das Relais nicht mehr bestromt ist, öffnet es die Tür, richtig?
-> Arduino fällt aus, Tür offen :astonished:

maeckes:
Das dann aber unschön... Heißt ja im Umkehrschluss, wenn das Relais nicht mehr bestromt ist, öffnet es die Tür, richtig?
-> Arduino fällt aus, Tür offen :astonished:

Nein, ohne Strom schaltet überhaupt kein Relais!

Und das völlig unabhängig davon, ob es mit Strom bei "active high" oder "active low" schaltet.

Bei den "active low" schaltenden Relais muß nur bei der Initialisierung eine bestimmte Sequenz in der setup() Funktion eingehalten werden, damit es immer dann, wenn es beim Einschalten Strom erhält, nicht einmal kurz klappert, also für Sekundenbruchteile durchschaltet. Das ist aber rein softwaretechnisch völlig einwandfrei lösbar, so daß auch ein "active low" schaltendes Relais immer nur dann schaltet, wenn es auch schalten soll.

jurs:
Eine Alternative beim Schalten von Wechselstrom mit einem mechanischen Relais und Snubberschaltung wären Solid-State-Relais (Halbleiterrelais). Diese gibt es in Ausführungen, die im Nulldurchgang schalten und zusätzlich eine Varistor-Löschschaltung gleich mit im Relais enthalten haben.

Der Sharp S202S12 wäre da so ein Kandidat, allerdings nicht ganz billig und ein bisschen überkanditelt für einen 24V Klingeltrafo :slight_smile:

Und ich würde im Zweifelsfall auch ein Solid-State-Relais auswählen, das für den gewünschten Kleinspannungsbereich geeignet ist und laut Datenblatt des Herstellers nicht hauptsächlich nur für eine "Recommended Load Supply Voltage" von 240 Volt empfohlen wird.

Das Relais wäre sehr gut, wenn er den Primärkreis seines Klingeltrafos schalten würde und nicht den Sekundärkreis.

Hallo zusammen,

ich hatte diesen Thread ganz vergessen aber möchte zumindest mal die Lösung posten. Das Problem entsteht offensichtlich an den Shift-Registern selbst. Der Data Eingang (STORE, Pin 12) bekommt beim schalten der Relais durch die Spule des Klingeltrafos zu viele Störungen. Liegt in meinem Fall am schlechten Design und zu langen ShiftOut-Leitungen zu den Shiftregistern.
Ich habe im aktuellen Layout nur noch sehr kurze Strecken was das Problem zumindest eindämmt.

Komplett lösen lässt sich das Ganze über einen Pull-Up mit Entstörkondensator an Pin 12. Genaues dazu findet ihr hier: Noise problems in circuits using 74HC595 shift register

Danke für eure zahlreichen Antworten :slight_smile:

Gruß,
p

Hi,
Du wolltest ja erst die Ursache mit der Verwendung eines Snubber beheben, damit Störimpulse erst gar nicht erzeugt werden.
Auf der anderen Seite sollte die Schaltung schon von Haus aus schaltungtechnisch von Störungen geschützt werden.

Der Arduino machte wohl keine Probleme, nur die Shift IC's hatten einen "Schluckauf".
Ich hatte z.b in deinem Fotos keine 100nf zwischen Pin 8 und 16 (VCC und Masse) gesehen, was bei jedem IC quasi usus sein sollte.

Hast du die 100nf zwischen Pin 8 und 16 vorher schon eingebaut, und ging nicht - Oder war der Tiefpass (Pin 12) die Lösung ?

Bin nur neugierig :wink:

Grüße Rudi