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 2 Jahren, 8 Monaten von Franz-Peter.
-
AutorBeiträge
-
Hans-Georg MüllerGast
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 400uint8_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;
}Stefan HermannAdministratorHi 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
StefanFranz-PeterGastHast 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.
Franz-PeterGastP.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.
-
AutorBeiträge