Forum: Mikrocontroller und Digitale Elektronik EMV: Endschalter werden durch Motor ausgelöst


von Georg (Gast)


Lesenswert?

Hallo,

ich habe eine kleine Bastelei, die eine Zange automatisch betätigt.


Die Schaltung läuft mit einem ATTiny13A, einem kleinen DC Motor, einem 
L293D Motortreiber, einem Taster und zwei Endschaltern. Wird der Taster 
betätigt, fährt der Motor los, bis der erste Endschalter erreicht ist. 
Dann fährt er in die andere Richtung zurück, bis der andere Endschalter 
erreicht ist.


Wenn der Motor nicht stark belastet wird, funktioniert das auch. Aber 
bei größerer Last steigt der Strom auf ca. 700mA und es kommt manchmal 
vor, dass die Endschalter erkannt werden, obwohl sie nicht erreicht 
werden. Ich habe mal 100nF zwischen die Motorpins gelötet und nochmal 
jeweils 100nF von den Motorpins zum Motorgehäuse. Das hat das Problem 
verbessert aber nicht gelöst. Hat jemand einen Tipp, wie ich das ganze 
entstört bekomme?

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


Lesenswert?

Georg schrieb:
> Hat jemand einen Tipp, wie ich das ganze entstört bekomme?
Wenn du es analog (Kabelführung, Filterung) nicht gelöst bekommst, dann 
solltest du über eine brauchbare Software-Entprellung/Filterung 
nachdenken.

Genaueres kann man nur mit genaueren Angaben (Schaltplan, Layout, 
Aufbau, Programm) sagen.

: Bearbeitet durch Moderator
von Rest (Gast)


Lesenswert?

Georg schrieb:
> Die Schaltung läuft mit einem ATTiny13A, einem kleinen DC Motor, einem
> L293D Motortreiber, einem Taster und zwei Endschaltern. Wird der Taster
> betätigt, fährt der Motor los, bis der erste Endschalter erreicht ist.
> Dann fährt er in die andere Richtung zurück, bis der andere Endschalter
> erreicht ist.

Wie ist der Endschalter entprellt? 
https://www.mikrocontroller.net/articles/Entprellung hilft natürlich 
auch bei EMV-Störungen wenn es sauber programmiert ist.

Wie sind die Endschalter elektronisch angelegt? Pullup/Pulldown wenn ja 
wie groß. In der Mechatronik mit Motoren und Frequenzumrichtern nimmt 
man oft Stromschleifen (Analoge Stromschnittstelle) oder Optokoppler. So 
kann man Kabelbrüche erkennen und stromgeregelte sind 
störunempfindlicher als spannungsgeregelte.


Georg schrieb:
> Ich habe mal 100nF zwischen die Motorpins gelötet und nochmal
> jeweils 100nF von den Motorpins zum Motorgehäuse. Das hat das Problem
> verbessert aber nicht gelöst. Hat jemand einen Tipp, wie ich das ganze
> entstört bekomme?

Sind die 100nF einfach mal blind probiert? Wenn müsste man das mit einem 
schnellen Oszi bewerten ob das überhaupt was bringt.

Neben der Entstörung des Motors könntest du mit einem einfachen RC-Glied 
versuchen die Endschalter zu entstören. Was sind  das für Endschalter 
(mechanisch / induktiv)?

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Georg schrieb:
> Ich habe mal 100nF zwischen die Motorpins gelötet und nochmal
> jeweils 100nF von den Motorpins zum Motorgehäuse.

Die kommen erst dann richtig zur Wirkung, wenn du den Motor noch über 
Drosseln führst.

von U. M. (oeletronika)


Lesenswert?

Georg schrieb:
> Wenn der Motor nicht stark belastet wird, funktioniert das auch. Aber
> bei größerer Last steigt der Strom auf ca. 700mA und es kommt manchmal
> vor, dass die Endschalter erkannt werden, obwohl sie nicht erreicht
> werden. Ich habe mal 100nF zwischen die Motorpins gelötet und nochmal
> jeweils 100nF von den Motorpins zum Motorgehäuse. Das hat das Problem
> verbessert aber nicht gelöst. Hat jemand einen Tipp, wie ich das ganze
> entstört bekomme?

