INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
17.10.2017, 21:44 (Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2017 21:44 von Bikandajyo.)
Beitrag #9
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
So sieht mein momentaner Code aus:

Code:
#include <Wire.h>
#include <Adafruit_PWMServoDriver.h>

Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();

#define SERVOMIN  150
#define SERVOMAX  600

uint16_t servo1 = 0;
uint16_t servo2 = 1;
uint16_t servo3 = 2;
uint16_t servo4 = 3;
uint16_t servo5 = 4;

uint16_t servonum = 0;

void setup() {

  Serial.begin(9600);
  Serial.println("16 channel Servo test!");
  pwm.begin();
  pwm.setPWMFreq(60);


int pulseLen = map( 10, 0, 90, SERVOMIN, SERVOMAX );
pwm.setPWM(servo1, 0, pulseLen);
delay(500);
pulseLen = map( 10, 0, 90, SERVOMIN, SERVOMAX );
pwm.setPWM(servo2, 0, pulseLen);
delay(500);
pulseLen = map( 10, 0, 30, SERVOMIN, SERVOMAX );
pwm.setPWM(servo3, 0, pulseLen);
delay(500);
pulseLen = map( 10, 0, 90, SERVOMIN, SERVOMAX );
pwm.setPWM(servo4, 0, pulseLen);
delay(500);
pulseLen = map( 10, 0, 90, SERVOMIN, SERVOMAX );
pwm.setPWM(servo5, 0, pulseLen);
delay(500);
}

void loop() {
  // Drive each servo one at a time
  Serial.println(servonum);
  for (uint16_t pulselen = SERVOMIN; pulselen < SERVOMAX; pulselen++) {
    pwm.setPWM(servonum, 0, pulselen);
  }
  delay(500);
  for (uint16_t pulselen = SERVOMAX; pulselen > SERVOMIN; pulselen--) {
    pwm.setPWM(servonum, 0, pulselen);
  }
  delay(500);

  servonum ++;
  if (servonum > 15) servonum = 0;
}

Gruss Anna
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.10.2017, 21:45
Beitrag #10
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
Hier rächen sich Deine fehlenden Grundkenntnisse.
Die wirst Du auch nicht erlernen, wenn wir Dir Deine Anforderungen lösen. Deshalb werde ich das auch nicht tun.
Lerne endlich die Grundlagen, dann ist es wirklich leicht. Wenn man aber schon die Beispiele nicht versteht, kann da auch nichts raus kommen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.10.2017, 08:51 (Dieser Beitrag wurde zuletzt bearbeitet: 18.10.2017 12:12 von Bikandajyo.)
Beitrag #11
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
Hallo

Ich habe inzwischen 5 Servos angeschlossen und diesen Code dafÜr gemacht

Code:
uint16_t servo1 = 0;
uint16_t servo2 = 1;
uint16_t servo3 = 2;
uint16_t servo4 = 3;
uint16_t servo5 = 4;

SIE BEWEGEN SICH HIN UND HER.
Das Zappeln passiert aber davor so als wenn sie sich erst mal einrichten würden.

Wie würde denn ein Befehl ausschauen der nun nur 2 Servos aus der Mittestellung 10 Grad nach links dann 20 Grad nach rechts und wieder zurück zur Mittelstellung fährt und stoppt, aussehen?

Wie kann ich es überhaupt erreichen, dass wenn Strom auf dem Board ist alle Servos zu einer von mir vorgesetzten Mittelstellung fahren?

Gruss Anna

Hallo,

jetzt laufen 4 Servos schon mal ganz gut hin und her (langsam)

Wie kann ich daraus einer Erweiterung machen, dass ich bei einem Seriellen Befehl nur 2 von den 4 Servos anspreche. Sie solle dann einmal hin und her laufen und dann stoppen. Hat jemand eine Idee?

Hier der Code

Code:
#include <Wire.h>
#include <SunFounder_PCA9685_PWM.h>


#define SERVOMIN  300 // this is the 'minimum' pulse length count (out of 4096)
#define SERVOMAX  500 // this is the 'maximum' pulse length count (out of 4096)

void setup() {
  Serial.begin(9600);
  Serial.println("16 channel pwmServo");

  pwmBegin();
  
  pwmSetFrequency(60);  // Analog servos run at ~60 Hz updates

}

void setServoPulse(uint8_t n, double pulse) {
  double pulselength;
  
  pulselength = 1000000;   // 1,000,000 us per second
  pulselength /= 60;   // 60 Hz
  Serial.print(pulselength); Serial.println(" us per period");
  pulselength /= 4096;  // 12 bits of resolution
  Serial.print(pulselength); Serial.println(" us per bit");
  pulse *= 1000;
  pulse /= pulselength;
  Serial.println(pulse);
  pwmSetValue(n, pulse);
}

void loop() {
  // All channel increased pwm value
  for(int value=SERVOMIN; value<SERVOMAX; value++){
    for(int channel=0; channel<16; channel++){
       pwmSetValue(channel, value);
    }
    //delay(10);
    Serial.print("pwm value:");
    Serial.println(value);  
  }
  // All channel decreased pwm value
  for(int value=SERVOMAX; value>SERVOMIN; value--){
    for(int channel=0; channel<16; channel++){
       pwmSetValue(channel, value);
    }
    //delay(10);
    Serial.print("pwm value:");
    Serial.println(value);  
  }
}

Lieben Dank
Anna
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.10.2017, 13:54
Beitrag #12
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
....könnte ich dann mit Switch Case machen

Code:
switch (meineVariable) {
  case 1:
    befehl1; ( heir dann der Ablauf für die 2 Servos)
    break;
  case 2:
    befehl2;( heir dann der Ablauf für z.B. alle 4  Servos)
    break;
  default:
    befehl3; ( heir dann der Ablauf für die 2 Servos  ach Zeit)
    break;
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2017, 08:01 (Dieser Beitrag wurde zuletzt bearbeitet: 17.12.2017 09:03 von Bikandajyo.)
Beitrag #13
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
Hallo,
Ich habe nun ein Skript erstellt was eigentlich schon mql ganz gut funktioniert.
Leider finden einige Servos die richtige Endstellung nicht und zittern dann hin und her.manchmql hören Sie auf und manchmal uch nicht.
Hier erst mal der Code

PHP-Code:
// NANO Board zum Betrieb des 16 Kanal Servo Treiber Shields mit serieller Anbindung
#include <SunFounder_PCA9685.h>
#include <Wire.h>

const int LED 7// Kontroll Leuchte

#define SERVOMIN  800  // this is the 'minimum' pulse length
#define SERVOMAX  2200 // this is the 'maximum' pulse length 

PCA9685 pwm1 PCA9685(0x40);

int servoverzoegerung 2;

int servo1_chn 0;   // linker Arm - hoch / runter
int servo2_chn 1;   // linker Arm - vor  / zurueck
int servo3_chn 2;   // linker Ellenbogen
int servo4_chn 16;   // rechter Arm - hoch / runter
int servo5_chn 5;   // rechter Arm - vor  / zurueck
int servo6_chn 6;   // rechter Ellenbogen

int servo1ausgangsstellung 10;
int servo2ausgangsstellung 100;
int servo3ausgangsstellung 100;
int servo4ausgangsstellung 80;
int servo5ausgangsstellung 1;
int servo6ausgangsstellung 80;

int servo1zielstellung 10;
int servo2zielstellung 100;
int servo3zielstellung 100;
int servo4zielstellung 80;
int servo5zielstellung 1;
int servo6zielstellung 80;


//einzelnes Servo machen
void einzelnesServoEinenSchrittWeiterSteuern(int chnint angleStartint angleEndint servoverzoegerung)
{
  if(
angleStart angleEnd)//Wenn die Servostartposition kleiner ist als die Zielposition mache einen kleinen Schritt
  
{
    
pwm1.angleWrite(chnangleStart);
        
delay(servoverzoegerung);
  }
  else if(
angleStart angleEnd)   //wenn die Servostartposition groesser ist als die Zielposition mache einen kleinen Schritt
  
{
    
pwm1.angleWrite(chnangleStart);
        
delay(servoverzoegerung);
  }
  else
  {
    
//nichts machen (ausser einer kleinen Pause), da Startposition des Servos gleich der Zielpositon ist
    
delay(servoverzoegerung);
  }
}


//Servogeschwindigkeit
//void servoMitAngepassterGeschwindigkeit(int chn, int angleStart, int angleEnd, int delayTime)
void servoMitAngepassterGeschwindigkeit(int servo1_chn
int  servo1ausgangsstellungint  servo1zielstellung
int  servo2_chnint  servo2ausgangsstellungint  servo2zielstellungint  servo3_chnint  servo3ausgangsstellungint  servo3zielstellungint  servo4_chnint  servo4ausgangsstellungint  servo4zielstellungint  servo5_chnint  servo5ausgangsstellungint  servo5zielstellungint  servo6_chnint  servo6ausgangsstellungint  servo6zielstellungint  servoverzoegerung)
{
  
//fuehre 180 Schleifen durch um die maximalen Servoausschlaege abzudecken
  
for(int startzaehler 0startzaehler 110startzaehler++)
    {
      
//steuere jetzt jedes einzelne Servo an und passe die Ausgangsstellung an:
      
      //Servo 1
      
einzelnesServoEinenSchrittWeiterSteuern(servo1_chn,  servo1ausgangsstellung,  servo1zielstellungservoverzoegerung);
      if(
servo1ausgangsstellung servo1zielstellung)
      {
        
//wenn die Ausgangsstellung des Servos groesser ist als die Zielstellung, verringere die Ausgangsstellung um 1
        
servo1ausgangsstellung--;
      }
      else if (
servo1ausgangsstellung servo1zielstellung)
      {
        
//wenn die Ausgangsstellung des Servos kleiner ist als die Zielstellung, erhoehe die Ausgangsstellung um 1
        
servo1ausgangsstellung++;
      }
      
      
      
//Servo 2
      
einzelnesServoEinenSchrittWeiterSteuern(servo2_chn,  servo2ausgangsstellung,  servo2zielstellungservoverzoegerung);
      if(
servo2ausgangsstellung servo2zielstellung)
      {
        
//wenn die Ausgangsstellung des Servos groesser ist als die Zielstellung, verringere die Ausgangsstellung um 1
        
servo2ausgangsstellung--;
      }
      else if (
servo2ausgangsstellung servo2zielstellung)
      {
        
//wenn die Ausgangsstellung des Servos kleiner ist als die Zielstellung, erhoehe die Ausgangsstellung um 1
        
servo2ausgangsstellung++;
      }
      
      
      
//Servo 3
      
einzelnesServoEinenSchrittWeiterSteuern(servo3_chnservo3ausgangsstellungservo3zielstellungservoverzoegerung);
      if(
servo3ausgangsstellung servo3zielstellung)
      {
        
//wenn die Ausgangsstellung des Servos groesser ist als die Zielstellung, verringere die Ausgangsstellung um 1
        
servo3ausgangsstellung--;
      }
      else if (
servo3ausgangsstellung servo3zielstellung)
      {
        
//wenn die Ausgangsstellung des Servos kleiner ist als die Zielstellung, erhoehe die Ausgangsstellung um 1
        
servo3ausgangsstellung++;
      }
      
      
         
//Servo 4
      
einzelnesServoEinenSchrittWeiterSteuern(servo4_chnservo4ausgangsstellungservo4zielstellungservoverzoegerung);
      if(
servo4ausgangsstellung servo4zielstellung)
      {
        
//wenn die Ausgangsstellung des Servos groesser ist als die Zielstellung, verringere die Ausgangsstellung um 1
        
servo4ausgangsstellung--;
      }
      else if (
servo4ausgangsstellung servo3zielstellung)
      {
        
//wenn die Ausgangsstellung des Servos kleiner ist als die Zielstellung, erhoehe die Ausgangsstellung um 1
        
servo4ausgangsstellung++;
      }
      
      
      
//Servo 5
      
einzelnesServoEinenSchrittWeiterSteuern(servo5_chn,   servo5ausgangsstellung,  servo5zielstellung,  servoverzoegerung);
      if(
servo5ausgangsstellung servo5zielstellung)
      {
        
//wenn die Ausgangsstellung des Servos groesser ist als die Zielstellung, verringere die Ausgangsstellung um 1
        
servo5ausgangsstellung--;
      }
      else if (
servo5ausgangsstellung servo5zielstellung)
      {
        
//wenn die Ausgangsstellung des Servos kleiner ist als die Zielstellung, erhoehe die Ausgangsstellung um 1
        
servo5ausgangsstellung++;
      }
      
          
      
//Servo 6
      
einzelnesServoEinenSchrittWeiterSteuern(servo6_chnservo6ausgangsstellung,  servo6zielstellungservoverzoegerung);
      if(
servo6ausgangsstellung servo6zielstellung)
      {
        
//wenn die Ausgangsstellung des Servos groesser ist als die Zielstellung, verringere die Ausgangsstellung um 1
        
servo6ausgangsstellung--;
      }
      else if (
servo6ausgangsstellung servo6zielstellung)
      {
        
//wenn die Ausgangsstellung des Servos kleiner ist als die Zielstellung, erhoehe die Ausgangsstellung um 1
        
servo6ausgangsstellung++;
      }
      

          
//Servo 6
      
einzelnesServoEinenSchrittWeiterSteuern(servo6_chnservo6ausgangsstellung,  servo6zielstellungservoverzoegerung);
      if(
servo6ausgangsstellung servo6zielstellung)
      {
        
//wenn die Ausgangsstellung des Servos groesser ist als die Zielstellung, verringere die Ausgangsstellung um 1
        
servo6ausgangsstellung--;
      }
      else if (
servo6ausgangsstellung servo6zielstellung)
      {
        
//wenn die Ausgangsstellung des Servos kleiner ist als die Zielstellung, erhoehe die Ausgangsstellung um 1
        
servo6ausgangsstellung++;
      }
      
    }
//Ende der Schleifen

}

void setup()
{
  
Serial.begin(9600);
  
pwm1.begin();

  
Serial.print("begin mit den Grundeinstellungen ");
  
// Digitaler PIN mit der LED ist ein Ausgang
  
pinMode(LEDOUTPUT);

  
// default frequency is 50
  
pwm1.setFreq(50);

  
// Einstellungen min_pulse_width, max_pulse_width 
  
pwm1.setServo(SERVOMINSERVOMAX);

  
//  SERVO Grundeinstellungen der Servos wo sie starten sollen
  
  
pwm1.angleWrite(servo1_chn,servo1ausgangsstellung);
  
pwm1.angleWrite(servo2_chn,servo2ausgangsstellung);
  
pwm1.angleWrite(servo3_chn,servo3ausgangsstellung);
  
pwm1.angleWrite(servo4_chn,servo4ausgangsstellung); 
  
pwm1.angleWrite(servo5_chn,servo5ausgangsstellung);
  
pwm1.angleWrite(servo6_chn,servo6ausgangsstellung);

  
Serial.println("Alle Servos sind nun in Grundstellung gefahren");
  
delay(1000);
  
digitalWrite(7HIGH); //schalte LED 2 an;
}

void loop()
{

if (
Serial.available())
{
    
char serialData Serial.read();
    switch (
serialData)
    {
      case 
'1':

            
servo1zielstellung=2;
            
servo2zielstellung=80;
            
servo3zielstellung=80;
            
servo4zielstellung=80;  
            
servo5zielstellung=80;
            
servo6zielstellung=80;
                       
            
servoMitAngepassterGeschwindigkeit(servo1_chnservo1ausgangsstellungservo1zielstellungservo2_chnservo2ausgangsstellungservo2zielstellungservo3_chnservo3ausgangsstellungservo3zielstellungservo4_chnservo4ausgangsstellungservo4zielstellungservo5_chnservo5ausgangsstellungservo5zielstellungservo6_chnservo6ausgangsstellungservo6zielstellungservoverzoegerung);
            
            
servo1ausgangsstellung=servo1zielstellung;
            
servo2ausgangsstellung=servo2zielstellung;
            
servo3ausgangsstellung=servo3zielstellung;
            
servo4ausgangsstellung=servo4zielstellung;
            
servo5ausgangsstellung=servo5zielstellung;
            
servo6ausgangsstellung=servo6zielstellung;
            
            
digitalWrite(7LOW); //schalte LED 2 an;
            
Serial.println("->CASE 1 ");
            
delay(1000);
        break;


        case 
'2':
            
servo1zielstellung=80;
            
servo2zielstellung=2;
            
servo3zielstellung=10;
            
servo4zielstellung=2;
            
servo5zielstellung=2;
            
servo6zielstellung=2;
                        
            
servoMitAngepassterGeschwindigkeit(servo1_chnservo1ausgangsstellungservo1zielstellungservo2_chnservo2ausgangsstellungservo2zielstellungservo3_chnservo3ausgangsstellungservo3zielstellungservo4_chnservo4ausgangsstellungservo4zielstellungservo5_chnservo5ausgangsstellungservo5zielstellungservo6_chnservo6ausgangsstellungservo6zielstellungservoverzoegerung);
           
            
servo1ausgangsstellung=servo1zielstellung;
            
servo2ausgangsstellung=servo2zielstellung;
            
servo3ausgangsstellung=servo3zielstellung;
            
servo4ausgangsstellung=servo4zielstellung;
            
servo5ausgangsstellung=servo5zielstellung;
            
servo6ausgangsstellung=servo6zielstellung;
            
            
digitalWrite(7HIGH);           //schalte LED 2 AUS;
            
Serial.println("->CASE 2 / 4 auf  = 25  und LED aus");
            
delay(1000);
      break;


        case 
'3':
            
servo1zielstellung=45;
            
servo2zielstellung=45;
            
servo3zielstellung=45;
            
servo4zielstellung=90;
            
servo5zielstellung=45;
            
servo6zielstellung=45;

            
servoMitAngepassterGeschwindigkeit(servo1_chnservo1ausgangsstellungservo1zielstellungservo2_chnservo2ausgangsstellungservo2zielstellungservo3_chnservo3ausgangsstellungservo3zielstellungservo4_chnservo4ausgangsstellungservo4zielstellungservo5_chnservo5ausgangsstellungservo5zielstellungservo6_chnservo6ausgangsstellungservo6zielstellungservoverzoegerung);
            
            
servo1ausgangsstellung=servo1zielstellung;
            
servo2ausgangsstellung=servo2zielstellung;
            
servo3ausgangsstellung=servo3zielstellung;
            
servo4ausgangsstellung=servo4zielstellung;
            
servo5ausgangsstellung=servo5zielstellung;
            
servo6ausgangsstellung=servo6zielstellung;

            
digitalWrite(7HIGH);           //schalte LED 2 AUS;
            
Serial.println("->CASE 3 auf = 45  und LED aus");
            
delay(1000);
      break;



case 
'4':
            
servo1zielstellung=80;
            
servo2zielstellung=0;
            
servo3zielstellung=90;
            
servo4zielstellung=80;
            
servo5zielstellung=2;
            
servo6zielstellung=2;

            
servoMitAngepassterGeschwindigkeit(servo1_chnservo1ausgangsstellungservo1zielstellungservo2_chnservo2ausgangsstellungservo2zielstellungservo3_chnservo3ausgangsstellungservo3zielstellungservo4_chnservo4ausgangsstellungservo4zielstellungservo5_chnservo5ausgangsstellungservo5zielstellungservo6_chnservo6ausgangsstellungservo6zielstellungservoverzoegerung);
            
            
servo1ausgangsstellung=servo1zielstellung;
            
servo2ausgangsstellung=servo2zielstellung;
            
servo3ausgangsstellung=servo3zielstellung;
            
servo4ausgangsstellung=servo4zielstellung;
            
servo5ausgangsstellung=servo5zielstellung;
            
servo6ausgangsstellung=servo6zielstellung;

            
            
digitalWrite(7HIGH);           //schalte LED 2 AUS;
            
Serial.println("->CASE 4 auf = 100  und LED aus");
            
delay(1000);
      break;




case 
'5':
            
servo1zielstellung=2;
            
servo2zielstellung=2;
            
servo3zielstellung=2;
            
servo4zielstellung=10;
            
servo5zielstellung=90;
            
servo6zielstellung=90;

            
servoMitAngepassterGeschwindigkeit(servo1_chnservo1ausgangsstellungservo1zielstellungservo2_chnservo2ausgangsstellungservo2zielstellungservo3_chnservo3ausgangsstellungservo3zielstellungservo4_chnservo4ausgangsstellungservo4zielstellungservo5_chnservo5ausgangsstellungservo5zielstellungservo6_chnservo6ausgangsstellungservo6zielstellungservoverzoegerung);
            
            
servo1ausgangsstellung=servo1zielstellung;
            
servo2ausgangsstellung=servo2zielstellung;
            
servo3ausgangsstellung=servo3zielstellung;
            
servo4ausgangsstellung=servo4zielstellung;
            
servo5ausgangsstellung=servo5zielstellung;
            
servo6ausgangsstellung=servo6zielstellung;

            
            
digitalWrite(7HIGH);           //schalte LED 2 AUS;
            
Serial.println("->CASE 5 auf  = 0  und LED aus");
            
delay(1000);

            
      break;

      default:  ;
    };
}

Auf einer Servoseite im Internet wird auch von diesem Zittern gesprochen und die meinen

......Um das zu verhindern, sollte der Impuls nach erreichen des Zielwinkels auf LOW geschalten werden......
Hat hier jemand eine Idee wie man das mit dem Servo Board machen kann also nach erreichen der Zielstellung das Nachstellen zu verhinden evtl. sogar mit Winkeltoleranz?

Gibt es vielleicht bessere Servos? Ich steuere damit 6 microservos an
Es sind towerpro Servos Servo SG90.

Das Servo 4 ist absichtlich am Channel 16 da es scheinbar besser geht am letzten Kanal

Dann ist noch etwas seltsam. Wenn ich Servo 1 oder 4 währen des Zitterns trenne beruhigen sich alle anderen und alles läuft gaaaanz toll und langsam ab. Die Signale scheinen sich zusätzlich auch noch gegenseitig zu beeinflussen. Wie geht das denn bzw. wie kann man das beheben?
Hat jemand eine Idee?

Vielen Dank Euch.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2017, 09:23
Beitrag #14
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
(17.12.2017 08:01)Bikandajyo schrieb:  Dann ist noch etwas seltsam. Wenn ich Servo 1 oder 4 währen des Zitterns trenne beruhigen sich alle anderen und alles läuft gaaaanz toll und langsam ab. Die Signale scheinen sich zusätzlich auch noch gegenseitig zu beeinflussen. Wie geht das denn bzw. wie kann man das beheben?
Wie versorgst Du denn die Servos mit Strom? Da brauchst Du schon eine ordentliche, stabile Stromversorgung mit 5V. Die 2 Batterien aus deinem ersten Bild reichen für einen stabilen Betrieb definitiv nicht aus.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2017, 09:55 (Dieser Beitrag wurde zuletzt bearbeitet: 17.12.2017 12:14 von Bikandajyo.)
Beitrag #15
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
Ich habe eine eigene Powebank dafür. Sie wird direkt an das Servo Shiel gemacht und versorgt ausschliesslich die Servos mit Strom (5 V)
Das Board selbst läuft auch mit 5V aber vom Arduino Nano versorgt.

Momentan sieht das Schaltbild bei mir natürlich schon ganz anders aus

Hier das Schaltbild:
[Bild: servo_breakout_Steckplatine.png]

.... wenn ich Servo 4 ab mache dann geht alles ganz toll.

Servo 4 habe ich auch schon gewechselt, das brachte keinen Erfolg

Warum beeinflusst Serve 1 das Servo 4 ????

IHR WERDET ES NICHT GLAUBEN!!!

Ich habe herausgefunden woran es lag! :-)

Es bestand eine metallische Verbindung zwischen Servo 1 und 4. Wenn ich diese löse, geht alles wie es soll. Muss also "nur" ein kleines Schräubchen aus Plastik finden, welches den Servo 4 in seiner Halterung hält.

YIPPPPPPPPYYYY
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2017, 15:44 (Dieser Beitrag wurde zuletzt bearbeitet: 17.12.2017 15:45 von Tommy56.)
Beitrag #16
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
(17.12.2017 09:55)Bikandajyo schrieb:  Ich habe eine eigene Powebank dafür. Sie wird direkt an das Servo Shiel gemacht und versorgt ausschliesslich die Servos mit Strom (5 V)
Das Board selbst läuft auch mit 5V aber vom Arduino Nano versorgt.

Momentan sieht das Schaltbild bei mir natürlich schon ganz anders aus

Hier das Schaltbild:
[Bild: servo_breakout_Steckplatine.png]

.... wenn ich Servo 4 ab mache dann geht alles ganz toll.

Servo 4 habe ich auch schon gewechselt, das brachte keinen Erfolg

Warum beeinflusst Serve 1 das Servo 4 ????

IHR WERDET ES NICHT GLAUBEN!!!

Ich habe herausgefunden woran es lag! :-)

Es bestand eine metallische Verbindung zwischen Servo 1 und 4. Wenn ich diese löse, geht alles wie es soll. Muss also "nur" ein kleines Schräubchen aus Plastik finden, welches den Servo 4 in seiner Halterung hält.

YIPPPPPPPPYYYY
Glückwunsch. Solche Fehler sind nicht einfach zu finden und vor allem nicht aus der Ferne.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Spannung anlegen bei Servo herby 12 604 31.10.2018 23:51
Letzter Beitrag: Bitklopfer
  Shield Zeichnung in Eagle huber5093 7 663 27.09.2018 13:41
Letzter Beitrag: hotsystems
  Arduino shield zählt komisch hoch Flap 10 1.279 13.09.2018 18:59
Letzter Beitrag: ardu_arne
  I2C bus ( Nano + PCA9685 ) wie verbinden ? uweq 11 1.357 31.07.2018 21:27
Letzter Beitrag: uweq
  Seeedstudio Grove OLED Display (0.96") ansteuerung ohne Basis Shield möglich? Grooxy 5 848 22.05.2018 00:09
Letzter Beitrag: avoid
  Ethernet-Shield Ardusil 9 1.500 09.03.2018 18:09
Letzter Beitrag: hotsystems
  Arduino Mega mit TFT Shield Diskusguppy 6 1.400 16.02.2018 10:35
Letzter Beitrag: Tommy56
  Welches GSM Shield Kaufen ?? huber5093 7 1.087 19.12.2017 07:53
Letzter Beitrag: Chopp
  nano, micro oder? für LAN Shield sepp01 10 1.702 12.11.2017 11:30
Letzter Beitrag: sepp01
  Steckertyp von SD Card Shield V4.0? alpenpower 7 1.283 10.11.2017 10:04
Letzter Beitrag: SkobyMobil

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste