Arduino y wii motion plus

Buenas a todos tengo el wii motion plus conectado al arduino y lo que me saca el monitor es lo siguiente.

WM+ tester
Yaw0:0 Pitch0:0 Roll0:0
yaw:0 pitch:0 roll:0
yaw:0 pitch:0 roll:0
yaw:0 pitch:0 roll:0
yaw:0 pitch:0 roll:0
yaw:0 pitch:0 roll:0

El codigo que uso para probar los valores es el siguiente.
Alguein podria ayudarme por favor a saber de donde viene el problema de que no me de valores el wii motion?????

#include <Wire.h>
byte data[6]; //six data bytes
int yaw, pitch, roll; //three axes
int yaw0, pitch0, roll0; //calibration zeroes

void wmpOn(){
Wire.beginTransmission(0x53); //WM+ starts out deactivated at address 0x53
Wire.send(0xfe); //send 0x04 to address 0xFE to activate WM+
Wire.send(0x04);
Wire.endTransmission(); //WM+ jumps to address 0x52 and is now active
}

void wmpSendZero(){
Wire.beginTransmission(0x52); //now at address 0x52
Wire.send(0x00); //send zero to signal we want info
Wire.endTransmission();
}

void calibrateZeroes(){
for (int i=0;i<10;i++){
wmpSendZero();
Wire.requestFrom(0x52,6);
for (int i=0;i<6;i++){
data*=Wire.receive();*
}
yaw0+=(((data[3]>>2)<<8)+data[0])/10; //average 10 readings
pitch0+=(((data[4]>>2)<<8)+data[1])/10;
roll0+=(((data[5]>>2)<<8)+data[2])/10;
}
Serial.print("Yaw0:");
Serial.print(yaw0);
Serial.print(" Pitch0:");
Serial.print(pitch0);
Serial.print(" Roll0:");
Serial.println(roll0);
}
void receiveData(){
wmpSendZero(); //send zero before each request (same as nunchuck)
Wire.requestFrom(0x52,6); //request the six bytes from the WM+
for (int i=0;i<6;i++){
data*=Wire.receive();*
}
yaw=((data[3]>>2)<<8)+data[0]-yaw0;
pitch=((data[4]>>2)<<8)+data[1]-pitch0;
roll=((data[5]>>2)<<8)+data[2]-roll0;
}
//see Wiimote/Extension Controllers - WiiBrew
//for info on what each byte represents
void setup(){
Serial.begin(115200);
Serial.println("WM+ tester");
Wire.begin();
wmpOn(); //turn WM+ on
calibrateZeroes(); //calibrate zeroes
delay(1000);
}
void loop(){
receiveData(); //receive data and calculate yaw pitch and roll
Serial.print("yaw:");//see diagram on randomhacksofboredom.blogspot.com
Serial.print(yaw); //for info on which axis is which
Serial.print(" pitch:");
Serial.print(pitch);
Serial.print(" roll:");
Serial.println(roll);
delay(100);
}
Sacado de esta pagina web: http://randomhacksofboredom.blogspot.com/2009/06/wii-motion-plus-arduino-love.ht...
Y el esquema de como esta conectado lo saco de aqui y a la gente le funciona.
La parte de los 2 interruptores no la tengo montada por que no es necesaria para que el arduino tome valores del wiimotionplus.

Hola yapahoe.
El código por lo que he podido leer es correcto, lo unico que se me ocurre pensar es que no está conectado correctamente el wiimotionplus por i2c con el arduino.

| 1 2 3 |
| |
| 6 5 4 |
|-----|

1 - green - data
2 - nothing
3 - red - 3.3+v
4 - yellow - clock
5 - nothing
6 - white - ground

Por si te sirve.
Ya nos contarás que tal va. Tengo previsto empezar tambien con el wii motion y seguro que reclamaré ayuda tambien.

Un saludo y suerte.

Hola de nuevo.
Ya he conectado el arduino al wiimp, y me devuelve valores correctamente. En el esquema que tu muestras, también está conectado un emisor rc.
Para conectarlo me he basado en el la documentación para conectar el nunchaku. He usado el mismo código que has usado y me recupera los datos perfectamente.

Espero te sirva. Un saludo.