17/05/2022, 20:27

Mình bị lỗi này mà không biết sửa sao: redefinition of 'PS2X ps2x'

// PS2 Tank by Igor Fonseca @2019
// Controls a robotic tank using a PS2 joystick, using D-pad buttons
// based on an example using the PS2X library by Bill Porter 2011
// All text above must be included in any redistribution.

// include libraries
#include <PS2X_lib.h>

// These are used to set the direction of the bridge driver.
#define ENA 3      //ENA
#define MOTORA_1 4 //IN3
#define MOTORA_2 5 //IN4
#define MOTORB_1 8 //IN1
#define MOTORB_2 7 //IN2
#define ENB 6      //ENB

PS2X ps2x; // create PS2 Controller Class

//right now, the library does NOT support hot pluggable controllers, meaning 
//you must always either restart your Arduino after you conect the controller, 
//or call config_gamepad(pins) again after connecting the controller.
int error = 0; 
byte type = 0;
byte vibrate = 0;

void setup(){

 // Configure output pins
 pinMode(ENA, OUTPUT);
 pinMode(MOTORA_1, OUTPUT);
 pinMode(MOTORA_2, OUTPUT);
 pinMode(ENB, OUTPUT);
 pinMode(MOTORB_1, OUTPUT);
 pinMode(MOTORB_2, OUTPUT);

 // Disable both motors
 digitalWrite(ENA,0);
 digitalWrite(ENB,0);

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

 // Check for error
 if(error == 0){
  Serial.println("Found Controller, configured successful");
 }
   
 else if(error == 1)
  Serial.println("No controller found, check wiring or reset the Arduino");
   
 else if(error == 2)
  Serial.println("Controller found but not accepting commands");
  
 else if(error == 3)
  Serial.println("Controller refusing to enter Pressures mode, may not support it.");
   
 // Check for the type of controller
 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("GuitarHero Controller Found");
    break;
  }
}

// Main loop
void loop(){
   
 if(error == 1) //skip loop if no controller found
  return; 
  
 else { //DualShock Controller
  
    ps2x.read_gamepad(false, vibrate); // disable vibration of the controller

    int nJoyL = ps2x.Analog(PSS_LY); // read left stick
    int nJoyR = ps2x.Analog(PSS_RY); // read right stick
   
    nJoyL = map(nJoyL, 0, 255, 1023, -1023);
    nJoyR = map(nJoyR, 0, 255, -1023, 1023);

    // Perform movements based on both analog sticks
     if(nJoyR>50) {
        digitalWrite(MOTORA_1,HIGH);
        digitalWrite(MOTORA_2,LOW);
        analogWrite(ENA, 1023);
     }
     if(nJoyR<-50) {
        digitalWrite(MOTORA_1,LOW);
        digitalWrite(MOTORA_2,HIGH);
        analogWrite(ENA, 1023);
     }
     if (abs(nJoyR)<50) {
        analogWrite(ENA, 0);
     }
     
     if(nJoyL>50) {
        digitalWrite(MOTORB_1,HIGH);
        digitalWrite(MOTORB_2,LOW);
        analogWrite(ENB, 1023);
     }
     if(nJoyL<-50) {
        digitalWrite(MOTORB_1,LOW);
        digitalWrite(MOTORB_2,HIGH);
        analogWrite(ENB, 1023);
     }
     if (abs(nJoyL)<50) {
        analogWrite(ENB, 0);
     }     

 delay(50);
 }    
}

Bùi Nhật Phương viết 20:28 ngày 17/05/2022

Arduino: 1.8.19 (Windows 10), Board: "Arduino Uno"

 

 

 

 

 

 

 

 

 

 

Dpad:17:6: error: redefinition of 'PS2X ps2x'

 PS2X ps2x; // create PS2 Controller Class

      ^~~~

In file included from C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\MakerBotwPS2.ino:2:0:

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\PS2_controller.h:4:6: note: 'PS2X ps2x' previously declared here

 PS2X ps2x; // create PS2 Controller Class

      ^~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\Dpad.ino: In function 'void setup()':

