I have built a simple program to drive two motors forward and backwards with an Arduino Due, DFR0601 PWM driver board and toggle switches.
My plan is to remove the toggle switches and replace them with a Logitech F710 USB gaming controller button press. The controller is connected to the Due USB Port.
I have added the JoystickController and USBHost Libraries to the program.
Unfortunately, I am getting no results from my Serial.println.
Please review and comment, Thanks for any help you can give.
//Microcontroller: Arduino DUE
//Motor Driver DFR0601
#include <JoystickController.h>
//*/
int PWM1 = 2;
int INA1 = 3;
int INB1 = 4;
int PWM2 = 5;
int INA2 = 6;
int INB2 = 7;
bool button_01 = false;
bool button_02 = false;
bool button_03 = false;
bool button_04 = false;
bool button_05 = false;
bool button_06 = false;
bool button_07 = false;
bool button_08 = false;
bool button_09 = false;
bool button_10 = false;
bool button_11 = false;
bool button_12 = false;
char button_Had;
unsigned int buttons = 0x0000;
char Asse_X = 127;
char Asse_Y = 127;
char Asse_Z = 127;
char Asse_R = 127;
bool change = false;
// Initialize USB Controller
USBHost usb;
// Attach joystick controller to USB
JoystickController Joystick(usb);
// This function intercepts joystick movements
void JoystickMovedX() {
Asse_X = Joystick.getXChange();
}
void JoystickMovedY() {
Asse_Y = Joystick.getYChange();
}
void JoystickMovedZ() {
Asse_Z = Joystick.getZChange();
}
void JoystickMovedR() {
Asse_R = Joystick.getRChange();
}
void JoystickReleased(){
buttons = Joystick.getButton();
button_01 = bitRead(buttons, 0);
button_02 = bitRead(buttons, 1);
button_03 = bitRead(buttons, 2);
button_04 = bitRead(buttons, 3);
button_05 = bitRead(buttons, 4);
button_06 = bitRead(buttons, 5);
button_07 = bitRead(buttons, 6);
button_08 = bitRead(buttons, 7);
button_09 = bitRead(buttons, 8);
button_10 = bitRead(buttons, 9);
button_11 = bitRead(buttons,10);
button_12 = bitRead(buttons,11);
}
void JoystickPressed(){
buttons = Joystick.getButton();
button_01 = bitRead(buttons, 0);
button_02 = bitRead(buttons, 1);
button_03 = bitRead(buttons, 2);
button_04 = bitRead(buttons, 3);
button_05 = bitRead(buttons, 4);
button_06 = bitRead(buttons, 5);
button_07 = bitRead(buttons, 6);
button_08 = bitRead(buttons, 7);
button_09 = bitRead(buttons, 8);
button_10 = bitRead(buttons, 9);
button_11 = bitRead(buttons,10);
button_12 = bitRead(buttons,11);
}
void JoystickHadChange(){
button_Had = Joystick.getHad();
change = true;
}
void setup()
{
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
pinMode(PWM1, OUTPUT);
pinMode(INA1, OUTPUT);
pinMode(INB1, OUTPUT);
pinMode(PWM2, OUTPUT);
pinMode(INA2, OUTPUT);
pinMode(INB2, OUTPUT);
}
void loop() {
// Process USB tasks
usb.Task();
if ( button_01 ) { Serial.println("Pressed Button 1"); };
if ( button_02 ) { Serial.println("Pressed Button 2"); };
if ( button_03 ) { Serial.println("Pressed Button 3"); };
if ( button_04 ) { Serial.println("Pressed Button 4"); };
if ( button_05 ) { Serial.println("Pressed Button 5"); };
if ( button_06 ) { Serial.println("Pressed Button 6"); };
if ( button_07 ) { Serial.println("Pressed Button 7"); };
if ( button_08 ) { Serial.println("Pressed Button 8"); };
if ( button_09 ) { Serial.println("Pressed Button 9"); };
if ( button_10 ) { Serial.println("Pressed Button 10"); };
if ( button_11 ) { Serial.println("Pressed Button 11"); };
if ( button_12 ) { Serial.println("Pressed Button 12"); };
//PWM speed adjustment
// run motor 1 forward
if (button_01 == LOW) {
digitalWrite(INA1, LOW); //Motor 1 rotates forward
digitalWrite(INB1, HIGH);
analogWrite(PWM1, 255); //PWM speed adjustment
} //PWM speed adjustment
// run motor 2 forward
else if (button_02 == LOW) {
digitalWrite(INA2, LOW); //Motor 2 rotates forward
digitalWrite(INB2, HIGH);
analogWrite(PWM2, 255); //PWM speed adjustment
} //PWM speed adjustment
// run motors 1 reverse
else if (button_03 == LOW) {
digitalWrite(INA1, HIGH); //Motor 1 rotates reverse
digitalWrite(INB1, LOW);
analogWrite(PWM1, 255); //PWM speed adjustment
} //PWM speed adjustment
// run motors 2 reverse
else if (button_04 == LOW) {
digitalWrite(INA2, HIGH); //Motor 2 rotates reverse
digitalWrite(INB2, LOW);
analogWrite(PWM2, 255); //PWM speed adjustment
} //PWM speed adjustment
// Motors stop
else {
digitalWrite(INA1, LOW);
digitalWrite(INA2, LOW); //Motor 1 stop
digitalWrite(INB1, LOW);
digitalWrite(INB2, LOW); //Motor 2 stop
analogWrite(PWM1, 255);
analogWrite(PWM2, 255);
}
}