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;
}
저는 Arduino의 초보자입니다. 그러나 Serial.read()가 블루투스 장치에서 읽는다면 Serial.println() 호출은 Arduino 직렬 모니터가 아니라 동일한 블루투스 장치에 쓰고 있습니다. –
아니요. 255, 240과 같은 직렬 모니터에서도 임의의 값을 수신하지 않습니다. 내 모바일을 수신하는 값은 무엇입니까?/??? ??? ?? – AbdulSaleem