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.
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.
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?
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
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: Nanotec - Intelligente Antriebslösungen
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.
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.