Forum: Mikrocontroller und Digitale Elektronik Problem mit bürstenlosen gleichstrom Motor und Infrarot Sensor


von Liam H. (liam_h)


Lesenswert?

Moin,
ich bin neu hier und hoffe, dass ich beim Erstellen meines Beitrags 
alles richtig gemacht habe.

Ich habe folgenden Sachverhalt:

Für ein Uni-Projekt möchte ich eine Pumpe mit einer TV-Fernbedienung an 
und ausschalten können. Dafür verwende ich einen Infrarot Sensor, einen 
bürstenlosen 5V gleichstrom Motor, einen Arduino Mega und ein Relais. 
Genaue Details zu den Bauteilen stehen unten. Das Relais wurde über 
verschiedene Wege angeschlossen. Dafür habe ich das folgende Tutorial 
verwendet und alle drei Möglichkeiten durchprobiert:
https://www.kollino.de/arduino/4-8-kanal-relais-anleitung/#
Der aktuelle Stand ist mit galvanischer Trennung wie in Option 3 des 
Tutorials. Wie gesagt, ich habe alle durchprobiert und alle führen zum 
selben Fehler.

Problem:
Wenn ich am Relais die Stromversorgung des Motors wegnehme, dann 
Schaltet das Relais einwandfrei. Sobald ich jedoch den Motor anschließe, 
kann ich das Relais nur noch an und nicht wieder ausschalten. Ich habe 
mir über den seriellen Monitor des Arduinos die Codes der Fernbedienung 
anzeigen lassen. Sobald der Motor läuft, erkennt der IR-Sensor keine 
gültigen Codes mehr. Ein Freund hat mir erklärt, dass sich das Relais 
möglicherweise selbst erhält. Das halte ich auch für möglich, allerdings 
erklärt sich mir nicht, warum mein IR-Sensor dann spinnt und wie ich die 
selbsterhaltung unterbrechen kann. Ich habe bereits die Stromquellen 
separiert und Transistoren und Widerstände kombiniert. Leider ohne 
Erfolg. Für Tipps und Hinweise wäre ich wirklich dankbar. Ich habe 
bereits alle Komponenten ausgetauscht und kann mir nicht erklären, woran 
es liegt.

Link zu den Bauteilen:

https://www.amazon.de/gp/product/B07DDPRH8M/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1

https://www.amazon.de/gp/product/B07TJQSHR2/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1

Link zum Aufbau (Dort nur ein einfaches Relais ohne Galvanische 
Trennung):

https://imgur.com/UFgcipP

Link zum Code:

https://pastebin.com/3eVrfPwW

Video des Problems:

https://streamable.com/cur7ir

von Stefan F. (Gast)


Lesenswert?

Liam H. schrieb:
> Sobald der Motor läuft, erkennt der IR-Sensor
> keine gültigen Codes mehr.

Das deutet auf ein klassisches EMV Problem hin. Vermutlich fehlt am 
Motor ein ordentlicher Entstörfilter. Vielleicht fehlt auch eine 
besondere Bereinigung der Versorgungsspannung des IR Empfängers (die 
sind sehr pingelig).

Weiteres ergibt sich eventuell aus der Sichtung des Schaltplanes.

> Ein Freund hat mir erklärt, dass sich das Relais
> möglicherweise selbst erhält

Normale Relais halten sich nur dann selbst, wenn man sie hoffnungslos 
überlastet, so dass die Kontakte zusammen schweißen. Sie werden auch 
vor-geschädigt, weil die Schaltung keinen Snubber (Funkenlöschkreis) 
hat.

Steckbretter eignen sich sehr schlecht zur Verteilung der 
Stromversorgung von Motoren, sie haben zu hohe Übergangswiderstände.

Aber wenn dein µC kein Signal von der Fernbedienung mehr empfängt, dann 
kann er natürlich auch nicht wie gewünscht reagieren. Kümmere dich 
zuerst darum.

von Liam H. (liam_h)


Lesenswert?

Hallo Stefan,

vielen Dank für dein Feedback!

Ein ordentlicher Entstörfilter fehlt bestimmt. Die Motoren sind 
wahrscheinlich recht billig. Gibt es eine Möglichkeit für mich das ganze 
irgendwie selbst zu filtern, ohne die kompletten Motoren auszutauschen? 
Ich dachte, dass durch den Einsatz eines Relais eigentlich keine Störung 
zurück zum Arduino kommen sollte, weil die Stromkreise ja eigentlich 
komplett getrennt sein sollten. Sobald ich kann werde ich die 
Versorgungsspannung des Motor vom Brett nehmen und direkt anschließen. 
Den Schaltplan habe ich hochgeladen.

https://imgur.com/UFgcipP

Dort ist jedoch nur die Schaltung des Relais ohne galvanische Trennung 
zu finden. Bei der Galvanischen Trennung habe ich mich genau an 
folgendes Tutorial gehalten:

https://www.kollino.de/arduino/4-8-kanal-relais-anleitung/#

Zum letzten Punkt: Der Sensor empfängt bei laufendem Motor schon ein 
Signal und kann es auch in einen Code dekodieren. Dieses Ändert sich 
jedoch stetig. Beim Drücken der gleichen Taste kommen immer 
unterschiedliche Codes raus.

