2012-10-03 2 views
2

Android 측에서 BluetoothChat 코드를 사용하여 채팅 상자를 사용하여 Arduino UNO에 ON/OFF 신호 (아래 정의 된대로 110, 119 또는 기타 사례를 보내고 있습니다)를 보내고 있습니다. 하지만 수신 된 값을 표시하면 Arduino 직렬 모니터에 이상한 값인 255, 254, 250 또는 245가 표시되고 Android 측에서도 이상한 값으로 응답합니다.Android 및 Arduino가 모두 Bluetooth를 통해 이상한 값을 수신 중입니다.

하지만 놀랍게도 110,119 등 중 하나의 조건 만 true가되면 안드로이드에서 이러한 명령을 보내면 다른 명령/LED가 제대로 실행/켜지거나 꺼지게됩니다.

문제를 알 수있는 사람이 있습니까? 아래는 내 arduino 코드입니다.

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; 
} 
+0

저는 Arduino의 초보자입니다. 그러나 Serial.read()가 블루투스 장치에서 읽는다면 Serial.println() 호출은 Arduino 직렬 모니터가 아니라 동일한 블루투스 장치에 쓰고 있습니다. –

+0

아니요. 255, 240과 같은 직렬 모니터에서도 임의의 값을 수신하지 않습니다. 내 모바일을 수신하는 값은 무엇입니까?/??? ??? ?? – AbdulSaleem

답변

1

시도 char data = Serial.read();

Android 용 자바 코드를 표시하십시오. 당신은 아두 이노 우노를 사용하는 경우 Bluetooth Arduino&Android

+0

선생님 Анатолий Колтыков, 나는 너무 숯불을 시도했습니다. 음, 덕분에 링크에서 작업하겠습니다 .. :-) – AbdulSaleem

+0

친애하는 선생님 Анатолий Колтыков; 링크에 제공된 코드는 Android 버전 4.1 용이지만 2.2가 있습니다. 나는 안드로이드에 조금 익숙하지 않다. Android 애플리케이션이 제대로 작동하는지 확인하기 위해 필요한 변경 사항을 알려주십시오. 덕분에 – AbdulSaleem

0

는 다음 값을 인쇄 시리얼 모니터를 사용할 수 없습니다 당신은 이미 블루투스 통신 시리얼을 사용하는 경우에만이 있기 때문에

, 100 % 작업 코드를 참조하십시오 하나의 직렬 포트.

소프트웨어 직렬 라이브러리를 사용하거나 4 개의 직렬 포트가있는 Arduino Mega를 사용해야합니다.

+0

. sir @ sudar UNO를 사용하고 있습니다. 나는 지금 다른 코드를 시도했는데, 다르다. arduino에서 모바일로 적절한 응답을 받았지만 해당 LED 상태가 제대로 실행되지 않는다. 즉, BluetoothChat 앱을 통해 문자 또는 정수 숫자를 보낼 때. 내 전화에서 arduino. 직렬 모니터에 255 또는 254를 인쇄합니다. 내 arduino 코드 – AbdulSaleem

+0

Arduino 코드 snapsots https://www.facebook.com/media/set/?set=a.537304616296698.140354.100000514942282&type=3 아래에 나를 안내 할 수 있습니까? – AbdulSaleem

관련 문제