4 interrupteurs de fin de course placés aux extrémités X et Y pour stopper le moteur concerné
Je souhaite que l'objet puisse se déplacer avec le joystick dans la direction X ou Y ou les deux simultanément selon une vitesse de moteur constante mais diminuée par rapport à l'initiale avec un arrêt du moteur concerné lorsque l'interrupteur de fin de course est enclenché.
Pouvez-vous m'aider en termes de branchements (je ne comprends pas les schémas théoriques) ? Pouvez-vous m'aider pour le code de la carte Arduino ?
Bonsoir,
As-tu faits des recherches sur la toile ? Pour avoir plus de réponses, il faudrait qu'un modo déplace ton topic dans la bonne rubrique, ici c'est les projets finis.
@+
Voici mon code ainsi qu'une photo des branchements à partir de ce que j'ai pu trouver sur le net
Merci pour ton aide
/ --- Déclaration des constantes ---
// --- Inclusion des librairies ---
// --- Déclaration des constantes utiles ---
// --- Déclaration des constantes des broches E/S numériques ---
int MotA=12; // Constante pour la broche 12
int MotB=13; // Constante pour la broche 13
// --- 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 ---
int axe1Joystick = A2; // Constante pour la broche analogique 2
int axe2Joystick = A3; // Constante pour la broche analogique 3
int JoyStick_Z = 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
// ////////////////////////// 2. FONCTION SETUP = Code d'initialisation //////////////////////////
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme
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 (MotA,OUTPUT); // Broche vitesseMotA configurée en sortie
pinMode (MotB,OUTPUT); // Broche vitesseMotB configurée en sortie
// ------- Broches en entrées numériques -------
pinMode (axe1Joystick,INPUT); // Broche axe1joystick configurée en entrée
pinMode (axe2Joystick,INPUT); // Broche axe2joystick configurée en entrée
pinMode (JoyStick_Z,INPUT); // Broche JoyStick_Z 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(MotA,LOW); // a l'arret
digitalWrite(MotB,LOW); // à l'arret
} // fin de la fonction setup()
// ********************************************************************************
////////////////////////////////// 3. FONCTION LOOP = Boucle sans fin = coeur du programme //////////////////
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension
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>700) {
digitalWrite(MotA,HIGH);
}
else if (positionAxe1<300) {
digitalWrite(MotA,HIGH);
}
else if (positionAxe2>700) {
digitalWrite(MotB,HIGH);
}
else if (positionAxe2<300) {
digitalWrite(MotB,HIGH);
}
else if (analogRead(JoyStick_Z)) {
digitalWrite(MotA,LOW);
digitalWrite(MotB,LOW);
}
while(1); // stop loop
}
// fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************