//Defining pin
//Analog Pin
int JoyStick_X = 0; //x
int JoyStick_Y = 1; //y
int JoyStick_X2 = 4; //x2
int JoyStick_Y2 = 5; //y2
//Digital Pin
int JoyStick_Z = 4; //Button 1
int JoyStick_Z2 = 2; //Button 2
int Button_LED_Z = 8; //Pin output to Button_LED_Z
int Button_LED_Z2 = 7; //Pin output to Button_LED_Z2
int Analog_LED_1 = 6; //pwm Pin output to Analog_LED_1
int Analog_LED_2 = 9; //pwm Pin output to Analog_LED_2
int Motor_A_Enable = 3; //pmw pin
int Motor_A_DirA = 5;
int Motor_A_DirB = 10;
int Motor_B_Enable = 11; //pmw pin
int Motor_B_DirA = 12;
int Motor_B_DirB = 13;
//analog value
int sensorValue_X ; // value read from the Joystick Value
int outputValue_X ; // value output to the PWM
int sensorValue_Y ; // value read from the Joystick Value
int outputValue_Y ; // value output to the PWM
int sensorValue_X2 ; // value read from the Joystick Value
int outputValue_X2 ; // value output to the PWM
int sensorValue_Y2 ; // value read from the Joystick Value
int outputValue_Y2 ; // value output to the PWM
void setup() {
// put your setup code here, to run once:
//Define Button LED’s pin)
pinMode(JoyStick_Z, INPUT);
pinMode(JoyStick_Z2, INPUT);
pinMode(Button_LED_Z, OUTPUT);
pinMode(Button_LED_Z2, OUTPUT);
pinMode(Motor_A_Enable, OUTPUT);
pinMode(Motor_A_DirA, OUTPUT);
pinMode(Motor_A_DirB, OUTPUT);
pinMode(Motor_B_Enable, OUTPUT);
pinMode(Motor_B_DirA, OUTPUT);
pinMode(Motor_B_DirB, OUTPUT);
Serial.begin(9600); // 9600 bps
}
void loop() {
// put your main code here, to run repeatedly:
//Press buttons to lit up different Button_LED
if(digitalRead(JoyStick_Z2) == HIGH)
{
digitalWrite(Button_LED_Z2,HIGH);
}
else if(digitalRead(JoyStick_Z) == HIGH)
{
digitalWrite(Button_LED_Z,HIGH);
}
else if(digitalRead(JoyStick_Z) == HIGH && digitalRead(JoyStick_Z2) == HIGH)
{
digitalWrite(Button_LED_Z,HIGH);
digitalWrite(Button_LED_Z2,HIGH);
}
else {
digitalWrite(Button_LED_Z,LOW);
digitalWrite(Button_LED_Z2,LOW);
}
delay(50);
// read the analog in value:
//PROBLEM HERE: here can only read 1 analog value
sensorValue_X = analogRead(JoyStick_X);
sensorValue_X >>= 1;
sensorValue_X2 = analogRead(JoyStick_X2);
sensorValue_X2 >>= 1;
if(sensorValue_X > 255){
analogWrite(Motor_A_Enable,(sensorValue_X - 256));
digitalWrite(Motor_A_DirB, LOW);
digitalWrite(Motor_A_DirA, HIGH);
analogWrite(Analog_LED_1, (sensorValue_X - 256));
}
else
if(sensorValue_X < 255){
analogWrite(Motor_A_Enable,(255 - sensorValue_X));
digitalWrite(Motor_A_DirA, LOW);
digitalWrite(Motor_A_DirB, HIGH);
analogWrite(Analog_LED_1, (255 - sensorValue_X));
}
else{
digitalWrite(Motor_A_DirA, LOW);
digitalWrite(Motor_A_DirB, LOW);
digitalWrite(Analog_LED_1, LOW);
}
if(sensorValue_X2 > 255){
analogWrite(Motor_B_Enable,(sensorValue_X2 - 256));
digitalWrite(Motor_B_DirB, LOW);
digitalWrite(Motor_B_DirA, HIGH);
analogWrite(Analog_LED_2, (sensorValue_X2 - 256));
}
else
if(sensorValue_X2 < 255){
analogWrite(Motor_B_Enable,(255 - sensorValue_X2));
digitalWrite(Motor_B_DirA, LOW);
digitalWrite(Motor_B_DirB, HIGH);
analogWrite(Analog_LED_2, (255 - sensorValue_X2));
}
else{
digitalWrite(Motor_B_DirA, LOW);
digitalWrite(Motor_B_DirB, LOW);
digitalWrite(Analog_LED_2, LOW);
}
delay(50);
}