Zum Inhalt springen

Weichenstraße mit Nano und Servo Modul PCA9685

Projekte und Tutorials für Arduino Foren StartHardware-Forum Weichenstraße mit Nano und Servo Modul PCA9685

  • Dieses Thema hat 3 Antworten und 1 Teilnehmer, und wurde zuletzt aktualisiert vor 3 Jahren von Franz-Peter.
Ansicht von 4 Beiträgen - 1 bis 4 (von insgesamt 4)
  • Autor
    Beiträge
  • #9185 Antworten
    Hans-Georg Müller
    Gast

    Guten Tag,
    ich möchte Weichenstraßen (W0-W7 und W8-W15)schalten mit o.g. Modul. Mit nachfolgendem Sketch zum Test nur Pendeln. Aber: es pendelt jeweils nur W0 und W(. Was ist mein Denkfehler?
    #include <Wire.h>
    #include <Adafruit_PWMServoDriver.h>

    Adafruit_PWMServoDriver myServos = Adafruit_PWMServoDriver();

    #define SERVOMIN 250
    #define SERVOMAX 400

    uint8_t servonum1 = 0;
    uint8_t numberOfServos1 = 7;
    uint8_t servonum2 = 8;
    uint8_t numberOfServos2 = 15;
    void setup() {
    myServos.begin();
    myServos.setPWMFreq(60);
    delay(10);
    }

    void loop() {
    for (uint16_t pulselen = SERVOMIN; pulselen < SERVOMAX; pulselen++){
    myServos.setPWM(servonum1, 0, pulselen);
    myServos.setPWM(servonum2, 8, pulselen);
    }
    delay(500);

    for (uint16_t pulselen = SERVOMAX; pulselen > SERVOMIN; pulselen–){
    myServos.setPWM(servonum1, 0, pulselen);
    myServos.setPWM(servonum2, 8, pulselen);
    }
    delay(500);

    servonum1 ++;
    servonum2 ++;
    if (servonum1 > numberOfServos1) servonum1 = 0;
    if (servonum2 > numberOfServos2) servonum2 = 8;
    }

    #9195 Antworten
    Stefan Hermann
    Administrator

    Hi Hans-Georg, ich glaube, du musst statt

    myServos.setPWM(servonum2, 8, pulselen);
    
    myServos.setPWM(servonum2, 0, pulselen);

    verwenden. Die 8 steckt ja schon in servonum2. Sag mal Bescheid, ob es das schon war.
    Liebe Grüße
    Stefan

    #9201 Antworten
    Franz-Peter
    Gast

    Hast Du das alles richtig verdrahtet? Bei mir funktioniert dein Sketch auf allen Ausgängen des PCA.

    Die von Stefan angemerkte Zeile solltest Du ändern, und den 2. Parameter auf 0 setzen. Das hat aber nichts mit deinem Problem zu tun. Der Paramter bestimmt nur die vordere Flanke des Servoimpuls.

    #9202 Antworten
    Franz-Peter
    Gast

    P.S. zum Steuern der Servos könntest Du auch meine MobaTools ( https://github.com/MicroBahner/MobaTools/tree/master )verwenden. Da kannst Du mit einem Arduino auch 16 Servos steuern ohne ein weiteres Modul zu benötigen. Und das langsame Bewegen des Servo übernimmt die Lib auch – da musst Du im Sketch nichts für tun. Installierbar direkt über den Bibliotheksmanager.

Ansicht von 4 Beiträgen - 1 bis 4 (von insgesamt 4)
Antwort auf: Antwort #9201 in Weichenstraße mit Nano und Servo Modul PCA9685
Deine Information: