Two motors DC one joystick

hello,

I am completely new in the world of Arduino and this is my project:

A DC motor on the X axis: mobilizing the object horizontally (forward and backward)
A DC motor on the Y axis: mobilizing the object vertically (forward and backward)
An Arduino Motor shield V3 map including: Motor Shield V3 Arduino + Arduino Mega 2560 Rev3
A plaque assay, 10 ohm resistors, potentiometers breadboard cables for M / M
A joystick with integrated card deployment: http://www.robotshop.com/eu/fr/mini-cap … ytron.html
Four limit switches placed at the ends X and Y for the respective motor stop

I wish that the object can move with the joystick in the direction X or Y or both simultaneously in a constant engine speed but reduced compared to the original with an engine stop when the switch concerned limit is engaged.

Can you help me in terms of connections (I do not understand the theoretical frameworks)? Can you help me with the code for the Arduino board?

Thank you

You can see on the photo of my first try with only the joystick and the motors

And here is my code wich doesn’t work actually

const int vitesseMotA=3; // Constante pour la broche 3
const int sensMotA=12; // Constante pour la broche 12
const int freinMotA=9; // Constante pour la broche 9
const int intensiteMotA=A0; // intensité du moteur 0

const int vitesseMotB=11; // Constante pour la broche 11
const int sensMotB=13; // Constante pour la broche 13
const int freinMotB=8; // Constante pour la broche 8
const int intensiteMotB=A1; // intensité du moteur 1


// --- Déclaration des constantes des broches analogiques ---


//const int Voie[6]={0,1,2,3,4,5}; //declaration constante de broche analogique


// --- Déclaration des variables globales ---


// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---

// --- Déclaration des constantes des broches analogiques ---

const int axe1Joystick=2; // Constante pour la broche analogique 2
const int axe2Joystick=3; // Constante pour la broche analogique 3

// --- Déclaration des variables globales ---

int mesure_brute=0;// Variable pour acquisition résultat brut de conversion analogique numérique
float mesuref=0.0;// Variable pour calcul résultat décimal de conversion analogique numérique

int positionAxe1=0; // Variable pour acquisition résultat brut de conversion analogique numérique axe 1 Joystick
int positionAxe2=0; // Variable pour acquisition résultat brut de conversion analogique numérique axe 2 Joystick



void setup()   { // debut de la fonction setup()

// --- ici instructions à exécuter 1 seule fois au démarrage du programme --- 

// ------- Initialisation fonctionnalités utilisées -------  

Serial.begin(115200); 

// ------- Broches en sorties numériques -------  
pinMode (vitesseMotA,OUTPUT); // Broche vitesseMotA configurée en sortie
pinMode (freinMotA,OUTPUT); // Broche freinMotA configurée en sortie
pinMode (vitesseMotB,OUTPUT); // Broche vitesseMotB configurée en sortie
pinMode (sensMotA,OUTPUT); // Broche sensMotA configurée en sortie
pinMode (sensMotB,OUTPUT); // Broche senMotB configurée en sortie

// ------- Broches en entrées numériques ------- 
pinMode (bpJoystick,INPUT); // Broche bpJoystick configurée en entrée

// ------- Activation si besoin du rappel au + (pullup) des broches en entrées numériques -------  

// Les BP du shield Joystick + BPx2 dispose d'un rappel au plus sur le shield


// ------- Activation si besoin du rappel au + (pullup) des broches en entrées numériques -------  

// ------- Initialisation des variables utilisées -------  

// ------- Codes d'initialisation utile -------  
digitalWrite(vitesseMotA,LOW); // a l'arret
digitalWrite(sensMotA,LOW); 
digitalWrite(freinMotA,LOW); // frein off 

digitalWrite(vitesseMotB,LOW); // à l'arret 
digitalWrite(sensMotB,LOW);  
digitalWrite(freinMotB,LOW); // frein off

} 

void loop(){ // debut de la fonction loop()
//----- lecture position Joytstick
positionAxe1=analogRead(axe1Joystick); // acquisition conversion analogique numérique sur broche analogique axe 1
positionAxe2=analogRead(axe2Joystick); // acquisition conversion analogique numérique sur broche analogique axe 2

if (positionAxe1>700) {
digitalWrite(vitesseMotA,HIGH);
digitalWrite(sensMotA,HIGH);
}

if (positionAxe1<300) {
digitalWrite(vitesseMotA,HIGH);
digitalWrite(sensMotA,LOW);
}

if (positionAxe2>700) { 
digitalWrite(vitesseMotB,HIGH);
digitalWrite(sensMotB,HIGH);
}

if (positionAxe2<300) {
 digitalWrite(vitesseMotA,HIGH);
digitalWrite(sensMotA,LOW);
} 

while(1); // stop loop
}

please go back to the main forum page and learn how to post code. it is hard to read code posted as text.

it seems you are using the joystick as a switch. above 700 in moves one way, below 300 and it moves the other way

Since the joystick is just a potentiometer, you can start with getting a motor to move.

on a separate note, how are you turning off the motor ?

Sorry for the code's writing...

I would like my motors off when the joystick is on a neutral position

Thank you for your help

if (positionAxe2<700) && (positionAxe2>300){
digitalWrite(vitesseMotB,LOW); // turn motor off when between points
// digitalWrite(sensMotB,LOW);
}

my appologies for not using code tags. seems I need to learn how to do that on the new forum.

I’ve modified void loop like this

void loop(){ // debut de la fonction loop()
//----- lecture position Joytstick
positionAxe1=analogRead(axe1Joystick); // acquisition conversion analogique numérique sur broche analogique axe 1
positionAxe2=analogRead(axe2Joystick); // acquisition conversion analogique numérique sur broche analogique axe 2


int x,y,z;
if (positionAxe1>0) {
  digitalWrite(MotA,HIGH);
}
else if (positionAxe1<0) {
  digitalWrite(MotA,HIGH);
}
else if (positionAxe2>0) { 
  digitalWrite(MotB,HIGH);
}
else if (positionAxe2<0) {
   digitalWrite(MotB,HIGH);
} 
else if (analogRead(JoyStick_Z)) {
   digitalWrite(MotA,LOW);
   digitalWrite(MotB,LOW);
   
} 
if (positionAxe2<0) && (positionAxe2>0){ 
digitalWrite(vitesseMotB,LOW);  // turn motor off when between points
digitalWrite(sensMotB,LOW);
}

while(1); // stop loop
}

But the software tell me this :

Code_joystick___moteurs.ino: In function ‘void loop()’:
Code_joystick___moteurs:104: error: expected identifier before ‘(’ token
Code_joystick___moteurs:104: error: expected `;’ before ‘(’ token