본문 바로가기

관리하지않음/아두이노

[아두이노] Octopus 풍속센서 사용법

디바이스 마트에서 ELECFREAKS사의 Octopus 풍속 센서를 구매하였습니다. 디바이스 마트에서의 풀네임은 "[ELECFREAKS] Octopus 풍속 센서 풍속계 Three Aluminium Cups [EF04083]"네요. 3만원 조금 안 되는 비싸고 큰 센서입니다.

 

디바이스마트 캡쳐화면

 

만들고 있는 프로젝트에서 풍속 센서로 애를 먹고 있어서 구매했습니다.

1. 보드 구성

Octopus 풍속센서

센서 자체가 빨강, 노랑, 검은색선을 가지고 있습니다.

 

아두이노 보드 구성

빨간 선은 아두이노 5V에, 검은선은 아두이노 GND에, 노란선은 아두이노 A0에 연결해주세요.

 

2. 코드

데이터시트

이전에 Omron사의 D6F-V03A1 센서를 사용해봐서 코드는 비교적 쉽게 작성했습니다. 데이터 시트를 보고 코드를 작성하는 방법은 이전 [아두이노] 풍속센서 사용법 포스팅에 자세히 정리했으니 참고해주세요. 홈페이지에 나와있는 위 데이터 시트를 보고 유추해서 아래와 같이 작성했습니다.

int windspeedPin = A0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  int flowSensor = analogRead(windspeedPin);
  float flowBlow = flowSensor/1023.0*1.2; //0~1023로 표시되는 단위를 0~1.2범위로 매핑
  if(0.0 <= flowBlow) {
    float blow = flowBlow * 23.3;  //아래에서 구한 공식을 대입
    Serial.print(blow, 1);  //소수점 첫째짜리까지 표시
    Serial.println("m/s");
  } else {  // 전압이 0 미만이면 0.0m/s로 출력 (풍속이 음수가 나오면 안되므로)
   Serial.println("0.0m/s");
  }

  delay(1000);  // 1초에 한번 출력하도록 delay
}

// 디바이스마트에서 제공하는 Octopus 풍속센서의 데이터시트를 참고하면,
// (0V, 0m/s), (1.2V, 28m/s) 
// y = 23.3x

실행하면 아래와 같이 1초에 한번 센서 값을 출력합니다.

 

센서 동작 캡쳐


잘못된 내용이 있다면 언제든지 댓글이나 메일로 알려주시면 감사하겠습니다.

이 포스팅이 도움이 되었다면 공감 부탁드립니다.

궁금한 점은 언제든지 댓글 남겨주시면 답변해드리겠습니다:D