Universalmotor 20V DC + Relais = Tasterstörung

Moin Leute,

ich habe nun echt lange rumprobiert und muss letztendlich doch um Rat fragen.
Ich möchte meine Bodenklappe öffnen/schließen.

Verwendete Teile:

  • Arduino
  • Doppelrelaismodul
  • 3x Taster + 3x 10 kOhm Widerstände
  • Universalmotor (20 V)

Ich habe einen Taster zum Bedienen installiert, der nur einmal angetippt/getastet werden muss, die anderen beiden
als jeweiligen Endpunktsignalgeber.
Meinen Code hänge ich interessehalber mit an auch wenn der (scheinbar) keine Probleme macht.

int LED = 13;
int Taster_START = A1;
int Endschalter_unten = A3;
int Endschalter_oben = A5;
int Relais_CW = 7;
int Relais_CCW=8;

void setup() {

pinMode(LED, OUTPUT);
pinMode(Relais_CW, OUTPUT);
pinMode(Relais_CCW, OUTPUT);
pinMode(Taster_START, INPUT);
pinMode(Endschalter_unten, INPUT);
pinMode(Endschalter_oben, INPUT);
}

void loop() {
  
  //Wenn der Taster zum Öffnen/Schließen gedrückt wird -->

  if (analogRead(Taster_START) > 900)
  
     {
      //Wenn Tür geschlossen ist --> CW
      
        if (analogRead(Endschalter_unten) > 900 and analogRead(Endschalter_oben) < 100)
            {while (analogRead(Endschalter_oben) < 100)
            {digitalWrite(LED, HIGH);
            digitalWrite(Relais_CW, HIGH);
            }
            }
        
        else {

          //Wenn Tür geöffnet --> CCW
              if (analogRead(Endschalter_unten) < 100 and analogRead(Endschalter_oben) > 900)
                  {while (analogRead(Endschalter_unten) < 100)
                  {digitalWrite(LED, HIGH);
                   digitalWrite(Relais_CCW, HIGH);
                  }
                  }       
             } 
     }

  else 
  {digitalWrite(LED, LOW);
   digitalWrite(Relais_CW, LOW);
   digitalWrite(Relais_CCW, LOW);
  }
}

Mein Aufbau ist dem Schaltplan zu entnehmen.

Die Funktionalität meines Codes wird durch die Signal-LED bestätigt, solange der Motor getrennt stromlos ist.
Sobald ich die 20 V des Motors anlege, spinnt meine Logik rum und der Motor dreht sich bestenfalls nur solange der Bedientaster
gedrückt gehalten wird.
Es scheint als würden die Endtaster automatisch als gedrückt eingelesen werden.
Interessanterweise trat diese Störung auch schon bei mechanisch getrenntem aber eingeschaltetem Motor auf,
also durch Strahlung(/oder durch gleiche Stromverteilerleiste).
Zu Testzwecken habe ich Motor und Arduino+Relais in zwei verschieden Zimmerecken und zwei verschieden Steckdosen
gesteckt und verbunden. Sobald die Richtungskabel (aus Bild Universalmotor; Kabel zu den Statorwicklungen) in das Relais gesteckt werden, tritt die Störung auf.
Ich habe einen Strom, der durch das Relais gehen muss, denn bei ausgesteckter Arduinostromquelle, bekommt der Arduino
durch die Signalpins soviel Strom, dass er angeht und zwar, wenn ich zB Pin8 egal wo einstecke.

Ich dachte anfangs ein Relais ist dafür geeignet Stromkreise voneinander zu trennen.

Beim Motor selbst musste ich die Richtungskabel, bei denen einer jeweils eins auf +20 V und das andere auf -20 V liegt, kurzschließen damit sich der Motor dreht. (Kurzschließen=Verbinden der Enden der Statorwicklungen, sonst fließt da ja nix. *nachträgliche Eingebung^^)

Ich glaube in seltenen Fällen funktionierte es, zB als ich Motor und Arduino in unterschiedliche Steckdosen in der Wand steckte, konnte es aber nicht nachvollziehen bzw denke, dass der Motor da noch getrennt war und ich auf Fehlersuche für Strahlungsstörung war.


  • Hat einer einen Hinweis woran es bei mir scheitern könnte?
  • Wäre ein Optokoppler zwischen Arduino und Relais eine Maßnahme (habe ich aber nicht hier)?
  • Muss an den Kurzschluss der Richtungskabel/Statorwicklungen noch ein Bauteil (für den Betrieb mit AC war dort ein Kondensator)?
  • Warum kommt überhaupt Strom durch das Relais?

Vielen Dank für eure Mühe und eure Ideen.

Viele Grüße und einen schönen Abend
Bernd

Klappensteuerung_Code.ino (1.3 KB)

Setze Deinen Code bitte direkt ins Forum. Benutze dazu Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
Dann ist er auch auf mobilen Geräten besser lesbar.
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

Wenn Du Deine schaltung wirklich so aufgebaut hast , wie es Dein Schaltplan zeigt, fehlt die Masse-Verbindung zwischen Arduino und der Spannungsversorgung der Relais-Platine. Du MUSST den Minus vom Batterieblock der Relais zusätzlich mit GND am Arduino verbinden. So kann das jedenfals nicht funktionieren.

LG Stefan

Hat dein Motor tatsächlich 4 Anschlüsse, oder warum hast du noch Plus und Minus der 20 Volt an den Motor gebracht ?

Was hier noch fehlt, ist eine Freilaufdiode, bzw. 2 Stk. Da wäre es besser, wenn du mit einem fertigen Motortreiber (H-Brücke) arbeitest, der hat die schon drauf.

Deltaflyer:
Wenn Du Deine schaltung wirklich so aufgebaut hast , wie es Dein Schaltplan zeigt, fehlt die Masse-Verbindung zwischen Arduino und der Spannungsversorgung der Relais-Platine. Du MUSST den Minus vom Batterieblock der Relais zusätzlich mit GND am Arduino verbinden. So kann das jedenfals nicht funktionieren.

LG Stefan

*korrigiert. Vielen Dank.
Sonst würde das Relais gar nicht erst angehen.


HotSystems:
Hat dein Motor tatsächlich 4 Anschlüsse, oder warum hast du noch Plus und Minus der 20 Volt an den Motor gebracht ?

  • Die 20V sitzen außen über Kohlen auf dem Rotor, dabei ist es egal welche Seite angeschlossen. Die "Richtungskabel" gehen zu den Statorwicklungen, die nach gewünschter Drehrichtung umgepolt werden müssen. Der Motor ohne Steuerungsgebimsel funktioniert (durch testen :)) ), denn wenn ich die Richtungskabel umklemme und selbst per Hand an und ausschalte, dann arbeitet es wie gewünscht. Auch der Arduino bearbeitet den Code an sich wie gewünscht, nur an der Kombination scheitere ich.

HotSystems:
Was hier noch fehlt, ist eine Freilaufdiode, bzw. 2 Stk. Da wäre es besser, wenn du mit einem fertigen Motortreiber (H-Brücke) arbeitest, der hat die schon drauf.

  • Freilauf in Bezug auf Weiterdrehen und somit Stromgenerierung? Er dreht nicht weiter, da genug Moment vom Seilzug aus angreift.

Teils startet er ja auch gar nicht bzw schaltet sofort wieder LED aus, was mich denken lässt, dass der Strom durch das Relais alle Endschalter drücken lässt bzw halt auf 5V setzt. Wundere mich dann nur, wie Strom von der einen Seite des Relais auf die Signalkabel gelangt.

Aber Dank deiner Aussage dürfte evt eine Diode auf den Signalleitungen von Pin7 und Pin8 Sinn ergeben, oder?
Sodass damit dann auch hardwaremäßig diese Pins nur "Outputs" sind.

