Schrittmotortreiber stört I2C-Display

Hallo Zusammen,

ich habe ein merkwürdiges Problem. Ich betreibe ein monochromes LCD-Display über die I2C Schnittstelle und einem Arduino Due. Das funktioniert ganz gut. Doch sobald ich meinen Schrittmotortreiber mit an die Spannungsversorgung hänge, spielt das Display verrückt und zeigt garnichts oder ungewollte Zeichen an.
Es ist definitiv geügend Strom da um alles zu versorgen, ich habe den Strom jeweils mit und ohne Schrittmotortreiber am Due bzw. am Display gemessen: konstant 0,24 A. Dass der Schrittmotortreiber also den Strom wegzieht müsste ausgeschlosssen sein. Das Netzteil leistet bei 24V 3A. Ich vermuste es wird irgendwie die Frequenz der I2C-Übertragung gestört. Anbei ein symbolischer Schaltplan.

Kurze Einbrüche kannst Du auf einem Multimeter nicht sehen, ebenso wenig, wie überlagerte Spannungsspitzen. Da musst Du schon einen Oszi bemühen.

Gruß Tommy

Den Stom des Displays messen sagt gar nichts aus.
Wenn Du was messen willst dann miß die 6V des Spannungsreglers (in Gleichspannung und Wechselspannung) ob diese immer konstant ist und keinen Wechselspannung überlagert hat. Miß auch die Versorgungsspannung des Displays (nehme mal an das läuft mit 5V).

Wie groß sind die Pullupwiderstände des I2C Busses?

Da wir weder wissen welchen Schrittmotor Du hast noch wissen welchen Strom Du am Schrittmotortreiber eingestellt hast, kann ich Dir nicht sagen ob das Netzteil richtig dimensioniert ist.

Grüße Uwe

Mir steht leider momentan kein Oszi zu verfügung. Ich habe eben das Netzteil gegen ein massives 48V Netzteil mit 5A ausgetauscht um nochmal sicherzustellen, dass es nicht am Netzteil liegt. Und nochmal den die Spannung am Spannungsregler und am Display gemessen. Alles konstant egal ob mit oder ohne Schrittmotortreiber. Das Problem bleibt weiterhin bestehen.

Ich habe noch garkeinen Schrittmotor angeschlossen, lediglich den Schrittmotortreiber. Sobald ich diesen von der Spannungsversorgung trenne, funktioniert das Display wieder tadellos. Die Pullup-Widerstände haben 4,8 kOhm und sind zur 3,3V-Leitung am Due angeschlossen. Soweit ich weiß, arbeitet der Due mit 3,3V, also müssen die Pullups an die 3,3V. Das Display bekommt aber 5V. Liegt hier evtl. der Haken?

Grüße

ItsUnreal:
.....Die Pullup-Widerstände haben 4,8 kOhm und sind zur 3,3V-Leitung am Due angeschlossen. Soweit ich weiß, arbeitet der Due mit 3,3V, also müssen die Pullups an die 3,3V. Das Display bekommt aber 5V. Liegt hier evtl. der Haken?

Vermutlich ja.
Dein Display braucht evtl. 5 Volt am I2C. Dann brauchst du Levelshifter dazwischen.
Poste mal einen Hyperlink deines Displays.

Ich habe eben einen Levelshifter dazwischen geschaltet und nachgemessen, I2C am Due: 3,3 V und am Display kommen jetzt 5V am I2C an. Das Problem bleibt aber weiterhin bestehen, sobald der Schrittmotortreiber angeklemmt wird gibts Störungen :frowning:

LCD Display: I2C LCD2004 - Wiki

Hast Du irgendetwas an den Pins 20 und 21 angeschlossen?
Grüße Uwe

uwefed:
Hast Du irgendetwas an den Pins 20 und 21 angeschlossen?
Grüße Uwe

Nein die sind unbesetzt.

Die 6V könnten dir das Problem bereiten.
Das ist lt. Datenblatt die unterste Grenze.
Setze die mal besser auf 7V hoch.

HotSystems:
Die 6V könnten dir das Problem bereiten.
Das ist lt. Datenblatt die unterste Grenze.
Setze die mal besser auf 7V hoch.

Das habe ich auch schon versucht, ohne Erfolg.

Kleines Update: Der Schrittmotor war doch schon angeschlossen über ein D-Sub Kabel, sorry für die falsche Info. Die dir- und step-Leitung vom Due zum Schrittmotortreiber allerdings nicht. Und auch im Sketch ist noch nichts in Sachen Schrittmotor vorhanden. Der Motor wurde also bestromt, bewegt sich aber nicht. Beim Abklemmen des Schrittmotors funktionert das Display wieder. Scheint also tatsächlich am Motor zu liegen. Es handelt sich um folgenden: https://de.nanotec.com/produkte/1782-ls2818l1404-t6x2-75/

Dennoch solltest du besser bei 7 Volt bleiben.

Es handelt sich um folgenden: https://de.nanotec.com/produkte/1782-ls2818l1404-t6x2-75/

ok, Das ist der Motor. Und welchen Motortreiber verwendest Du?
Hast Du es mit einem anderen Arduino-Modell versucht?
Grüße Uwe

uwefed:
ok, Das ist der Motor. Und welchen Motortreiber verwendest Du?
Hast Du es mit einem anderen Arduino-Modell versucht?
Grüße Uwe

Der Treiber ist ein M542T:
Klick

Vorher war ein Uno und ein Schrittmotortreiber bis max. 24V verbaut. Da hat es funktioniert. Da ich aber die Geschwindigkeit vom Motor steigern wollte, habe ich mir den Treiber mit 48V gekauft und bin auf einen Due umgestiegen wegen der limitierten Steps pro Sekunde mit dem Uno.

Welchen Strom hast Du eingestellt?
Grüße Uwe

uwefed:
Welchen Strom hast Du eingestellt?
Grüße Uwe

Zuerst die für den Schrittmotor vorgesehenen 2,4A. Und dann alle Abstufungen <2,4A probiert. Keine Besserung.

Würde es Sinn machen einen RC-Filter zwischen Spannungsversorgung und Arduino/Display zu bauen? Ich habe irgendwie das Gefühl, dass sich Störsignale mit der Frequenz der I2C Kommunikation schneiden. Allerdings habe ich leider keine Ahnung wie dieser RC-Filter aussehen muss, bzw. wie man den Kondensator und Wiederstand auslegt.

Theoretisch müßte der DC/DC Wandler bereits genügend filtern, sodaß Störungen auf den 24V nicht auf die 6V kommen.

Wenn Du probeweise einen anderen Arduino zB einen UNO nimmst hast Du die gleichen Störungen?
Grüße Uwe

uwefed:
Theoretisch müßte der DC/DC Wandler bereits genügend filtern, sodaß Störungen auf den 24V nicht auf die 6V kommen.

Wenn Du probeweise einen anderen Arduino zB einen UNO nimmst hast Du die gleichen Störungen?
Grüße Uwe

Eben getestet, mit dem Uno funktioniert es.. merkwürdig. Eine idee woran es liegen könnte?

ItsUnreal:
.....Eine idee woran es liegen könnte?

Alle genannten Dinge nochmals überdenken.

HotSystems:
Alle genannten Dinge nochmals überdenken.

Einen Levelshifter von 3,3V auf 5V habe ich bereits probiert. Mehr Unterschiede sind mir nicht bekannt :confused:

Hat der Levelshifter Pullups an beiden Seiten?

Grüße Uwe