Dpad:26:6: error: redefinition of 'void setup()'

 void setup(){

      ^~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\MakerBotwPS2.ino:4:6: note: 'void setup()' previously defined here

 void setup()

      ^~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\Dpad.ino: In function 'void loop()':

Dpad:75:6: error: redefinition of 'void loop()'

 void loop(){

      ^~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\MakerBotwPS2.ino:12:6: note: 'void loop()' previously defined here

 void loop()

      ^~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\L2R2.ino: At global scope:

L2R2:20:6: error: redefinition of 'PS2X ps2x'

 PS2X ps2x; // create PS2 Controller Class

      ^~~~

In file included from C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\MakerBotwPS2.ino:2:0:

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\PS2_controller.h:4:6: note: 'PS2X ps2x' previously declared here

 PS2X ps2x; // create PS2 Controller Class

      ^~~~

L2R2:25:5: error: redefinition of 'int error'

 int error = 0;

     ^~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\Dpad.ino:22:5: note: 'int error' previously defined here

 int error = 0;

     ^~~~~

L2R2:26:6: error: redefinition of 'byte type'

 byte type = 0;

      ^~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\Dpad.ino:23:6: note: 'byte type' previously defined here

 byte type = 0;

      ^~~~

L2R2:27:6: error: redefinition of 'byte vibrate'

 byte vibrate = 0;

      ^~~~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\Dpad.ino:24:6: note: 'byte vibrate' previously defined here

 byte vibrate = 0;

      ^~~~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\L2R2.ino: In function 'void setup()':

L2R2:29:6: error: redefinition of 'void setup()'

 void setup(){

      ^~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\MakerBotwPS2.ino:4:6: note: 'void setup()' previously defined here

 void setup()

      ^~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\L2R2.ino: In function 'void loop()':

L2R2:78:6: error: redefinition of 'void loop()'

 void loop(){

      ^~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\MakerBotwPS2.ino:12:6: note: 'void loop()' previously defined here

 void loop()

      ^~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\LAnalog.ino: At global scope:

LAnalog:17:5: error: redefinition of 'int motor_right_speed'

 int motor_right_speed = 0;

     ^~~~~~~~~~~~~~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\L2R2.ino:17:5: note: 'int motor_right_speed' previously defined here

 int motor_right_speed = 0;

     ^~~~~~~~~~~~~~~~~

LAnalog:18:5: error: redefinition of 'int motor_left_speed'

 int motor_left_speed = 0;

     ^~~~~~~~~~~~~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\L2R2.ino:18:5: note: 'int motor_left_speed' previously defined here

 int motor_left_speed = 0;

     ^~~~~~~~~~~~~~~~

LAnalog:20:6: error: redefinition of 'PS2X ps2x'

 PS2X ps2x; // create PS2 Controller Class

      ^~~~

In file included from C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\MakerBotwPS2.ino:2:0:

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\PS2_controller.h:4:6: note: 'PS2X ps2x' previously declared here

 PS2X ps2x; // create PS2 Controller Class

      ^~~~

LAnalog:25:5: error: redefinition of 'int error'

 int error = 0;

     ^~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\Dpad.ino:22:5: note: 'int error' previously defined here

 int error = 0;

     ^~~~~

LAnalog:26:6: error: redefinition of 'byte type'

 byte type = 0;

      ^~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\Dpad.ino:23:6: note: 'byte type' previously defined here

 byte type = 0;

      ^~~~

LAnalog:27:6: error: redefinition of 'byte vibrate'

 byte vibrate = 0;

      ^~~~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\Dpad.ino:24:6: note: 'byte vibrate' previously defined here

 byte vibrate = 0;

      ^~~~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\LAnalog.ino: In function 'void setup()':

LAnalog:29:6: error: redefinition of 'void setup()'

 void setup(){

      ^~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\MakerBotwPS2.ino:4:6: note: 'void setup()' previously defined here

 void setup()

      ^~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\LAnalog.ino: In function 'void loop()':

LAnalog:78:6: error: redefinition of 'void loop()'

 void loop(){

      ^~~~

Multiple libraries were found for "PS2X_lib.h"

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\MakerBotwPS2.ino:12:6: note: 'void loop()' previously defined here

 Used: C:\Users\Welcome\Documents\Arduino\libraries\PS2X_lib-master

 void loop()

 Not used: C:\Users\Welcome\Documents\Arduino\libraries\Arduino-PS2X-ESP32-Makerbot-master

      ^~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\diffirentialdrive.ino: At global scope:

diffirentialdrive:17:6: error: redefinition of 'PS2X ps2x'

 PS2X ps2x; // create PS2 Controller Class

      ^~~~

In file included from C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\MakerBotwPS2.ino:2:0:

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\PS2_controller.h:4:6: note: 'PS2X ps2x' previously declared here

 PS2X ps2x; // create PS2 Controller Class

      ^~~~

diffirentialdrive:22:5: error: redefinition of 'int error'

 int error = 0;

     ^~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\Dpad.ino:22:5: note: 'int error' previously defined here

 int error = 0;

     ^~~~~

diffirentialdrive:23:6: error: redefinition of 'byte type'

 byte type = 0;

      ^~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\Dpad.ino:23:6: note: 'byte type' previously defined here

 byte type = 0;

      ^~~~

diffirentialdrive:24:6: error: redefinition of 'byte vibrate'

 byte vibrate = 0;

      ^~~~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\Dpad.ino:24:6: note: 'byte vibrate' previously defined here

 byte vibrate = 0;

      ^~~~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\diffirentialdrive.ino: In function 'void setup()':

diffirentialdrive:26:6: error: redefinition of 'void setup()'

 void setup(){

      ^~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\MakerBotwPS2.ino:4:6: note: 'void setup()' previously defined here

 void setup()

      ^~~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\diffirentialdrive.ino: In function 'void loop()':

diffirentialdrive:75:6: error: redefinition of 'void loop()'

 void loop(){

      ^~~~

C:\Users\Welcome\AppData\Local\Temp\Rar$DIa0.343\MakerBotwPS2\MakerBotwPS2.ino:12:6: note: 'void loop()' previously defined here

 void loop()

      ^~~~

exit status 1

redefinition of 'PS2X ps2x'

 

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Bài liên quan
+1