Go Down

Topic: modifier un code (Read 892 times) previous topic - next topic

Bonjour
J'ai ce code mais je ne sais pas comment le transformer.

Voici le code complet
Code: [Select]

#include <Servo.h>

Servo myservo1;
Servo myservo2;

int posServo1 = 0;
int posServo2 = 0;

const int buttonPin1 = 2;
const int buttonPin2 = 4;


int buttonState1 = 0;
int buttonState2 = 0;

int angleMin = 0;
int angleMax = 180;

void setup()
{
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
myservo1.attach(9);
myservo2.attach(7);
}

void loop()
{
buttonState1 = digitalRead(buttonPin1);
buttonState2 = digitalRead(buttonPin2);

if (buttonState1 == HIGH && buttonState2 == LOW)
{
   if (posServo1 < angleMax)
     posServo1++;
   if(posServo2 > angleMin )
     posServo2--;
}
else if (buttonState1 == LOW && buttonState2 == HIGH)
{
   if (posServo1 > angleMin )
     posServo1--;
   if (posServo2 < angleMax)
     posServo2++;
}

  myservo1.write(posServo1);
  myservo2.write(posServo2);
  delay(1);

}



Sur ce code  lorsque j'appuie sur le bouton le servo 1 et le servo 2 font un seul mouvement
qu'est ce qu'il faut rajouter comme code pour que les servos reviennent leurs positions initiales sans rappuyer sur le bouton?

Code: [Select]
else if (buttonState1 == LOW && buttonState2 == HIGH)
{
   if (posServo1 > angleMin )
     posServo1--;
   if (posServo2 < angleMax)
     posServo2++;



Ici le servo va de 0° à 180°
Comment je dois faire si je veux qu'il passe de 45° à 90°?

Code: [Select]

int angleMin = 0;
int angleMax = 180;

Code: [Select]

   if (posServo1 < angleMax)
     posServo1++;
   if(posServo2 > angleMin )
     posServo2--;


merci pour votre aide

infobarquee

bonjour,
je voudrais pas faire mon méchant, mais ca ne serait pas le même problème que tu as déjà posé ici?
http://arduino.cc/forum/index.php/topic,145470.0.html

un seul post devrait suffir ;)

#2
Jan 29, 2013, 11:39 am Last Edit: Jan 29, 2013, 01:32 pm by lovelybear67 Reason: 1
oui mais je l'ai refait pour qu'il soit plus clair , je n'ai pas pu supprimer l'autre !

#3
Jan 29, 2013, 01:31 pm Last Edit: Jan 29, 2013, 01:33 pm by lovelybear67 Reason: 1
J'ai essayé de faire les changements mais j'ai des erreurs je n'arrive pas à les trouver, vous pouvez m'aider ?
merci

Code: [Select]
#include <Servo.h>

Servo myservo1;
Servo myservo2;

int posServo1 = 0;
int posServo2 = 0;

const int buttonPin1 = 2;
const int buttonPin2 = 4;


int buttonState1 = 0;
int buttonState2 = 0;

int angleMin = 0;
int angleMax = 180;

void setup()
{
pinMode(buttonPin1, INPUT);
pinMode(buttonPin2, INPUT);
myservo1.attach(9);
myservo2.attach(7);
}

void loop()
{
buttonState1 = digitalRead(buttonPin1);
buttonState2 = digitalRead(buttonPin2);

if (buttonState1 == HIGH && buttonState2 == LOW)
{
   for(posServo1 = 1; posServo1  = 180; posServo1 +=1)
}

    {
   for (posServo1 = 180; posServo1  = 1; posServo1 -=1)
    {
     
      myservo1.write(posServo1);
      delay(15);
    }

else if (buttonState1 == LOW && buttonState2 == HIGH)
{
   for(posServo2 = 1; posServo2  = 180; posServo2 +=1)

   
{
      for (posServo2 = 180; posServo2 > = 1; posServo2 -=1)
    {
     
      myservo2.write(posServo2);
      delay(15);
    }
   
}


infobarquee

sans les erreurs ca risque d'être dur de répondre

john_lenfr

Quote
new.cpp: In function 'void loop()':
new:34: error: expected primary-expression before '}' token
new:34: error: expected `;' before '}' token
new:44: error: 'else' without a previous 'if'
new:47: error: expected primary-expression before '}' token
new:47: error: expected `;' before '}' token
new:50: error: expected primary-expression before '=' token
new:57: error: expected `}' at end of input
new:57: error: expected `}' at end of input

B@tto

Bah ligne 34 et 47 il manque des ";" ligne 44 tu t'es trompé de sens pour l'accolade, aux autres ligne il manque des accolades. Suffit de lire !!
Blog électronique : battomicro.wordpress.com
Photographie : www.interactive-celebration.fr
Fablab de Montpellier : www.labsud.org

merci c'est gentil je vais rectifier !

fdufnews

#8
Jan 29, 2013, 09:54 pm Last Edit: Jan 29, 2013, 09:57 pm by fdufnews Reason: 1
Quote
Ici le servo va de 0° à 180°
Comment je dois faire si je veux qu'il passe de 45° à 90°?

Code: [Select]
int angleMin = 0;
int angleMax = 180;



Hé, sans déconner, tu réfléchis avant de poser tes questions?

quand il va de 0° à 180°, angleMin vaut 0 et angleMax vaut 180
si je veux aller de 45° à 90° qu'est-ce que je pourrais bien mettre......

ludobabs

#9
Jan 29, 2013, 10:37 pm Last Edit: Jan 29, 2013, 10:42 pm by ludobabs Reason: 1
Quote
quand il va de 0° à 180°, angleMin vaut 0 et angleMax vaut 180
si je veux aller de 45° à 90° qu'est-ce que je pourrais bien mettre......

lol x 1000

essaie

Code: [Select]
int angleMin = 45;
int angleMax = 90;


Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy