Forum: Mikrocontroller und Digitale Elektronik Atmega schaltet Input zusammen mit Licht


von Sebastian (Gast)


Angehängte Dateien:

Lesenswert?

Liebe Forengemeinde,

zuerst muss ich gestehen das ich weniger Elektriker bzw. 
Elektrotechniker als vielmehr Informatiker bin. Daher bitte ich ein 
wenig um Nachsicht was die genaue Beschreibung meines Problems oder 
vielleicht die Einfachheit des Anliegens angeht. Ich habe das Forum wie 
auch das Internet schon intensiv bemüht aber leider keine 
funktionierende Lösung gefunden (oder aber diese nicht auf mein Problem 
transferieren können). Folgende Ausgangslage:

Ich versuche mit einem Atmega8A eine Art externen Watchdog umzusetzen. 
Die Schaltung soll folgendes tun: Lade und warte in der Hautpschleife. 
Wird ein Schalter gedrückt registriere das Signal und schalte einen 
Ausgang auf High. An diesem Ausgang ist ein externes Gerät angeschlossen 
das dieses Signal registriert und nun intern eine Aktion ausführen soll. 
Ist diese Aktion erfolgreich sendet das externe Gerät auf einem zweiten 
Ausgang ein High welches der Atmega wieder registriert. Sobald der 
Schalter gedrückt wurde läuft parallel ein Timer welcher drei Sekunden 
auf die Antwort des externen Gerätes wartet. Erfolgt diese Antwort nicht 
innerhalb der Zeit so schaltet der Atmega einen weiteren Ausgang an 
welchem ein Relai mit dem externen Gerät hängt. Damit wird dann das 
externe Gerät ausgeschaltet. Bis dahin funktioniert auch alles 
problemlos.

In meinem ersten Aufbau (output2.png) hatte ich den Eingang (im übrigen 
Active LOW) lediglich mit einem Pull-Up Widerstand versehen. Hier war 
das Problem das nur durch minimale statische Entladung im Umfeld der 
Schaltung der Atmega geschaltet hat. Nach ein weniger Recherche zum 
Thema Entprellen und Beschaltung der Eingänge habe ich gefunden das hier 
ein weiterer Widerstand sowie ein Kondensator Sinn machen (output.png). 
Damit war auch das Problem der elektrostatischen Auf bzw. Entladung 
gelöst.

Nun habe ich aber das Problem das sobald ich das Licht ausschalte 
(Raumbeleuchtung Halogen mit Trafo) der Atmega auch schaltet. Selbst 
wenn die komplette Schaltung vom Netz getrennt ist sehe ich mit dem Oszi 
noch Spannungsspitzen am Eingang (zwar nur im Mikrosekundenbereich). 
Meine Frage ist nun wie ich diesen Eingang möglichst robust bekomme. 
Reicht es aus die Kapazität des Kondensators am Eingang zu erhöhen? Gibt 
es da einen Richtwert? Oder müsste man rechnen? Oder sollte ich komplett 
auf z.B. eine Optokoppler umstellen um den Eingang galvanisch zu 
trennen? Eine Alternative wäre ja noch die Nutzung von gewissen ESD 
Schutz Bausteinen? Hat da jemand Erfahrung? Mir ist natürlich sehr daran 
gelegen das der Input auch nur schaltet wenn der Taster gedrückt wird, 
da sonst das externe Gerät auch fälschlicherweise ausgeschaltet wird ...

Vielen Dank für die Hilfe

Grüße

von MaWin (Gast)


Lesenswert?

Sebastian schrieb:
> Nun habe ich aber das Problem das sobald ich das Licht ausschalte
> (Raumbeleuchtung Halogen mit Trafo) der Atmega auch schaltet. Selbst
> wenn die komplette Schaltung vom Netz getrennt ist

Tja, so ist das mit EMV, Kabel sind auch Sende/Empfangsantennen und 
Schalter an (Halogen)Trafos erzeugen Funken, es heisst ja nicht ohne 
Grund Funk.

Kurze Kabel, Hin- und Rückleitung verdrillen, RC-Kombination vor den 
Eingang, z.B. 10k in die Leitung und 10nF nach Masse, hilft, ein 
brauchbares Netzteil dazu, auch über Ausgänge können Störungen zurück 
kommen, vor allem Relais, die bekommen eine Freilaufdiode an die Spule 
und einen Snubber an den Kontakt. EMV ist letztlich eine Wissenschaft.

von Paul Baumann (Gast)


Lesenswert?

Setz Dich mal mit dem Oszi auf die Betriebsspannung des Kontrollers.
Eventuell kommen die "Hiebe" von dort und resetten ihn.

Zeichne mal auf, wie die Spannungsversorgung aussieht.

