Go Down

Topic: Probleme mit I²C Bus wenn Arduino an externer Stromquelle (Read 2 times) previous topic - next topic

LoopingLouie

Hallo Arduino Freunde,

seit einigen Wochen arbeiten ein Freund und ich an einem Projekt bei dem wir das allseits beliebte Spiel "Looping Louie" mit einem Arduino und vielem mehr erweitern.

Das Projekt:
- Arduino Mega 2560
- Looping Louie erweitert für 8 Spieler
- Motorsteuerung durch PWM (schnell, langsam, rückwärts, vorwärts, stop, run)
- Dadurch verschiedene Spielmodis realisiert
- LEDs zur Beleuchtung eingebaut (mit Vorwiderständen, angepasst auf 5V)
- Taster mit zugehörigen "warn"-Leds eingebaut. Die Taster bewirken einen "Turbo-boost" an den Motor. Die Led daneben zeigt an, wenn der Turboboost bereit ist. Hat man ihn benutzt, erlischt die Led solange, bis der
  Cooldown abgelaufen ist.
- I²C Bus eingebaut um LEDs und Turbotaster anzusteuern. Hängt beim Arduino Mega an Pins 20 & 21 (SDA & SCL). Außerdem wird der Bus über eine externe Stromquelle versorgt (5V).
- Die externe Stromversorgung für z.B. die LEDs bzw. den I²C Bus ist ein altes PC Netzteil an dem wir 5V abgreifen. Auch wenn wir den Arduino über extern laufen lassen wollen, benutzen wir dieses Netzteil.

Die Steuerung:
- Alles wird per Touchscreen gesteuert
- Dazu haben wir ein Hauptmenüscreen geschrieben mit verschiedenen Untermenüs: Motorsteuerung, Ledsteuerung, Log
- Motorsteuerung über Arduinos PWM: Der Motor lässt sich an/aus schalten, langsamer/schneller drehen, rückwärts/vorwärts drehen und das alles kombiniert in verschiedenen Spielmodis
- Led-Steuerung über I²C Bus: Wir haben einige Leds zur Beleuchtung eingebaut. Diese können wir Paarweise mit unserem eingebauten I²C Bus ansteuern, d.h. an/aus (Output).
- Turbo-Steuerung über I²C Bus: Die Turbotaster sowie die zugehörigen Warnleds werden ebenfalls über den I²C Bus angesteuert. Turbotaster -> Input, Leds -> Output.

Das Problem:
- Wenn wir den Arduino mit einem USB-Kabel am Laptop hängen haben, funktioniert alles wie es soll. Keine Probleme. (Der I²C Bus wird extern versorgt)
- Wenn der Arduino über die externe Stromquelle versorgt wird, scheinen alle Funktionen die mit dem I²C Bus zusammenhängen NICHT zu funktionieren (also Turbo & LED Steuerung). Alle anderen gehen.
   (Hierbei sei gesagt, die externe Stromquelle kommt vom alten PC Netzteil. Hier haben wir 5V abgegriffen.)
- Wir haben versucht das Problem dahingehend zu lösen, indem wir einen USB zu Strom Adapter benutzt haben. Also den Arduino mit dem USB Kabel verbinden, das USB Kabel in den Adapter und diesen in die Steckdose.
  Hier treten die selben Probleme auf wie beim Versorgen mit dem Netzteil.

Woran kann das liegen?
Uns wundert diese ganze Sache vorallem, weil wir in allen Versuchen den I²C Bus an der externen Stromquelle hängen haben. Lediglich die Stromversorgung des Arduinos hat sich verändert.

Also nochmal zusammengefasst:
-Arduino per USB an Laptop: Alles geht
-Arduino an externes Netzteil (5V): Motorsteuerung & Touchscreen laufen. I²C Bus Funktionen nicht.
-Arduino per USB an Steckdose: Motorsteuerung & Touchscreen laufen. I²C Bus Funktionen nicht.

Wäre schön wenn jemand von Euch einen guten Rat liefern könnte ;)

Viele Grüße
LL ;)

uwefed

Die Masse der 5V Stromversorgung ist mit der Masse des Arduino zusammengeschlossen?
Grüße Uwe

LoopingLouie


Die Masse der 5V Stromversorgung ist mit der Masse des Arduino zusammengeschlossen?
Grüße Uwe


Habe das Projekt leider gerade bei meinem Kollegen liegen aber soweit ich mich erinnern kann haben wir es momentan so:

-Die Masse vom I²C Bus geht zurück ans Netzteil, da wo auch der Strom herkommt.
-Die Masse vom Arduino geht bei externer Stromversorgung ans Netzteil, da wo auch der Strom herkommt.
-Die Masse vom Arduino bei USB geht wohl zum USB zurück.

Allerdings kann ich das nicht 100% sagen, da ich gerade nicht nachsehen kann.
Liegt hier eventuell das Problem?

Gruß
LL

uwefed

#3
Jan 17, 2013, 11:54 pm Last Edit: Jan 18, 2013, 12:19 am by uwefed Reason: 1
Wenn die Massen nicht zusammengeschaltet sind haben die verschiedenen Bauteile keinen gemeinsamen Referenzpunkt und darum können sie ein H bzw L auf den Datenleitungen (in diesem Fall I2C) nicht erkennen.

Bestimmte Kombinationen von Netzteilen können funktionieren da bei Computernetzteilen die Masse mit der Erdung verbunden ist und so über den Erdungsleiter die verschiedenen Massen verbunden sind. Dies ist aber kein anzustebender Zustand da zwischen den verschiednen Erdungsleitern Spannungen bestehen können (Brumschleifen)

Grüße Uwe

LoopingLouie

Danke für deine Hilfe!
Wir werden das am Wochenende überprüfen.

Danach Berichte ich, ob das die Lösung des Problems war oder nicht.
Hoffen wir das Beste ;)

Gruß,
LL

Go Up