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
Pwm Problem
19.02.2021, 11:08
Beitrag #1
Pwm Problem
Hallo Habe einen Roboter sketch der soweit funktioniert. Verwende ein mega 2560 und ein pwm shield PCA9685.Nun will ich weitere servos mit meinem ps2 controller via pwm ansteuern. Motoren Ansteuerung und die sticks arbeiten einwandfrei. Das Pad arbeitet hoch runter aber nicht links rechts.Sende euch mal den sketch.vielleicht sieht jemand den Fehler.


Angehängte Datei(en)
.ino  Ketten_Roboter.ino (Größe: 5,14 KB / Downloads: 20)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.02.2021, 11:20
Beitrag #2
RE: Pwm Problem
Setze deinen Sketch bitte in Code-Tags direkt ins Forum.

Wie das geht, steht hier.

Und wie versorgst du deine Servos mit Spannung ?

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.02.2021, 11:32
Beitrag #3
RE: Pwm Problem
Danke für die schnelle Antwort. Das pwm board wird extern mit 6volt versorgt. Werde den sketch einbinden.die Beiträge zu diesem Thema habe ich durchgesehen aber nichts vergleichbar es gefunden. LG tom
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.02.2021, 11:54
Beitrag #4
RE: Pwm Problem
(19.02.2021 11:08)safitom schrieb:  Hallo Habe einen Roboter sketch der soweit funktioniert. Verwende ein mega 2560 und ein pwm shield PCA9685.Nun will ich weitere servos mit meinem ps2 controller via pwm ansteuern. Motoren Ansteuerung und die sticks arbeiten einwandfrei. Das Pad arbeitet hoch runter aber nicht links rechts.Sende euch mal den sketch.vielleicht sieht jemand den Fehler.

Code:
#include <PS2X_lib.h> //for v1.6
#include <Adafruit_PWMServoDriver.h>
#include <Wire.h>

PS2X ps2x; // create PS2 Controller Class

Adafruit_PWMServoDriver pwm = Adafruit_PWMServoDriver();

#define MIN_PULSE_WIDTH 650
#define MAX_PULSE_WIDTH 2350
#define DEFAULT_PULSE_WIDTH 1500
#define FREQUENCY 50


int pulseWidth (int angle) {
int pulse_wide, analog_value;
  pulse_wide = map(angle, 0, 180, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH);
  analog_value = int(float (pulse_wide) / 1000000 * FREQUENCY * 4096);
  return analog_value;
}

const int motorPin1  = 6;  //Motor B+
const int motorPin2  = 7;  //Motor B-
const int motorPin3  = 8;  //Motor A+
const int motorPin4  = 9;  //Motor A-



int servoRYPosition = 170;
int servoLYPosition = 90;
int servoRXPosition = 90;
int servoLXPosition = 100;
int PadLeftPosition = 90;
int PadRightPosition = 170;

int joystickRYSpeed = 0;
int joystickLYSpeed = 0;
int joystickRXSpeed = 0;
int joystickLXSpeed = 0;
int PadLeftSpeed = 0;
int PadRightSpeed = 0;

int error = 0;
byte type = 0;
byte vibrate = 0;




void setup(){

pwm.begin();
  pwm.setPWMFreq(FREQUENCY);
  
Serial.begin(57600);
  error = ps2x.config_gamepad(10,12,11,13, true, false);   //setup pins and settings:  GamePad(clock, command, attention, data, Pressures?, Rumble?) check for error

  if(error == 0)
    Serial.println("Controller found! You may now send commands");

  else if(error == 1)
    Serial.println("No controller found, check wiring, see readme.txt to enable debug. visit www.billporter.info for troubleshooting tips");

  else if(error == 2)
    Serial.println("Controller found but not accepting commands. see readme.txt to enable debug. Visit www.billporter.info for troubleshooting tips");

  else if(error == 3)
    Serial.println("Controller refusing to enter Pressures mode, may not support it. ");
  
  

  type = ps2x.readType();
  switch(type)
  {
  case 0:
    Serial.println("Unknown Controller type");
    break;
  case 1:
    Serial.println("DualShock Controller Found");
    break;
  case 2:
   Serial.println("Controller found but not accepting commands. see readme.txt to enable debug. Visit www.billporter.info for troubleshooting tips");
    break;
  case 3:
    Serial.println("Controller refusing to enter Pressures mode, may not support it. ");
    break;

    

  }
  

  //Set Motor pins as outputs
    pinMode(motorPin1, OUTPUT);
    pinMode(motorPin2, OUTPUT);
    pinMode(motorPin3, OUTPUT);
    pinMode(motorPin4, OUTPUT);

    pinMode(4, OUTPUT); // LED

}




