정보나눔

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

블루투스로 워터펌프 제어 관련 질문이있습니다. ⸮ 신호의 의미를 아시나요?
요승 | 2020-05-21

 오랜지 보드 사용중이며, 아두이노 IDE 로 코딩중입니다. HC06 으로 앱인벤터 통해서 어플 구현해서 진행하고있습니다.

 

 int var = analogRead(A0);     // 토양센서의 값을 읽어옵니다.

 if (BTserial.available()){    // 블루투스로부터 값이 있을경우
    char data = BTserial.read();  // 받은 값을 저장하고
    Serial.write(data);  // 시리얼에 입력합니다.

    if(data == '0' ){
    pump();

    }else if(data == '1'){
    pumpstop();
    }
  } else if (var>800){
    pump();
  }else {pumpstop();}  // 조건에 따라서 어플의 제어를 받으면 동작 / 멈춤 , 토양이 건조함에 따라서 동작 / 멈춤 

 

 

저 상태로 시리얼 모니터를 통해 확인하면 어플로부터는 원하는 버튼을 눌렀을때 신호가 잘 오고있습니다.

멈춤버튼의 경우 1, 작동버튼의 경우 0 로 잘 전달되고있는데 1은 멈춤상태라 몇번을 눌러도 괜찮지만

0 을 통해 펌프 가동 이후에는 0⸮⸮⸮⸮... 이런식으로 뒤짚혀진 ?가 계속 나옵니다. 

조건문이 잘못된걸까요? 어플을 통한 제어가 아닌 토양습도센서가 건조해져서 작동하게 될 경우에서도
⸮가 혼자 계속 출력되어서 뭔가 조건문이 꼬이는거 같은데 ⸮ 이 신호가 어떤 신호인지 도움 주실수있으신가요?

프로필사진

판다마니아 2020-05-26 17:43:22

지금 올려주신 내용은 만드신 pump 함수 안에 어떻게 되어있는지 몰라 정확히 어떤 문제가 있는지 잘 모르겠습니다.

 

전체 코드를 올려주셔야 확인이 될것 같습니다.

프로필사진

요승 2020-05-27 14:19:53

void pump()

{
  digitalWrite(A_1A, HIGH);
  digitalWrite(A_2A, LOW);
}

void pumpstop ()
{
  digitalWrite(A_1A, LOW);
  digitalWrite(A_2A, LOW);
}

 

로 되어있고 A_1A, A_2A 는 디지털 11,12로 연결해놨습니다..!

프로필사진

판다마니아 2020-06-02 10:40:48

모터가 움직일 때 전원이 많이 부족한 것 같습니다. 혹시 따로 전원을 모터에 연결한게 아니시면 모터에 추가 전원을 연결하여 동작해보세요.(이 때 아두이노에선 전원을 넣으시면 안됩니다.)

 

이전글   |    L298N + 아두이노 + 12V DC 모터 1개 + MG995 (스탭모터) 연결 시 전원... 2020-05-20
다음글   |    아두이노 전압 올리는 법 2020-05-22