정보나눔

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

아두이노 우노보드 블루투스 질문드려요
inno | 2019-06-04

두 아두이노 키트를 통해 일정 시간 간격으로 온습도, 조도를 측정해서 Master에 보내 두 값을 지속적으로 비교를 해야 하거든요.

 

잘 모르다보니 delay 하면서 측정하는거랑 블루투스가 동시에 되질 않길래 loop를 여러 개를 만들려고 해도  uno는 지원하지 않는다더라구요.

 

블루투스 연결은 지속적으로 하면서 일정 시간 간격으로 온습도, 조도센서의 값을 받는 방법이 있을까요??? ㅠㅠㅠ 

프로필사진

판다마니아 2019-06-05 19:16:48

블루투스로 데이터 보내는건 센서값이 측정되고 나서 전달되어야 하니 delay 동안 블루투스 사용하지 않아도 괜찮지 않나요?

 

중간에 delay 있는이유가 아마 온습도 센서 측정 때문에 넣은 것 같은데, delay 중간에 블루투스 연결이 끊기는 거는 아니니 그대로 사용하여도 될 것 같습니다.

 

참고로 아두이노로 멀티테스킹을 구현할려면 시스템 시간을 이용해서 비슷하게 만들어야 하는거라 매우 어렵습니다. 간단한 동작을 만드시는 거면 멀티테스킹은 사용안하시는걸 추천드립니다.

프로필사진

inno 2019-06-05 20:57:23

void loop(){
  int h = dht.readHumidity();
  int t = dht.readTemperature();
  int l= analogRead(cds);
  
  Serial.print("DATA,TIME,");
  Serial.print(h);  
  Serial.print(",");        
  Serial.print(t);
  Serial.print(",");            
  Serial.print(l);
  Serial.print(",");  
  
  while(BT.available()){
  char BTchar = (char)BT.read();
  BTstring+=BTchar;
  delay(10);
  }
  if(!BTstring.equals("")){
    Serial.print(BTstring);
    BTstring="";
  }
  Serial.println(",");
  delay(3000);

 

 

이걸로 해결 했습니다. 계속 값이 하나씩 나와가지고 골치 아프다가 덕분에 힌트 얻었습니다.

이전글   |    리튬폴리머 배터리 변압 2019-06-03
다음글   |    아두이노 관련 질문 2019-06-04