MfG Paul

von Peter D. (peda)


Lesenswert?

Sebastian schrieb:
> Meine Frage ist nun wie ich diesen Eingang möglichst robust bekomme.

Nimm eine gute SW-Entprellung, die unterdrückt alle kurzen Pulse, egal 
ob Prellen oder EMV.
Das RC-Glied entfällt dann natürlich.

von Sebastian (Gast)


Lesenswert?

MaWin schrieb:
> Kurze Kabel, Hin- und Rückleitung verdrillen, RC-Kombination vor den
> Eingang, z.B. 10k in die Leitung und 10nF nach Masse, hilft, ein
> brauchbares Netzteil dazu, auch über Ausgänge können Störungen zurück
> kommen, vor allem Relais, die bekommen eine Freilaufdiode an die Spule
> und einen Snubber an den Kontakt. EMV ist letztlich eine Wissenschaft.

Danke für die schnelle Antwort. Das mit den Kabeln versuche ich auf 
jeden Fall. Am Eingang habe ich bereits einen 10k als PullUp und einen 
150R direkt am Eingang, sowei einen 100nF nach Masse. Sind 100nF zu 
wenig? Die Relais haben Freilaufdioden - und waren im letzten Test auch 
nicht mehr Teil der Schaltung - um diese Fehlerquelle schon zu 
eliminieren.

von Sebastian (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Nimm eine gute SW-Entprellung, die unterdrückt alle kurzen Pulse, egal
> ob Prellen oder EMV.
> Das RC-Glied entfällt dann natürlich.

Ja das ist mir hier im Forum auch schon über den Weg gelaufen - wobei 
ich dies gerne als "letzte" Alternative nutzen möchte damit der µC 
wirklich nur so wenig wie möglich machen muss ... klar wenn es sich 
hardwareseitig nicht lösen lässt muss man die Kröte schlucken ...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Sebastian schrieb:
> Nach ein weniger Recherche zum Thema Entprellen und Beschaltung der
> Eingänge habe ich gefunden das hier ein weiterer Widerstand sowie ein
> Kondensator Sinn machen (output.png).
"Sinn machen" ist anders:
Entprellung macht man im echten Leben per Software. Das ist billiger. 
Und leichter zu ändern.

Welche Leitungslängen hast du denn in deinem System? Wie sieht der 
Aufbau aus? Welche Masseverbindungen hast du?

von Sebastian B. (sebastianburck)


Lesenswert?

Lothar Miller schrieb:
> "Sinn machen" ist anders:
> Entprellung macht man im echten Leben per Software. Das ist billiger.
> Und leichter zu ändern.

Okay - war mir bis dahin nicht bewusst. Ich war immer der Meinung das 
alles was in Hardware umzusetzen ist die Software nur "robuster" macht.

 Lothar Miller schrieb:
> Welche Leitungslängen hast du denn in deinem System? Wie sieht der
> Aufbau aus? Welche Masseverbindungen hast du?

Ist aktuell noch einem Steckboard verdrahtet und die Leitungslängen sind 
nicht wirklich optimal - also das RC Glied sitzt nicht direkt am Eingang 
(ca. 15cm weit weg) - wäre das ein Ansatz? In der späteren Umsetzung 
wird es aber auch sein das die Leitung zum Schalter sicherlich 2m lang 
sein wird - lohnt sich dann hier der Einsatz von z.B. Cat5 Kabel ?

von Karl H. (kbuchegg)


Lesenswert?

>  wobei ich dies gerne als "letzte" Alternative

Quatsch.
Eine ordentliche Softwareentprellung ist die 'erste' ALternative, die 
man einsetzt.


> möchte damit der µC wirklich nur so wenig wie möglich machen muss
Ob dein µC 99.9% oder 99.99% seiner Zeit Däumchen dreht, ist dem µC 
herzlich egal. Und du kriegst von Atmel auch kein Geld zurück.


Das hat mich in deiner ersten Beschaltung schon stutzig gemacht, dass du 
einen externen Pullup-Widerstand einsetzt. 10k ist von der Größenordnung 
her ca. dasselbe wie der eingebaute Pullup, den du nur aktivieren 
müsstest.

: Bearbeitet durch User
von M. B. (Firma: TH Nürnberg) (ohmen)


Lesenswert?

Sind die Pins 20 und 22 auch angeschlossen?

von Sebastian B. (sebastianburck)


Lesenswert?

M. B. schrieb:
> Sind die Pins 20 und 22 auch angeschlossen?

Der µC befindet sich aktuell im STK500 - ich bin bis dato davon 
ausgegangen das die ADC Pins dann auch nach 5V gezogen werden. Werde das 
nochmal überprüfen.

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
Noch kein Account? Hier anmelden.