정보나눔

오픈소스하드웨어 프로젝트에 대한 다양한 정보를 나누는 공간입니다.

블루투스 안드로이드 통신 관련 질문입니다. (2)
김학현 | 2016-02-03

http://kocoafab.cc/fboard/484 의 두 번째 질문입니다.

 

 

int trigPin = 12;
int echoPin = 13;
int safeZone = 30;
#define PIN_RX 2
#define PIN_TX 3

#include
SoftwareSerial btSerial(PIN_RX, PIN_TX);

char val;
void setup()
{
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);

  Serial.begin(9600);
  btSerial.begin(9600);
  Serial.println("HC-SR04. distance measure start!");
  btSerial.println("HC-SR04. distance measure start!");
  Serial.println();
}

void loop()
{
  float duration, distance;
  digitalWrite(trigPin, LOW);
  digitalWrite(echoPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = ((float)(340 * duration) / 10000) / 2;
 
if( btSerial.available() )
{
  val = btSerial.read();
 
  if(val == '3') //SONAR
{    
  btSerial.println("Auto Sonar Start!");
 
       if (distance < 30)  // 만약 30cm 안에 장애물이 감지되면,
       {
        Serial.print(val);
          Serial.println("right"); // 오른쪽으로 회전합니다.
       }
      
       else  // 아닐경우,
       {
        Serial.print(val);
          Serial.println("forward"); // 계속 전진합니다.     
       }
       delay(500);
}
}
}

while문 밖에다가 써봤는데 그것이 안되서 아예 처음부터 코딩을 하여서.

이런식으로 작성하고 시리얼 통신으로 테스트 해봤는데

3을 입력받고 계속 초음파 센서를 통한 거리재기가 계속 나오지 않고

3을 입력 받을때만 작동합니다.. 어떻게 하면 좋죠

 

 

HC-SR04. distance measure start!

3forward
3forward
3forward
3right

이전글   |    블루투스 안드로이드 통신 관련 질문입니다. ... 2016-02-01
다음글   |    지니어스 키트처럼 아두이노 BLE 와 파는 키트는 없나요? ... 2016-02-05