void loop()
{if(error == 1) //skip loop if no controller found
{
   Serial.println("No Controller Found,check wiring");
   return;
}
ps2x.read_gamepad(); //read controller
    
      
  joystickRYSpeed = (ps2x.Analog(PSS_RY) - 128) / 120;
    // -255 to provide equal +/- numbers
  joystickLYSpeed = (ps2x.Analog(PSS_LY) - 128) / 60;
    // negative 50 to reverse direction
  joystickRXSpeed = (ps2x.Analog(PSS_RX) - 128) / 60;
    // -255 to provide equal +/- numbers
  joystickLXSpeed = (ps2x.Analog(PSS_LX) - 128) / 60;
    // negative 50 to reverse direction  
  PadRightSpeed = (ps2x.Analog(PSB_PAD_RIGHT) - 128) / 60;
    // -255 to provide equal +/- numbers
  PadLeftSpeed = (ps2x.Analog(PSB_PAD_LEFT) - 128) / 60;
    // negative 50 to reverse direction

//Servoweg Einsellung    

servoRYPosition = constrain((servoRYPosition + joystickRYSpeed), 5, 175);
servoLYPosition = constrain((servoLYPosition + joystickLYSpeed), 5, 175);
servoRXPosition = constrain((servoRXPosition + joystickRXSpeed), 5, 190);
servoLXPosition = constrain((servoLXPosition + joystickLXSpeed), 60, 160);
PadLeftPosition = constrain((PadLeftPosition + PadLeftSpeed), 5, 175);
PadRightPosition = constrain((PadRightPosition + PadRightSpeed), 5, 175);
    // constarin function to not exceed servo limits

  
//PWM  Einstellungen
pwm.setPWM(0, 0, pulseWidth(servoRYPosition));
pwm.setPWM(1, 0, pulseWidth(servoLYPosition));
pwm.setPWM(2, 0, pulseWidth(servoRXPosition));
pwm.setPWM(4, 0, pulseWidth(servoLXPosition));
pwm.setPWM(5, 0, pulseWidth(PadLeftPosition));  
pwm.setPWM(5, 0, pulseWidth(PadRightPosition));

delay(10);
    // adjustable for overall speed


//Motor Steuerung

if(ps2x.Button(PSB_R1)== HIGH ) //L1 pressed
  {digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, HIGH);}
   else {digitalWrite(motorPin4 ,  LOW);
        
  }

if(ps2x.Button(PSB_R2) == HIGH)  //L2 pressed
  {digitalWrite(motorPin3, HIGH);
    digitalWrite(motorPin4, LOW);}
    else {digitalWrite(motorPin3 ,  LOW);
    }
  
if(ps2x.Button(PSB_L1)== HIGH ) //R1 pressed
  {digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, HIGH);}
    else {digitalWrite(motorPin2, LOW);}
  

if(ps2x.Button(PSB_L2) == HIGH)  //R2 pressed
  {digitalWrite(motorPin1, HIGH);
    digitalWrite(motorPin2, LOW);}
    else {digitalWrite(motorPin1, LOW);
  

// LED Steuerung

if(ps2x.Button(PSB_PAD_UP)== HIGH ) //Pad up pressed
  { digitalWrite(4, HIGH);}

if(ps2x.Button(PSB_PAD_DOWN)== HIGH ) //Pad down pressed
  { digitalWrite(4, LOW);}

  
  
    

  
    }

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.02.2021, 12:14
Beitrag #5
RE: Pwm Problem
Frage kennt sich niemand mit dem von mir Eingestellten Thema aus ?? Ein kleiner Tip wäre echt Hilfreich !!!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Problem Relaisplatine Maui 14 984 23.03.2021 15:20
Letzter Beitrag: hotsystems
  Problem mit "pow" awillib 9 820 27.02.2021 19:22
Letzter Beitrag: Tommy56
  Problem mit "Keyboard" und "Mouse" LK2567 4 560 03.02.2021 16:11
Letzter Beitrag: MicroBahner
  const char zu int Konvertierung Problem Lumplux 1 369 02.02.2021 10:26
Letzter Beitrag: Lumplux
  Arduino Uno+ Ethernetshield W5100 Website Problem Justus S. 9 828 31.01.2021 17:37
Letzter Beitrag: Tommy56
Sad MAX7221 mit gemeinsamer Anode und Problem Dezimalpunkt daja64 11 818 30.01.2021 11:07
Letzter Beitrag: daja64
  LCD via I2C Backlight-Problem Herby007 10 1.014 06.01.2021 14:46
Letzter Beitrag: Herby007
  OLED Bildschirm Problem JoeIsFame 79 3.408 04.01.2021 06:41
Letzter Beitrag: Bitklopfer
  Problem mit Variablen & Ergebnis rev.antun 11 894 26.11.2020 15:47
Letzter Beitrag: rev.antun
  Nextion Senden von Variablen Problem Tesla 10 1.394 08.11.2020 13:13
Letzter Beitrag: Tesla

Gehe zu:


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