Aller au contenu


izgaghan

Inscrit(e) (le) 25 janv. 2012
Déconnecté Dernière activité janv. 29 2012 11:34
-----

Messages que j'ai postés

Dans le sujet : ROBY AVEC UN SERVO TETE

25 janvier 2012 - 01:31

ok merçi je ferais sa ce soir je te tiend au couran et pour le code aussi ? ya rien qui change ?

Dans le sujet : ROBY AVEC UN SERVO TETE

25 janvier 2012 - 12:03

#include <Servo.h>
#define AVANT 1
#define ARRIERE 0
#define GAUCHE 2
#define DROITE 3
#define SERVOG 1
#define SERVOD 0
#define UPDDG 3
#define UPDDD 4
#define VMAX 5
Servo servog;
Servo servod;
int getNeutral(int s)
{
if(s == SERVOG)
return 86;
else
return 84;
}

void handleS(int s, int speed)
{
//Vitesse :
// 0 -> 0; 1 -> 1; 2 -> 3; 3 -> 8; 4 -> 10; v => 5 -> 30
int tab[6] = {0,1,3,8,10,30};
int pos = getNeutral(s);
int acc;

if (speed < 0)
acc = - tab[abs(speed)];

else
acc = tab[speed];

if(s == SERVOG)
servog.write(pos += acc);

else
servod.write(pos -= acc);

}


void move(int direction)
{
int m1 = 0, m2 = 0;
switch(direction)
{
case DROITE: m1 = 1; m2 = -1; break;
case GAUCHE: m1 = -1; m2 = 1; break;
case AVANT: m1 = 1; m2 = 1; break;
case ARRIERE: m1 = -1; m2 = -1; break;
}
handleS(SERVOG, m1*VMAX);
handleS(SERVOD, m2*VMAX);
}
void handleUPDD(int updd)

{
if(digitalRead(updd) == HIGH)
{
move(ARRIERE);
delay(500);

if (updd == UPDDG)
{
move(DROITE);
}
else
{
move(GAUCHE);
}
delay(800);
}
}
void setup()
{
pinMode(UPDDG, INPUT);
pinMode(UPDDD, INPUT);
servog.attach(10);
servod.attach(9);
move(AVANT);
}
void loop()
{
handleUPDD(UPDDG);
handleUPDD(UPDDD);
move(AVANT);
delay(15);
}




voila pour mon code
et pour le schemas le voila

Image IPB



voila je compte sur votre générositer pour m'aidé dans mon projet cordialement.