Simbolos raros en el arduino

Buenos días a todos.

Soy nuevo en este foro y espero me podáis ayudar. Me he pasado todo el fin de semana peleándome con el arduino por que me hace cosas raras.

Se supone que metiendo un código debería de aparecerme unos valores lógicos en el monitor del arduino, pero lo que me aparece es esto:
üÈÔÔÊÊÊÄÔÊÊÊÔÊÊÊÔÄÿÿÄäÊÊÔÊÊÊäÊÊÊÊÔÊÊÔÊÊÊÊÄÊÜÄÜÜ
ÄäÊÊÊÄÊÊÔÊùÊÊÄÊ
ÊÔÄÊÄÊÔÊÊÊÊÊÄÊÊÊÔÊÿÊÊÄÊÊÊÊÊ

Me dijeron que cambiara los baudios ya que trabajo en windows y deberia de ser 11200 o algo así, no lo recuerdo bien ahora, pero tampoco, me siguen apareciendo los símbolos de arriba.

Hay alguna manera de solucionar el problema?

Mi arduino es el: Arduino mini PRO ATMEGA 328

Estoy desesperado me he pasado el fin de semana intentando solucionarlo pero no lo he conseguido y ya no se donde buscar ayuda.

Gracias por leer este tocho.

Yapahoe

Yo utilizo una velocidad de 9600... Pon el código a ver si hay algún error en el funcionamiento :wink:

Saludos y a pelearse :slight_smile:

Hola,

La velocidad, tiene que ser según hayas configurado tu programa de Arduino.

Fijate en la orden: Serial.begin(9600) => en este caso, es 9600.

Saludos

Igor R.

Hola,

Da igual a que velocidad (baudios) envíes, lo importante es asegurarte de que los dos dispositivos están configurados con la misma velocidad.

Saludos

Muy buenas a todos.

Os cuento un poco como tengo el tema en este momento.

Ya he conseguido que se vean los numeros y letras que se tenian que ver lo que pasa es que para ello tengo que tener la velocidad de la programacion por ejemplo a 9600 y la del programa para leer los datos a el doble 19200.
Eso por un lado.

Por otro lado 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.html*_