[Erledigt] Arduino freeze ESC und IMU

Moin moin :slight_smile:

zu meiner Ausgangslage:
Ich besitze einen Arduino Leonardo und schreibe grade eine Quadcopter Flugsteuerung. Mein Gyro und Beschleunigungssensor sind in einer IMU verbaut die ich über I2C (SDA / SCL) ansteuere.(Radio Control Planes, Drones, Cars, FPV, Quadcopters and more - Hobbyking).
Für die 4 Motoren verwende ich 4 Turnigy ESC´s (Radio Control Planes, Drones, Cars, FPV, Quadcopters and more - Hobbyking) wo ich das Signal und Ground jeweils mit einem PWM Signal (Pins 3,5,6,11) auf dem Board angeschlossen habe. Für die Stromversorgung besitze ich einen extra Lipo. Das Stromkabel der ESC´s wird also nicht verwendet.
Der Arduino ist aktuell noch mit dem USB Kabel verbunden.

Jetzt zu meinem Problem:
Lasse ich nur die IMU laufen funktioniert alles.
Lasse ich nur die 4 ESC´s laufen kann ich Softwareseitig das "Armsignal" senden, dann den Lipo anstecken und es läuft alles.
Ist aber sowohl die IMU als auch die ESC´s an dem Arduino angeschlossen startet das Board und freezed in der setup Method beim initialisieren des Gyro ein.
Nutze ich die IMU und nur 2 ESC´s (2 abgesteckt), startet das Board läuft für eine gewisse Zeit (60Sekunden ca.) und freezed dann.

Meine Frage:
Kann es ein Spannungsproblem sein? Die ESC´s sind ja nur über Signal mit dem Arduino verbunden. Für die Stromversorgung und die Motoren wird später (zuerst muss das Board starten, dann erst darf die Stromversorgung erst hergestellt werden) ein Lipo angesteckt.
Kann es ein Problem mit dem I2C sein was sich nicht mit den Servos verträgt?

Ich weiß das das Problem recht speziell ist und ich habe auch schon eine Menge an Threads gelesen die mir aber nicht weiterhelfen konnten. Ich kann mir auch nicht erklären was die I2C Schnittstelle mit den PWM Signalen zu tun hat?

niemand eine Idee?

Aus der Leonardo-Beschreibung
TWI: 2 (SDA) and 3 (SCL). Support TWI communication using the Wire library.

Kann also nicht gleichzeitig funktionieren, würde ich zumindest auf den ersten Blick mal behaupten, wenn ein ESC am Clockpin hängt.

Wieso brauchst Du um die ESC anzusteuern PWM-Ausgänge?

Grüße Uwe

ach, wie peinlich :~ :blush:
Wieso gibt es den SDA und SCL denn doppelt.

Auf die I2C Lib als Fehlerquelle bin auch gestoßen und hing jetzt an diesem Thread der meinem Problem sehr nahe kommt, aber daran hätte ich mich dann erstmal verrannt.
http://forum.arduino.cc/index.php?topic=157825.0

Dankeschön :slight_smile: :slight_smile:

vistahr:
ach, wie peinlich :~ :blush:
Wieso gibt es den SDA und SCL denn doppelt.

Damit sie auf verschiedenen R3 Arduinos immer an der gleichen Stelle sind und so Shields für alle R3 Arduinos funktionieren.

Grüße Uwe

uwefed:
Wieso brauchst Du um die ESC anzusteuern PWM-Ausgänge?

Grüße Uwe

Ich arbeite mit der Servo Lib und steuer mit dem Ino die SpeedController die dann die Signale für die Motoren "aufarbeiten".

Ich arbeite mit der Servo Lib

Ja eben, die braucht keine PWM Pins für die Servos/ESC.
Grüße Uwe

uwefed:

Ich arbeite mit der Servo Lib

Ja eben, die braucht keine PWM Pins für die Servos/ESC.
Grüße Uwe

gut zu wissen, danke. Ich hatte das angenommen, da in jedem Beispiel der ESC an einen PWM Pin gelegt wurde - entweder Zufall, oder auch Halbwissen :wink:

Für den Leonardo weiß ich es nicht aber die Servo.h-Bibliothek kann beim Arduino UNO 12 Servo ansteuern und beim MEGA 48. Die Bibliothek benutzt einen Timer und darum sind 2 PWM-Pin nicht benutzbar. Ich weiß aber so auf Anhieb nicht welche.
Libraries - Arduino Reference und
Servo - Arduino Reference

Grüße Uwe