Noch verstehe ich deine Schaltung nicht und daher auch dein Problem mit der Spannung nicht.

Und sicher ist, wenn alles richtig angeschlossen ist, kann keine Spannung über das Relais kommen.
Also von den Relaiskontakten auf die Steuerleitung. Die meisten Module habe hier auch zusätzlich noch einen Optokoppler drin.

Und noch ganz wichtig, die Freilaufdiode benötigst du ganz sicher, da schon das Abschalten eine Spannung mit umgepolter Polarität erzeugt und diese die Elektronik zerstören könnte.

Hi, du speisst jetzt aber nicht wirklich die 5V am Rundsteck-verbinder des Arduino ein? das klappt nicht, am Rundsteckverbinder MUSST du mindestens 7V einspeisen, da ansonsten der Spannungsregler auf dem Arduino keine 5V mehr daraus machen kann. Und damit stimmen Dir die H-Pegel an den Ausgängen des Arduino nicht mehr. Ebenso kann auch der 3,3V regler auf dem Arduine keine 3,3V mehr bereitstellen. (OK, laut deinem Schaltplan nutzt Du die 3,3V nicht).

LG Stefan

@Hotsystems:
wenn er die 20V Quelle und die 5V Quelle wirklich so wie im Schaltplan galvanisch getrennt hat, benötigt er die Freilaufdiode nicht unbedingt (ok , kommt noch ein bisschen aufs Netzteil an, ob das zum direkten Anschluss von Motoren geeignet ist) da ja die spannung normalerwise nicht vom Relaiskontakt zu den Spulenanschlüssen des Relais durch kommt. Ist ja ein Relais, kein Transistor, also galvanische Trennung zwischen Steuerkreis und Lastkreis.

Deltaflyer:
@Hotsystems:
wenn er die 20V Quelle und die 5V Quelle wirklich so wie im Schaltplan galvanisch getrennt hat, benötigt er die Freilaufdiode nicht unbedingt (ok , kommt noch ein bisschen aufs Netzteil an, ob das zum direkten Anschluss von Motoren geeignet ist).....

Naja....normalerweise.
Und was ist heute noch normal ?

Es kommt auch darauf an, wie weit entfernt der Motor vom Rest des gebastelten ist.
Ich habe diese Probleme schon an anderer Stelle gesehen und mit einer Freilaufdiode war alles gut.

Und was kostet so eine Diode ?
Da sollte man nicht kleinlich sein.

Also TO....mach waste denkst, ist nur eine Empfehlung.

HotSystems:
Hat dein Motor tatsächlich 4 Anschlüsse, oder warum hast du noch Plus und Minus der 20 Volt an den Motor gebracht ?

Was hier noch fehlt, ist eine Freilaufdiode, bzw. 2 Stk. Da wäre es besser, wenn du mit einem fertigen Motortreiber (H-Brücke) arbeitest, der hat die schon drauf.


Der Motor hat sogar 5 Anschlüsse.
2 für den Rotor
3 für den Stator Erregerwicklung mit Mittelanzapfung.

So kann er mit Wechselstrom gespeist werden ( = Universalmotor) und die Drehrichtung durch Auswahl der Halbwicklung des Erregerfeldes gewählt werden.

Es wäre aber wichtig mehr infos zu erhalten da die Parameter der Erregerwicklung nicht wirklich klar sind. Den Motor könnte man als Reihenschluß, Nebenschluß oder Fremderregt schalten. Auch ist der Betrieb für Gleichstrom und Wechselstrom anders. Bei Falschem Anschluß kann eine Wicklung überhitzen.

Grüße Uwe

Danke Uwe, so ist es, wenn man keine Bilder sehen kann.
Mobil ist das immer ein kleines Problem, wenn die Bilder nicht richtig eingebunden sind.

Auch wenn der TO mit den Informationen sehr spartanisch umgeht, dies hatte er mir aber schon erklärt.