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.12.2017, 18:16
Beitrag #17
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
Hallo,
auch ich möchte Dir ein Lob aussprechen. Gratuliere!
Kannst Du bitte den Fehler etwas genauer Beschreiben bitte.
Die Servos sind alle aus Plastik oder?
Gruß Georg

Sorry für mein nicht korrektes Deutsch. Sad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2017, 19:01
Beitrag #18
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
....Die Servos sind alle aus Plastik oder?

Die Servos selbst ja ABER die Servowelle ist aus Metall und auch das Getriebe ist aus Metall!

Fehler:
In den Endstellungen (wenn überhaupt gefunden) zappelten die Servos um bis zu 20 Grad herum. Sie schlugen also aus, hin und her.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
17.12.2017, 20:43 (Dieser Beitrag wurde zuletzt bearbeitet: 17.12.2017 21:05 von georg01.)
Beitrag #19
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
Zitat:In den Endstellungen (wenn überhaupt gefunden) zappelten die Servos um bis zu 20 Grad herum. Sie schlugen also aus, hin und her.

Und jetzt nicht mehr? …
Aber mir ist eingefallen, dass man Dein Code etwas optimieren könnte.
Mein Code sollte eigentlich selber wie Dein Code machen – probiere es bitte aus. (Habe nicht ! getestet wie auch keine Formatierung)

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;

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

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

  // default frequency is 50
  // pwm1.setFreq(1000);   <----- Probiere mit 1000

  // Einstellungen min_pulse_width, max_pulse_width
  pwm1.setServo(SERVOMIN, SERVOMAX);

  //  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(7, HIGH); //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;
            */
            
            pwm1.angleWrite(servo1_chn,2);
            pwm1.angleWrite(servo2_chn,80);
            pwm1.angleWrite(servo3_chn,80);
            pwm1.angleWrite(servo4_chn,80);
            pwm1.angleWrite(servo5_chn,80);
            pwm1.angleWrite(servo6_chn,80);
                      
            digitalWrite(7, LOW); //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;
            */
            
            pwm1.angleWrite(servo1_chn,80);
            pwm1.angleWrite(servo2_chn,2);
            pwm1.angleWrite(servo3_chn,10);
            pwm1.angleWrite(servo4_chn,2);
            pwm1.angleWrite(servo5_chn,2);
            pwm1.angleWrite(servo6_chn,2);
                        
            digitalWrite(7, HIGH);           //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;
            */
            
            pwm1.angleWrite(servo1_chn,45);
            pwm1.angleWrite(servo2_chn,45);
            pwm1.angleWrite(servo3_chn,45);
            pwm1.angleWrite(servo4_chn,90);
            pwm1.angleWrite(servo5_chn,45);
            pwm1.angleWrite(servo6_chn,45);

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

        // ... restliche case anpassen

    };
}
}

Gruß Georg

Sorry für mein nicht korrektes Deutsch. Sad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.12.2017, 11:54
Beitrag #20
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
"....Und jetzt nicht mehr? ….... "
Nein, jetzt nicht mehr, alle Servos laufen schön langsam.

Das ist auch das Stichwort zum Code.
Die Sachen welche Du aus dem Code herausgenommen hast sind dafür zuständig, dass die Servos schön langsam laufen. Sie arbeiten einzelne Schritte ab (OHNE DELAY :-) )

Gruss Anna
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.12.2017, 20:14
Beitrag #21
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
Hallo,
in der Server-Steuerung wird nach meiner Kenntnissen, mit der höchstverfügbare PWM- Frequenz wie auch mit Zeitverzögerungen (delay´s) gearbeitet.
Die Delay´s sind oft bei Server-Steuerung (im Gegenteil zur der Prozedurale Programmierung der Arduino´s) erwünscht. Die lassen dem Servomotor Zeit, lediglich die Zielposition zu erreichen.
Aber wenn bei Dir alles Funktioniert – sorry für meine Verwirrung. (War nur gut gemeint.)
Also Hut ab; - freue mich, dass Du die Server im Griff hast.
Gruß Georg

Sorry für mein nicht korrektes Deutsch. Sad
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.12.2017, 20:27
Beitrag #22
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
... meine Servos drehen sich sehr langsam (ist einstellbar) und das ohne jeglicher Verwendung irgendwelcher Pausen im Code. :-))))

Übrigens steuere ich die Cases inzwischen sriell an. Es sind nun auch mehrere Boards beteiligt. 3 Nanos ein Uno und ein mega :-) und alle "reden" über TX / RX :-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
18.12.2017, 20:33
Beitrag #23
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
(18.12.2017 20:27)Bikandajyo schrieb:  ... meine Servos drehen sich sehr langsam (ist einstellbar) und das ohne jeglicher Verwendung irgendwelcher Pausen im Code. :-))))

Übrigens steuere ich die Cases inzwischen sriell an. Es sind nun auch mehrere Boards beteiligt. 3 Nanos ein Uno und ein mega :-) und alle "reden" über TX / RX :-)
Das klingt gut. Nochmal ein "Spitze gemacht" von mir. Ich habe Dich unterschätzt. Das war mein Fehler.
Da kann ich nur sagen "Weiter so".

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
20.12.2017, 07:07 (Dieser Beitrag wurde zuletzt bearbeitet: 20.12.2017 07:08 von Bikandajyo.)
Beitrag #24
RE: SunFounder 16 Channel 12 Bit PCA9685 PWM Servo I2C Driver Shield
Danke schön. Das Lob kann ich gut gebrauchen. Es gibt noch viel zu tun uhd im Januar muß ich ja abgeben und alles präsentieren. Leider habe ich es nicht mehr geschafft, die Hindernisvermeidung einzubauen. Ich musste ja mit allem Anderen erst fertig werden. Ich kann ja mal ein Video machen und Euch zeigen wie weit ich bin. Shy
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