Go Down

Topic: Bac-Ka-Poux-Bêle 2019 (Read 17677 times) previous topic - next topic

Philppe

#315
Jun 15, 2019, 10:53 pm Last Edit: Jun 16, 2019, 11:32 am by Philppe
j'ai essayer de modifier mon code mais maintenant j'ai une erreur quand je teste le programme
error: 'position2' was not declared in this scope
comment je dois la declaree
pardon mais je debute alors j'ai mal fais quelque chose

merci
ph







Code: [Select]

#include <Servo.h>
// global variables
int bp1 = 1;
int bp2 = 2;
int bp3 = 3;
int bp4 = 4;


int initial_position1 = 0;
int initial_position2 = 0;

/* control servo */
Servo monServomoteur1;
Servo monServomoteur2;

void setup()
{
// Bouton poussoir
pinMode(bp1, INPUT_PULLUP);
pinMode(bp2, INPUT_PULLUP);
pinMode(bp3, INPUT_PULLUP);
pinMode(bp4, INPUT_PULLUP);


// Attache le servomoteur
monServomoteur1.attach(9);
monServomoteur1.write(0);
monServomoteur2.attach(10);
monServomoteur2.write(0);
monServomoteur1.write (initial_position1);
monServomoteur2.write (initial_position2);


Serial.begin(9600);
}

void loop()
{
// Récuperer valeur de bp
int b1 = digitalRead(bp1);
int b2 = digitalRead(bp2);
int b3 = digitalRead(bp3);
int b4 = digitalRead(bp4);

// Si Appuie BP1
if (b1 == LOW) {
  monServomoteur1.write(position1);
  position1 = position1 + 1;
  if (position1 > 180) {
    position1 = 180;
  }
  delay(10);
}

// Si Appuie BP2
if (b2 == LOW) {
  monServomoteur1.write(position1);
  position1 = position1 - 1;
  if (position1 < 0) {
    position1 = 0;
  }
  delay(10);
}

// Si Appuie BP3
if (b3 == LOW) {
  monServomoteur2.write(position2);
  position2 = position2 + 1;
  if (position2 > 180) {
    position2 = 180;
  }
  delay(10);
}
// Si Appuie BP4
if (b4 == LOW) {
  monServomoteur2.write(position2);
  position2 = position2 - 1;
  if (position2 < 0) {
    position2 = 0;
  }
  delay(10);
}

Serial.print("Position du servo1 : "); Serial.println(position1);
 Serial.print("Position du servo2 : "); Serial.println(position2);
}


void loop() {
}

lesept

Ce code aussi doit être entre balises

Ajoute la déclaration de tes variables position avant le setup, comme tu le fais pour les positions initiales


Code: [Select]
int position1 = 0;
int position2 = 0;


Pour quatre servos, tu devrais envisager d'utiliser des joysticks plutôt que des boutons. On en trouve assez facilement pour pas cher chez Ali.

A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Philppe

merci pour la réponse
concernant le bouton joysticks j'en aient mais je les trouvent un peux petit je voulais utiliser des bouton arcades
toute fois je fais faire le code pour les boutons joysticks

Ph

lesept

Ok, modifie ton message #4 pour ajouter les balises autour du code, sinon ta discussion risque de finir à la poubelle avant que tu aies fini ton programme...
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

Go Up