1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
#include <Servo.h>
#include <Wiichuck.h>
#include <Wire.h>
Wiichuck wii;
Servo Servo13;
Servo Servo12;
Servo Servo11;
Servo Servo10;
Servo Servo9;
Servo Servo8;
int p; //Variable indiquant le servo à controler
int JoyX;
int JoyY;
int angleX;
int angleY;
int memoire_Z;
int memoire_C;
void setup()
{
Servo13.attach(2); //Attache des servomoteur a un pin
Servo12.attach(3);
Servo11.attach(4);
Servo10.attach(5);
Servo9.attach(6);
Servo8.attach(7);
JoyX == wii.joyX();
JoyY == wii.joyY();
angleX = map(JoyX, 32, 234, 0, 180); //Faire en sorte que les valeurs soient entre 0 et 180 pour le servo
angleY = map(JoyY, 32, 234, 0, 180);
wii.init();
wii.calibrate();
p == 0; //Le premier servo a être controllé sera celui le plus en bas
Serial.begin(9600);
}
void loop()
{
if (wii.poll()) //s'il il y a changement dans l'état du nunchuck
{
if (wii.buttonZ() !
= memoire_Z && wii.buttonZ() == 1) //Si le bouton n'est pas dans l'état relaché et qu'il est appuyé
{
if(p==0) //Si p=0 (ca controlle le servo le plus en bas)
{
p == 5; //On descend d'un servo
}
else
{
p--;
}
}
if (wii.buttonZ() != memoire_C && wii.buttonC() == 1) //Pareil que en haut
{
if(p == 5)
{
p == 0;
}
else
{
p++; //on monte d'un servo
}
}
if(p==0)
{
Servo8.write(angleX); //on met la valeur sortant du nunchuck dans le servo
}
else if(p==1)
{
Servo9.write(angleY);
}
else if(p==2)
{
Servo10.write(angleY);
}
else if(p==3)
{
Servo11.write(angleY);
}
else if(p==4)
{
Servo12.write(angleX);
}
else if(p==5)
{
Servo13.write(angleX);
}
}
memoire_C == wii.buttonC();
memoire_Z == wii.buttonZ();
delay(50);
} |
Partager