He creado una aplicación para Android que envía un valor entre 0 y 20 como este:
public void write(byte[] msg) {
cnt++;
Log.v("CNT", Integer.toString(cnt));
try {
for(byte b : msg)
{
Log.v("Buffer", Byte.toString(b));
}
mmOutStream.write(msg);
} catch (Exception e) { Log.e("ConnectedThread","Send Error",e); }
}
Mi código arduino es el siguiente:
SoftwareSerial bluetooth(2,8);
void setup()
{
Serial.begin(9600);
bluetooth.begin(9600);
Serial.println("Bluetooth Start!");
}
void loop()
{
char inDat;
char outDat;
if(bluetooth.available())
{
inDat = bluetooth.read();
Serial.println(inDat);
}
if(Serial.available())
{
outDat = Serial.read();
bluetooth.write(outDat);
}
}
Esperaba obtener números entre 0 y 20 en la consola de serie, pero solo obtengo "ÿ"
Puede alguien ayudarme por favor ?
Gracias por adelantado
Respuestas
0 para la respuesta № 1A veces me sale esto ÿ
Cuando estaba en el monitor de serie, puse una velocidad de transmisión diferente a la que usa la placa Arduino. ¿Tal vez esto? También (y esto es sólo un consejo), debes usar Serial.write(inDat)
en lugar de Serial.println(inDat)
, porque println
función agrega "n"
al final.