von U. M. (oeletronika)


Lesenswert?

Hallo,
> Georg schrieb:
> Wenn der Motor nicht stark belastet wird, funktioniert das auch. Aber
> bei größerer Last steigt der Strom auf ca. 700mA und es kommt manchmal
> vor, dass die Endschalter erkannt werden, obwohl sie nicht erreicht
> werden.
Der Motorstrom mit seinen Zuleitungen ist natürlich eine  Störquelle.
Es kann aber auch noch andere Störungen von außen geben.
Diese Störungen solltest du schon versuchen zu reduzieren, aber das ist 
nur ein Teil der Lösung.
Die Endschalter haben wohl ein Stück zuleitung, die als Antenne due 
Störspannungen einfangen.

> Ich habe mal 100nF zwischen die Motorpins gelötet und nochmal
> jeweils 100nF von den Motorpins zum Motorgehäuse. Das hat das Problem
> verbessert aber nicht gelöst. Hat jemand einen Tipp, wie ich das ganze
> entstört bekomme?
Um das Verhältnis Signal-Störspannung (SNR) ist bei dir offenbar zu 
klein.
Um es zu vergößern, kannst du folgende Sacghen machen:
1) Signalleistung erhöhen, z.B. indem du einen kleineren Pullup-R 
einsetzt.
2) Transiente Störungen (Spikes) mit einem RC-Tiefpass ausfiltern
3) Leitungen verdrillen https://de.wikipedia.org/wiki/Twisted-Pair-Kabel
4) Schirmung verwenden
5) Software störsicherer machen (z.B. auch um Spikes zu unterdrücken)

Gruß Öletronika

von Georg (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank für die ganzen Tipps. Leider komme ich immer noch auf keinen 
grünen Zweig.

Im Anhang ist der Schaltplan und der mechanische Aufbau zu sehen.

Was ich zwischenzeitlich versucht habe:
- Verdrillen der Leitungen
- Tiefpass aus 10k und 100nF auf die µC Eingänge geschaltet (Habe SMD 
Bauteile auf die Unterseite der Platine gelötet, möglichst nah am µC. Im 
Schaltplan noch nicht eingezeichnet)
- Verringerung der Pulldowns von 12k auf 2k2

Ich möchte die Endschalter ja möglichst schnell erkennen. Um das Problem 
per Software zu lösen, müsste ich das Signal aber eine Weile beobachten, 
bis es dauerhaft eindeutig ist. Könnte ich trotzdem nochmal versuchen, 
aber irgendwie hätte ich das ganze gerne stabiler...

Wie kann das Ganze denn nur so empfindlich sein!? Selbst mit Filter auf 
den Eingängen... Sieht vielleicht jemand einen offensichtlichen Fehler, 
den ich gemacht habe?

von Der Andere (Gast)


Lesenswert?

Ich sehe auf den Bildern nicht daß du pro IC 100nf keramisch als 
Abblockkondensator für die Versorgung hast.

Als zweites wie ist deine Masse? Hier wichtig:
Getrennte Stromversorgung und vor allem Masseführung für den 
Motorstromkreis (incl L293) und den µC Teil direkt von der 
Stromversorgung aus.

Ansonsten können kleine Spikes auf der Masse dafür sorgen daß dein µC 
ein High an den Eingängen erkennt.

von Georg (Gast)


Lesenswert?

Oh man bin ich doof! Der µC hatte 100nF drin (der blaue Bobbel über dem 
8-Pin IC) aber für den L293D habe ich den C vergessen. Jetzt habe ich 
den ergänzt und alles funktioniert! VIELEN VIELEN DANK!

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


Lesenswert?

Georg schrieb:
> aber für den L293D habe ich den C vergessen.
> Jetzt habe ich den ergänzt und alles funktioniert!
Ich würde trotzdem vorschlagen, noch zusätzlich einen Pufferelko im 
Bereich um 100µF mit rein zu bauen und die Software ein wenig 
störumempfindlicher zu machen. So einen externen Schalter würde ich 
niemals einfach so direkt abfragen, sondern immer entprellen/filtern.

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.