Hallo,
ich habe ein Problem. Mir sterben an einem ATMega-32 reihenweise die
Eingänge des Controllers und ich bin auf der Suche nach dem Grund dazu.
Das besondere an diesem Eingang ist, dass er durch ein Relais geschaltet
wird.
Als Relais kommt ein KFZ-Relais zur Verwendung, welche massenweise in
Autos eingesetzt werden. Diese Schaltung wird aber nicht im Auto
betrieben. Stromversorgung erfolgt über ein Steckernetzteil 12V, einem
7805 inkl. der Standardbeschaltung wie im Tutorial.
Was muss man beachten, wenn man ein Relais an den Eingang eines µC
hängt? Meiner Überlegung nach ist das ja eigentlich nur ein normaler
Schalter, der halt durch einen Magneten bewegt wird. Von daher habe ich
ihn wie jeden anderen Taster auch angeschlossen (siehe 1. Bild).
So geht der Eingang nach wenigen Schaltvorgängen (< 10) kaputt und
liefert dann nur noch zufällige Werte.
Dann war meine Überlegung, dass man, wenn man ein Relais schaltet, ja
eine Freilaufdiode einsetzt um den induzierten Strom zu vernichten. (2.
Bild) Also habe ich auch das gemacht. Hat mir aber auch nicht
weitergeholfen, der Eingang geht trotzdem kaputt.
Bei den Bilder hab ich es natürlich auf das Wesentliche reduziert. In
Wirklichkeit habe ich in dem 12V-Teil keinen Taster, sondern einen
kapazitiven Näherungssensor, der mir, je nachdem, ob geschaltet, 12V
liefert, oder halt nicht.
Vielen Dank!
Jens
Geordnet nach Wichtigkeit:
1. Lege direkt in die Leitung zu PA3 einen Widerstand (1k - 3k3)
2. Füge Ableitdioden an PA3 hinzu. Eine Diode gegen Vcc und eine Diode
gegen GND, natürlich beide in Sperrichtung. Der AVR hat sowas aber auch
schon intern.
Das ist wahrscheinlich auch das, was immer putt geht.
+
|
---
/ \
--- 1k - 3k3
MCIn | ------
o-------o-----| |-----o vom Kontakt
| ------
|
---
/ \
---
|
GND |
--------o------------------
3. Wenns immer noch nicht reicht, füge noch einen 'Funkenlösch-C' in der
Grösse von 5n - 47n hinzu, parallel zur unteren Diode. Das kann aber den
Puls ein wenig schwammiger machen. Wenns allerdings auf ein paar 10uS
nicht ankommt, macht das nix.
moinsen,
deine eingezeichnet "freiluf diode" muss dirrekt ans relais!!!
die maßnahmen von Matthias Sch. (Firma: Matzetronics) sind voll i.o.
falls das immer noch net war, kann man die schaltung ja durchaus noch
aufblähen und mit nem OP arbeiten....
ansosnten würde ich mir mal die spannungsquelle näher betrachen!!!
mfg timo
Jens T. schrieb:> Dann war meine Überlegung, dass man, wenn man ein Relais schaltet, ja> eine Freilaufdiode einsetzt um den induzierten Strom zu vernichten. (2.> Bild) Also habe ich auch das gemacht. Hat mir aber auch nicht> weitergeholfen, der Eingang geht trotzdem kaputt.
ohh - die närrischen Tage....oder fehlen wohl noch ein paar
Grundlagen???
Frage 1: Wo kommt die "Freilaufdiode" hin?
Antwort a () => an die Spule
Antwort b () => an den Kontakt
Frage 2: Bist du sicher das du den Port nicht per SW setzt und dann
mit dem harten Schalten gegen GND in den "Stromtot" treibst???
nitraM
Hallo Matthias,
vielen Dank für die schnelle Antwort. Nur, um sicherzugehen, dass ich
alles richtig verstanden habe. Mein Pullupwiderstand bleibt und ich
schalte gegen GND?
Ich hab das mal in den Schaltplan eingefügt. Ist das richtig so?
Vielen Dank!
Jens
Oha, die Antworten kommen ja Schlag auf Schlag.
@citb: die Spulenspannung kommt aus dem selben Netzteil.
@Martin: Mit närrischen Tagen hab ich hier nichts am Hut. Von daher ist
das zweite der Fall, mir fehlen Grundlagen auf dem Gebiet. Richtig.
Zu Frage 1: wenn Du so fragst, hab ich es vermutlich falsch gemacht und
die Diode würde über die Spule gehören.
Zu Frage 2: Ja, da bin ich sicher.
@Winfried: Dass ich keinen Hund oder Käfer in der Software habe, da bin
ich sicher. Verdrahtung geprüft. Leitungslänge zum Relais < 15 cm.
Vielen Dank für die Antworten bis hier her.
Jens
Den 10k Pullup würde ich direkt am Kontakt lassen, sonst erreicht du mit
3k3 in der Portleitung evtl. nicht mehr einen richtigen Low Pegel. Sonst
sieht das sehr gut aus. Ich würde allerdings nicht die langsamen 4004
nehmen, sondern den Klassiker 4148 oder 4151.
citb schrieb:> Wo bekommt das Relais seine Spulenspannung her?> Aus dem gleichen Netzteil?
Das kann ich mir nicht vorstellen, dann wär ein Relais ja völlig
überflüssig und ein Optokoppler bzw. ein Spannnungsteiler die richtige
Wahl.
Jens T. schrieb:> Dass ich keinen Hund oder Käfer in der Software habe, da bin> ich sicher.
In der realen Welt stimmt diese Aussage leider zu geschätzten 75% leider
nie...
BUGHUNTER
Die beschaltung mit den zwei Dioden kannst du die sparen, das hat der
ATMEGA bereits drin. Allerdings würde ich einen 100nf Parallel zum
Eingang (gegen Masse) und der Spule vom Relais eine Freilaufdiode
gönnen.
Jens T. schrieb:> Wir haben das Relais genommen, weil es halt gerade verfügbar> war.
Dann rate ich dir zum Optokoppler. Das ist problemlos und es wird nichts
mehr kaputtgehen. Auf der 12 Volt Seite beschränkt sich das dann auf das
Ausrechnen des Vorwiderstands für eine LED und auf der Portseite fällt
alles bis auf den 10k weg :-)
Da ich begeisterter Recycler bin: Optokoppler sind in alten Telefonen,
Faxgeräten und Schaltnetzteilen leicht zu finden.
Hm, Jungs, Vorwiderstand, Ableitdioden, Funkenlöschkondi?
Das alles für einen Kontakt, der einen 10k Pullup von 5V nach Masse
zieht?
Gegen die Freilaufdiode an der Spule ist ja nichts zu sagen, aber der
Rest?
Ich tippe auch mal da drauf, daß da im Programm was nicht stimmt.
Oliver
Die Eingänge/Ausgänge vom Mikrocontroller sind in der Regel wenig
belastbar und nicht für eine raue Umgebung ausgelegt. Hier gibt es
einige Applikationshinweise zur Anbindung an die Industrielle Umgebung:
http://www.ichaus.com/mcu_interface. Leider nur in Englisch, aber die
Datenblätter gibt es auch in Deutsch.
Hallo,
ich habe einen ähnlichen Fall. Ich möchte ein Relais (Schließer) als
Input am AVR nutzen. Ich hätte diesen einfach gegen GND mit dem Portpin
geschalten und den internen Pullup.
Nun habe ich aber diesen Thread gelesen und habe Angst, dass ich damit
meinem AVR kille. Muss ich denn noch was beachten oder dürfte da nichts
passieren?
ich spendiere einen Pin immer einen Widerstand. So kann man die internen
Dioden schützen damit diese ihre Aufgabe erfüllen können, außerdem
verhindert man einen Überlastung des Pins wenn man etwas falsch
konfiguriert.
Ein Relais als Eingang ist schon ein komisches vorhaben, weil der
Kontakt beim Öffnen auch Müll erzeugen kann, wenn das ohne
Schutzmaßnahmen auf den Pin kommt himmelts den.
Die Diode muss antiparallel zur Magnetspule des Relais im die
Induktionsspannung nochmals durch die Spule zu schicken, dadurch wird
die dann abgebaut. Dieser Impuls kommt meist durch den 7805 durch
deswegen dem noch einen kleinen LC Filter am Eingang spendieren.
Naja das Relais hat auch 2 Spulen eine zum schließen und eine zum öffnen
und diese sollen dann einfach einen Pin schalten, da ich vom KFZ ein
Signal hab auf 2 Leitungen wo dann entweder Leitung 1 + und Leitung 2 -
oder andersrum herrscht. Diese Leitungen an das Relais und dann hab ich
für diese Zeit den Pin high und beim anderen Fall den Pin low und spare
mir sogar noch irgendwelche Schutzbeschaltung vom KFZ Signal und
galvanisch getrennt ist dies auch noch.
Thomas O. schrieb:> geht es um Tür auf/zu Erkennung?
nicht ganz aber nah dran ... Hintergrund ist eine Coming / Leaving Home
Function nachzurüsten.
An dem Auto wurde Funk nachgerüstet. Dabei sind jedoch nur 3 von 4
Servos angeschloßen (Auto ist dreitürer) und somit wäre der vierte zur
Erkennung ob offen oder nicht.
Würde das mit dem Relais als Eingang gehen oder brauche ich noch
Schutzbeschaltung? Abgesehen von der Freilaufdiode