Arduino UNO und PCA9685 - Problem mit externer Spannungsversorgung

Ich bin total verzweifelt und hoffe, Sie können mir helfen.
Ich baue seit einiger Zeit an einem Projekt, bei dem ich mehrere Servos ansteuern muss. Dazu habe ich mir einige MG996Rund eine PCA9685 16-Kanal Servo
Treiber Platine. Außerdem kaufte ich eine geeignete Stromversorgung (DV 5V - max 3A).

Zunächst habe ich meinen Controller und die Platine wie folgt angeschlossen und das Netzteil an der vorgesehenen Stelle befestigt: v1 — ImgBB

Alles funktionierte wie gewünscht und ich konnte z.B. einen Servo mit diesem Beispielskript ansteuern.

#include <Wire.h>
    #include <Adafruit_PWMServoDriver.h>
    
    Adafruit_PWMServoDriver myServos = Adafruit_PWMServoDriver();

    #define SERVOMIN 150
    #define SERVOMAX 600
    
    uint8_t servonum = 0;
    uint8_t numberOfServos = 1;
    
    void setup() {
      myServos.begin();
      myServos.setPWMFreq(60);
      delay(10);
    }
    
    void loop() {
      myServos.setPWM(0, 0, 500);
      delay(1000);
      myServos.setPWM(0, 0, 300);
      delay(1000);
    }

Dann habe ich etwas anderes ausprobiert und ein paar Kabel umgesteckt, während die Stromversorgung noch eingeschaltet war (ich weiß sollte man nicht machen) - als ich zur ursprünglichen Schaltung zurückgekehrt bin (siehe Bild oben), hat sich kein Servo mehr bewegt. Danach habe ich versucht, das defekte Teil zu finden, konnte aber keines finden - also habe ich einen neuen Arduino, PCA-Platine und Netzteil gekauft, um zu versuchen, den Fehler zu finden - leider ohne Erfolg.

Dann habe ich durch Zufall herausgefunden, dass sich die Servos wieder bewegen, wenn ich die Masse des externen Netzteils mit dem Arduino verbinde und den Pluspol des Netzteils mit dem PCA9685 an V+ anschließe. D.h. jetzt funktioniert es wenn ich folgende Schaltung verwende: v2 — ImgBB

Ich habe eine Packung mit drei neuen PCA9685 bestellt und wieder das gleiche Problem - die Servos bewegen sich nicht mehr, wenn ich den vorgesehenen Platz für die externe Stromversorgung auf der PCA9685-Platine verwende - was ist da los? Kann mir das jemand erklären und mir helfen, wo das Problem liegt?

Danke

Bitte hänge Deine Bilder hier an.
Dafür gibt es ein Button im Editor.
Auf Fremdseiten abgelegte wird nur ein Teil der User anklicken - und die sind dann irgendwann da gelöscht. Was zur Folge hat, das niemand mehr nachvollziehen kann, was Du für ein Problem hattest. Somit ist der gesamte Thread tot.

Welche Module beutzt Du? Hersteller- oder wenigstens Verkäuferlink zum Produkt.
Wie hast Du das aufgebaut? Foto - von oben. Jedes Kabel sollte erkennbar sein.

Für mich klingt das nach vertauschten/falsch angeschlossenen Kabeln.

Ich nehme mal an Du verwendest die Platine von Adafruit
Aus der Beschreibung der Platine Overview | Adafruit PCA9685 16-Channel Servo Driver | Adafruit Learning System

Power Pins

  • GND - This is the power and signal ground pin, must be connected
  • VCC - This is the logic power pin, connect this to the logic level you want to use for the PCA9685 output, should be 3 - 5V max! It's also used for the 10K pullups on SCL/SDA so unless you have your own pullups, have it match the microcontroller's logic level too!
  • V+ - This is an optional power pin that will supply distributed power to the servos. If you are not using for servos you can leave disconnected. It is not used at all by the chip. You can also inject power from the 2-pin terminal block at the top of the board. You should provide 5-6VDC if you are using servos. If you have to, you can go higher to 12VDC, but if you mess up and connect VCC to V+ you could damage your board!

Die Schaltung aus Bild 1 müßte funktionieren.


Du brauchst die 5V vom Arduino für die Elektronik auf der Platine und die Spannungsversorgung vom Netzteil für die Servos. Die Masse muß zusammengeschaltet sein was aber auf der Servoplatine schon gemacht wurde.


Das ist eine sehr gefährliche Schaltung da der gesamte Servostrom durch den Arduino geschickt wird und dieser bei den hohen Strömen möglicherweise kaputt geht ( Masseverbindugen überhitzen wegen des hohen Stroms. Gleiches gilt für das Breadboard.

Wenn Du nach Bild 1 verdrahtet hast leuchtet dann die LED auf der PCA9685 Platine?

Grüße Uwe

Hallo - danke für deine Antwort @uwefed :slight_smile:

Ja ich habe die Pins nach deiner Beschreibung angeschlossen und verwende auch die von dir verlinkte Einheit. Ja das licht am PCA Board leuchtet (wenn Netzteil an vorgesehenem Platz):

Komischerweise ging es heute morgen jetzt alles wieder perfekt - hab nur andere Kabel verwendet - aber kann es wirklich daran liegen?

Was ich auch noch geändert habe, ich habe den Arduino einmal über ein normalen USB Stecker 5V betrieben und nicht direkt über den Laptop - danach hat es aber auch wieder über den Laptop funtkioniert - sehr weird:D

Diese Kabel haben schnell einen Bruch und somit kein Durchgang mehr. (Oder Wackelkontakt) den Durchgang kannst du mit einem Multimeter prüfen.

Wackelkontakte und schlechte Kontakte sind immer Möglich. Breadboard und Steckkontakte mit Kabel von Arduino sind nicht 100% sicher.
Grüße Uwe