: Bearbeitet durch User
von Hubert G. (hubertg)


Lesenswert?

Das der Motor bürstenlos ist bezweifle ich.
Was soll galvanische Trennung wenn alles von einer Stromversorgung 
kommt.
Gib auf das Steckbrett auf jede Stromversorgungsschiene einen 100µ Elko 
und  einen 100n Kondensator.
Parallel zum Motor einen 10n Kondensator.
Das jeweils nahe beim Abgang zum Motor und IR-Empfänger.

von Liam H. (liam_h)


Lesenswert?

Hallo Hubert,

da hast Du wahrscheinlich recht. Ich habe dabei lediglich auf die 
Beschreibung des Händlers vertraut. Dort heißt es:

"bürstenloses Gleichstromdesign" (was auch immer das heißen mag)

Es kommt nicht alles von einer Quelle (Siehe Link zum Aufbau). Am 
rechten Rand des Steckbretts ist die Stromversorgung des Arduinos und 
auf der linken Seite die des externen Netzteils. Das Netzteil versorgt 
lediglich den Motor und der Stromkreis wird über das Relais getrennt 
bzw. geschlossen. Wenn ich das Netzteil ausschalte, wird der Motor auch 
nicht mehr angetrieben.

: Bearbeitet durch User
von Hubert G. (hubertg)


Lesenswert?

Da ist der Link zum Aufbau irreführend. Dort kommt alles von einer 
Quelle.
Ein Link zu Motor wäre noch interssant.

von Liam H. (liam_h)


Lesenswert?

"https://www.kollino.de/arduino/4-8-kanal-relais-anleitung/#
Der aktuelle Stand ist mit galvanischer Trennung wie in Option 3 des
Tutorials."

Im Schaltplan habe ich die Stromquelle des Arduinos mit dem Steckbrett 
verbunden und auf der anderen Seite nur das Netzteil. Im echten Aufbau 
wird ein ähnliches Netzteil verwendet. Ich habe nur für die Fritzing 
software kein passendes Relais gefunden. Ich muss zugeben, dass das 
etwas irreführend ist, tut mir leid. Ein genaues Datenblatt zum Motor 
besitze ich leider nicht. Der Link zum Händler ist oben gelistet (aber 
da findet man nicht wirklich genaue Informationen).

Nochmal zum Problem. Ich habe die Stromquellen genau wie in dem besagten 
Tutorial separiert. Ich verstehe nur wirklich nicht, warum der Motor 
trotzdem den IR-Sensor stört, und wie ich das unterbinden kann. Die 
Einzigen Übertragungswege sind die Stromquelle des Relais (Der arduino) 
und der Output für das Relais. Im eingeschalteten Relais funktioniert 
der Output anschluss als Ground. Könnte es damit etwas zu tun haben?

von Liam H. (liam_h)


Lesenswert?

Soo, erstmal vielen Dank an Stefan mit der Lösung.

Das Steckbrett eignete sich nicht zu Verteilung der Stromversorgung des 
Motors. Ich habe den Motor vom Steckbrett genommen und direkt an die 
Stromversorgung angeschlossen. Dies hat zum gewünschten Ergebnis 
geführt.

Vielen Dank!

von Stefan F. (Gast)


Lesenswert?

Liam H. schrieb:
> Gibt es eine Möglichkeit für mich das ganze
> irgendwie selbst zu filtern, ohne die kompletten Motoren auszutauschen?

Ich kann Dir da keine Empfehlung geben, weil Entstörung immer an die 
Störungen angepasst werden muss. Ich habe selbst nicht einmal das nötige 
Equipment, um so etwas zu messen und du sicher auch nicht.

> Ich dachte, dass durch den Einsatz eines Relais eigentlich keine Störung
> zurück zum Arduino kommen sollte, weil die Stromkreise ja eigentlich
> komplett getrennt sein sollten.

Ja, das denke viele. Aber hochfrequenze Störungen gehen auch durch die 
Luft. Die wenigen Millimeter Distanz zwischen Relais-Spule und Kontakt 
sind für hochfrequente Signale kein grosses Hindernis. Dazu kommt, dass 
du die Motoren, den Mikrocontroller und den IR-Empfänger offenbar durch 
die gleichen Leitungen und ein gemeinsames Netzteil versorgst. Genau das 
setzt aber gute Filter voraus - sowohl am Motor, als auch am 
IR-Empfänger.

Wenn du die Motoren später separat versorgst, solltest du trotzdem, 
einen Filter vor den IR Empfänger packen, das wird seine Zuverlässigkeit 
und Reichweite erheblich verbessern.

Schau mal in das Datenblatt 
https://cdn-reichelt.de/documents/datenblatt/A500/TSOP312SERIES_DATASHEET.pdf 
dort wird ein "Application Cirquit" empfohlen. Das wäre mal ein Anfang 
zum probieren.

von dudinator (Gast)


Lesenswert?

Liam H. schrieb:
> bürstenlosen gleichstrom

Meintest du "Gleichstrommotor"? Und möglicherweise auch eher 
"Infrarotsensor".

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.