정보나눔

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

if 구문과 조건하나 질문드립니다
김동휘 | 2015-05-20

응용예제를 활용하고 약간 수정하여 만들고있는데

블루투스 -> 아두이노 통신간에 3개의 조건만 필요하여 남겨두고

나머지는 삭제 수정하였습니다.. 그런데 왜 컴파일이 안되는지 모르겠네요

 

그리고 void loop 구간 5번째줄에     digitalWrite(redLed, HIGH); 구문을 넣었는데

필요해서 적용이 되긴 됐는데

왜 블루투스가 꺼지거나 , 1 외에 6~7 값을 수신하면 

그때 led가 작동하는 이유를 수식 구문에서 이해하기가 힘드네요 ㅠㅠ 

 

.. 간단하게 이야기하자면 5번째줄에 저 수식을 넣음으로서

블루투스가 전류가 차단되면 - > led가 켜지도록 되긴 되었는데 5번째줄에 넣어서 그렇게 적용된 이유를 모르겠네요 ..

 

그리고 또하나 블루투스 송신이 전력차단이 아닌 폰에서 끔으로서 아두이노가 블루투스가 꺼짐을 인식하여

불을 밝힌다거나 소리를 내는 예제를 어디서 알수 없을까요.. 

 

 

 

 

 

 

 

#include  
#include

SoftwareSerial BTSerial(2, 3); 
byte buffer[1024]; 
int bufferPosition; 

Servo myservo; 

int redLed = 7;  

int redState = 0;

void setup (){
  pinMode(redLed, OUTPUT);
  myservo.attach(9); 
  analogWrite(buzzer, 255);  
  
  BTSerial.begin(9600);
  Serial.begin(9600);
  bufferPosition = 0; 
}

void loop (){
  if (BTSerial.available()){
    byte data = BTSerial.read();
    Serial.write(data); 
    buffer[bufferPosition++] = data; 
    digitalWrite(redLed, HIGH); 
    
    if(data == '1'){ 
      if(redState == 0){ 
        digitalWrite(13, HIGH); 
        redState = 1; 
        delay(150);
      }
      else{ 
        digitalWrite(13, LOW); 
        redState = 0;
        delay(150);
      }
    }
    
    
    if(data == '6'){ 
      if(servoState <= 120){ 
        servoState += 90; 
        myservo.write(servoState); 
        delay(150);
      }
    }
    
    if(data == '7'){  
      if(servoState >= 30){ 
        servoState -= 90;
        myservo.write(servoState); 
        delay(150);
      }
    }
  }
 } 

이전글   |    openCV 활용 차선인식 질문드립니다. 2015-05-20
다음글   |    웹사이트 구동속도 관련문의!! 2015-05-20