Android和Arduino的两个接收通过蓝牙奇怪的值 [英] Android and Arduino both receiving strange values via Bluetooth

查看:153
本文介绍了Android和Arduino的两个接收通过蓝牙奇怪的值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是Android端BluetoothChat code发送一个ON / OFF信号(定义见下文我送110,119或其他情况下)到Arduino UNO使用聊天框,但是当我显示接收到的值,它显示奇怪的值在Arduino的串行显示器,那就是,255,254,250或245,并用奇怪值回复对Android方太。

但令人惊讶之中110只有一个条件,119,等得到真实的,当我把这些命令,从Android和没有其他指令/ LED被正确执行/开启/关闭。

任何一个可以帮我找出这个问题?下面是我的Arduino code。

  int数据;
字符串消息;

无效设置()
{
Serial.begin(57600);

pinMode(6,输出);
pinMode(7,输出);
pinMode(8,输出);
pinMode(9,输出);
pinMode(10,输出);

digitalWrite(6,低); //关闭LED 1在PIN6
digitalWrite(7,低); //关闭LED 2的PIN7
digitalWrite(8,低); //关闭LED在3引脚8
digitalWrite(9,低); //关闭LED 4在9脚
digitalWrite(10,低); //关闭LED 5时10脚
}

空隙环(){
INT I = 0;
如果(Serial.available()大于0)
{
int数据= Serial.read();

Serial.println(接收到的数据:);
Serial.println(数据);

如果(数据== 110)// q
{
digitalWrite(6,HIGH); //打开LED 1在PIN6
消息=LED 1开;
Serial.println(消息);

}
如果(数据== 102)//一个
{
digitalWrite(6,低); //关闭LED 1在PIN6
消息=LED 1关;
Serial.println(消息);
}

如果(数据== 96)// C
{
digitalWrite(7,HIGH); //指示灯2
消息=LED 2开;
Serial.println(消息);
}

如果(数据== 115)//ð
{
digitalWrite(7,低); //关闭LED 2
消息=LED 2关;
Serial.println(消息);
}

如果(数据== 111)//Ë
{
digitalWrite(8,HIGH); //指示灯3
消息=LED上的;
Serial.println(消息);
}

如果(数据== 97)//˚F
{
digitalWrite(8,低); //设置LED 3
消息=LED 3关;
Serial.println(消息);
}

如果(数据== 107)//克
{
digitalWrite(9,HIGH); //打开LED 4
消息=LED上的;
Serial.println(消息);
}

如果(数据== 120)// H
{
digitalWrite(9,低); //设置LED 4
消息=LED四关;
Serial.println(消息);
}


如果(数据== 99)//我
{
digitalWrite(10,高); //设置LED 5
消息=L5高;
Serial.println(消息);
}

如果(数据== 104)∥焦
{
digitalWrite(10,低); //设置LED 5
消息=LED 5关;
Serial.println(消息);
}

如果(数据== 112)//ÿ
{
digitalWrite(6,HIGH); //打开所有LED
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,高);
消息=所有LED;
Serial.println(消息);
}


如果(数据== 122)//ž
{
digitalWrite(6,低); //关闭所有LED
digitalWrite(7,低);
digitalWrite(8,低);
digitalWrite(9,低);
digitalWrite(10,低);
Serial.println(所有的LED关);
}

其他
{
digitalWrite(13,高); //设置LED 5
延迟(3000); // 3秒
digitalWrite(13,低);
延迟(3000);
Serial.println(其他情况下执行);

的其他} ////结束

}
数据= 0;
}
 

解决方案

尝试字符数据= Serial.read();

和显示的Java code为Android。

蓝牙的Arduino和放大器100%的工作code; Android的

I am using BluetoothChat code on the Android side to send an ON/OFF signal (I am sending 110, 119 or other cases as defined below) to the Arduino UNO using the chat box, but when I display the received value, it shows strange values in the Arduino Serial monitor, that is, 255, 254, 250 or 245 and replies with strange values on the Android side too.

but suprisingly only single condition among 110, 119, etc gets true when i send these commands from android and no other instruction/LED gets properly executed/turned ON/off.

Can any one help me figure out the problem? Below is my arduino code.

int data; 
String message; 

void setup () 
{ 
Serial.begin (57600); 

pinMode (6, OUTPUT); 
pinMode (7, OUTPUT); 
pinMode (8, OUTPUT); 
pinMode (9, OUTPUT); 
pinMode (10, OUTPUT); 

digitalWrite(6, LOW); // off LED 1 at pin6 
digitalWrite(7, LOW); // off LED 2 at pin7 
digitalWrite(8, LOW); // off LED 3 at pin8 
digitalWrite(9, LOW); // off LED 4 at pin9 
digitalWrite(10, LOW); // off LED 5 at pin10 
}

void loop () { 
int i=0; 
if (Serial.available()>0) 
{ 
int data= Serial.read(); 

Serial.println (" Received data: "); 
Serial.println (data); 

if (data==110) //q 
{ 
digitalWrite(6, HIGH); // turn on LED 1 at pin6 
message = "LED 1 On"; 
Serial.println (message); 

} 
if (data==102) // a 
{ 
digitalWrite(6, LOW); // off LED 1 at pin6 
message = "LED 1 Off"; 
Serial.println (message); 
} 

if (data==96) //c 
{ 
digitalWrite(7, HIGH); //on LED 2 
message = "LED 2 On"; 
Serial.println (message); 
} 

if (data==115) //d 
{ 
digitalWrite(7, LOW); // off LED 2 
message = "LED 2 Off"; 
Serial.println (message); 
} 

if (data==111) //e 
{ 
digitalWrite(8, HIGH); //on LED 3 
message = "LED 3 On"; 
Serial.println (message); 
} 

if (data==97)// f 
{ 
digitalWrite(8, LOW); //sets the LED 3 
message = "LED 3 Off"; 
Serial.println (message); 
} 

if (data==107) //g 
{ 
digitalWrite(9, HIGH); //turn on LED 4 
message = "LED 4 On"; 
Serial.println (message); 
} 

if (data==120)//h 
{ 
digitalWrite(9, LOW); //sets the LED 4 
message = "LED 4 Off"; 
Serial.println (message); 
} 


if (data==99) //i 
{ 
digitalWrite(10, HIGH); //sets the LED 5 
message = "L5 high"; 
Serial.println (message); 
} 

if (data==104) //j 
{ 
digitalWrite(10, LOW); //sets the LED 5 
message = "LED 5 Off"; 
Serial.println (message); 
} 

if (data==112) //y 
{ 
digitalWrite(6, HIGH); // turn on ALL LEDs 
digitalWrite(7, HIGH); 
digitalWrite(8, HIGH); 
digitalWrite(9, HIGH); 
digitalWrite(10, HIGH); 
message = "ALL LEDs ON"; 
Serial.println (message); 
} 


if (data==122)//z 
{ 
digitalWrite(6, LOW); //Turn off all LEDs 
digitalWrite(7, LOW); 
digitalWrite(8, LOW); 
digitalWrite(9, LOW); 
digitalWrite(10, LOW); 
Serial.println ("ALL LEDs OFF"); 
} 

else 
{ 
digitalWrite(13, HIGH); //sets the LED 5 
delay(3000); //3sec 
digitalWrite(13, LOW); 
delay(3000); 
Serial.println (" else case executed "); 

} ////end of else 

}
data=0;
}

解决方案

Try char data = Serial.read();

And show Java code for Android.

See 100% work code for Bluetooth Arduino&Android

这篇关于Android和Arduino的两个接收通过蓝牙奇怪的值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