Pages: [1] 2   Go Down
Author Topic: Probleme mit I²C Bus wenn Arduino an externer Stromquelle  (Read 2330 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-wink

Viele Grüße
LL smiley-wink
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 250
Posts: 21215
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 250
Posts: 21215
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
« Last Edit: January 17, 2013, 06:19:38 pm by uwefed » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-wink

Gruß,
LL
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

So, wir haben nun verschiedene Sachen ausprobiert:
Masse zusammen, Masse getrennt, anderes Netzteil (230V auf 5V Adapter) und 230V zu USB 5V Adapter.

Hat alles nichts genutzt, der I2C-Bus wollte nicht.

Da mit dem 230V auf USB 5V Adapter die LEDs ab und zu angegangen sind (komplett willkürlich) und der Arduino Mega 2560 von 5V-20V ausgeschrieben ist haben wir mal 12V vom PC Netzteil an die externe Stromquelle angeschlossen. Dies brachte den I2C-Bus zum laufen. Also ist das Problem GELÖST!

Der I2C-Bus bekommt nun mehr Spannung. Als 5V am Arduino angeschlossen waren, hatte der I2C-Bus 5,29V vom Netzteil bekommen. Mit 12V am externem Stromanschluss des Arduinos bekommt der I2C-Bus nun 5,49V.

Warum die Spannung steigt und warum der I2C-Bus deswegen funktioniert kann ich an dieser Stelle nicht sagen. Ich hoffe nur, dass die LED`s die für 5V mit entsprechenden Vorwiderständen eingebaut wurden die Spannung von 5,49V überstehen .

Grüße

Looping Louie Projektteam  smiley-cool
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 250
Posts: 21215
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die LED überleben das sicher, Ich habe bei einer solchen Spannung mehr Angst um den ATmega da dieser max für 5,5V spezifiziert ist.

Bist Du sicher daß Dein Meßgerät nicht etwas zuviel mißt?

Grüße Uwe
Logged

Wien
Offline Offline
Edison Member
*
Karma: 26
Posts: 1836
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

hab' ich da jetzt was überlesen oder hattet Ihr ein 5V-netzteil an der buchse des arduino für die externe stromversorgung hängen? also 5V an der runden buchse? das kann nicht gehen...
auch an Vin sind 5V zu wenig. das müssen 7-12V sein...

wenn Ihr ein netzteil habt, das zuverlässig 5V liefert, könnt Ihr  es an den 5V-pin des  mega anschliessen.

gruß stefan
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich habe bei einer solchen Spannung mehr Angst um den ATmega da dieser max für 5,5V spezifiziert ist.

Hi Uwe,
Was meinst du damit? Wie Eisbaer schreibt, haben auch wir gelesen, dass an der runden Buchse zwischen 7V-12V (sogar von 20V war die Rede) anzubringen sind.

hab' ich da jetzt was überlesen oder hattet Ihr ein 5V-netzteil an der buchse des arduino für die externe stromversorgung hängen? also 5V an der runden buchse? das kann nicht gehen...
auch an Vin sind 5V zu wenig. das müssen 7-12V sein...

Hi Stefan,
ja, wir hatten 5V an der runden Buchse angelegt. Nun sind es 12V und es klappt.
Wir wundern uns allerdings warum es mit USB Stromversorgung, die ja auch nur 5V liefert, geklappt hat und die 5V ausm Netzteil zu wenig waren.
Logged

Offline Offline
Newbie
*
Karma: 2
Posts: 19
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry, ich bin ja auch noch Neuling. Aber in meinen aktuellen Projekt adaptiere ich alles über den i2c-Bus und es klappt einwandfrei auch bei einer Spannung von 4.98 V.

1. sicherlich müssen die Massen alle zusammengeschlossen werden.
2. Sind auch die notwendigen PullUp-Wiederstände bei den Anschlüssen SCL/SDA vorhanden?
3. Für die Ansteuerung der LED's sind doch noch zusätzliche Bauteile notwendig wie PCF8574 (nutze ich zurzeit).
4. Ist die Leistung der separaten Spannungsversorgung für den i2c ausreichend?
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 250
Posts: 21215
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich habe bei einer solchen Spannung mehr Angst um den ATmega da dieser max für 5,5V spezifiziert ist.
Hi Uwe,
Was meinst du damit? Wie Eisbaer schreibt, haben auch wir gelesen, dass an der runden Buchse zwischen 7V-12V (sogar von 20V war die Rede) anzubringen sind.
Das ist die max Versorgungsspannung des ATmega328 Kontroller (des nackten ICs).

Code:
Hi Stefan,
ja, wir hatten 5V an der runden Buchse angelegt. Nun sind es 12V und es klappt.
Wir wundern uns allerdings warum es mit USB Stromversorgung, die ja auch nur 5V liefert, geklappt hat und die 5V ausm Netzteil zu wenig waren.

Der Spannungstabilisator und die Schutzdiode verlieren ca 2V zusammen. Bei solchen Versorgungsspannungen zum Teil außerhalb der Spezifikation einiger Bauteile ist schwer die Reaktionen vorherzusagen.
Grüße Uwe
Logged

Wien
Offline Offline
Edison Member
*
Karma: 26
Posts: 1836
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,

es gab hier ein riesenverständigungsproblem. einfach deshalb, weil keiner damit rechnet, daß Ihr ein solches, doch recht beachtliches projekt mit "falsch" angeschlossenem arduino geschafft habt. uwe meinte, Ihr hättet die 12V an den 5V-eingang des arduino angeschlossen, deswegen die angst um den controller.
wenn Ihr über die runde buchse oder Vin versorgt, müssen es mindestens 7V sein, der rest wird verbraten. 5V-pin und USB gehen direkt ohne spannungswandler und diode rein, dort gibt's keinen verlust, aber risiko bei verpolung oder zuviel spannung.
wenn Ihr mit einem 5V-netzteil über den 5V-pin versorgt, muß es ein gutes netzteil sein, viele brechen unter last dann auf 3-3,5V ein.

gruß stefan
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 250
Posts: 21215
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hi,
es gab hier ein riesenverständigungsproblem. einfach deshalb, weil keiner damit rechnet, daß Ihr ein solches, doch recht beachtliches projekt mit "falsch" angeschlossenem arduino geschafft habt. uwe meinte, Ihr hättet die 12V an den 5V-eingang des arduino angeschlossen, deswegen die angst um den controller.
Nee, Stefan, das hatte ich nicht befürchtet. Das Verständnisproblem liegt zwischen uns beiden  smiley-wink smiley-wink smiley-wink

Ich habe umgekeht befürchtet (5V in die Netzteilbuchse). Da wird nichts kaput aber funktioniert auch nicht so richtig.

Grüße Uwe
Logged

Wien
Offline Offline
Edison Member
*
Karma: 26
Posts: 1836
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

uwe, uwe, wie kann's ein verständigungsproblem zwischen südtirol und österreich geben``
wir sind doch lei oans. smiley-razz
gruß nach bozen, stefan
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 250
Posts: 21215
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Manchmal geschehen komische und nicht zu erklärende Dinge.   smiley-wink smiley-wink smiley-wink
Logged

Pages: [1] 2   Go Up
Jump to: