아두이노 코딩 질문있습니다!!

조회수 397회

아두이노와 안드로이드와 블루투스 통신을 하는 중에 안드로이드에서 스위치를 켜거나 끔에 따라 아두이노가 제어될 수 있도록 하고싶은데 잘 안됩니다. 도와주세요

while(BTSerial.available()){   //블루투스
    char data = BTSerial.read();

    CharData = data;
  }

  Serial.println("while 밖의 CharData : " + CharData);
  int Mode = CharData.toInt();
  Serial.println(Mode);

  if (Mode == 1) {
    soundMode = 1;
    Serial.println(" soundMode : " + soundMode);
    Serial.println("ringMode : " + ringMode);
  } else if(Mode == 2) {
    soundMode = 0;
    Serial.println(" soundMode : " + soundMode);
    Serial.println("ringMode : " + ringMode);
  } else if(Mode == 3) {
    ringMode = 1;
    Serial.println(" soundMode : " + soundMode);
    Serial.println("ringMode : " + ringMode);
  } else if(Mode == 4) {
    ringMode = 0;
    Serial.println(" soundMode : " + soundMode);
    Serial.println("ringMode : " + ringMode);
  } else {
    Serial.println("eeerrrorororororororor");
  }

CharData는 전역변수 string타입으로 설정했고 ringMode, soundMode는 전역변수 int 로 설정해두었습니다.

실행시켜보면

Serial.println("while 밖의 CharData : " + CharData);
int Mode = CharData.toInt();
Serial.println(Mode);

스위치를 제어했을 때 0~4까지 시리얼 모니터에 잘 찍히는데 if문 안에서 변수들이 빈 상태로 나옵니다.. 스위치문으로 바꿔봐도 결과는 똑같습니다. 도와주세요.

++ data를 String 타입으로 받으면 아스키코드로 나오는데 이거에 따라서 49~52로 바꿔도 똑같습니다..

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)