2017-05-16 6 views
1

피토관 MPXV7002DP를 사용하여 풍속을 계산하려고합니다.
우리는 베르누이의 식에 적용 후 센서의 동적 압력을 받고있다 : 우리는 아두 이노 UNO를 사용arduino를 사용하여 피토관으로 풍속 계산

pd = dynamic pressure 
air density = 1.225kg/m^3 
windspeed = sqrt(2*Pd/air density) 

.

센서에서 압력을 읽는 데 문제가 있다고 생각합니다.

정확한 값을 얻는 방법을 모르겠습니다.

#include <SoftwareSerial.h> 

float Output=0; 
void setup() { 
    Serial.begin(9600); 
} 
void loop() { 
    float sensorValue = analogRead(A0); 
    output=sqrt((2*sensorValue)/1.225); 
    Serial.println(output); 
    Serial.print("m/s"); 
    delay(100); 
} 
+0

'analogRead'는 0에서 1023 사이의 값을 반환합니다. 정확한 동압을 반환하지 않습니다. –

+0

그래, 그게 문제라고 생각해.하지만 아날로그 판독 값의 동적 압력을 어떻게 계산해야합니까? 감사합니다. – Dynamics

답변

1

commenter가 지적했듯이 analogRead의 반환 값은 0-1023의 정수입니다. 이것은 핀 A0의 전압을 0에서 비교 전압으로 스케일링 한 것입니다. (만약 당신이 5V Arduino를 사용한다면, 1023은 5V, 3V Arduino, 1023은 3V입니다. 당신이 비교 전압으로 사용하는 것을 바꾸는 복잡한 일을하는 것처럼 보이지 않으므로 정확해야합니다.)

5V로 작업한다고 가정합니다. 센서가 사용하는 것이기 때문에 5V로 작업한다고 가정합니다.

압력과 전압의 관계를 확인하려면 장치의 data sheet을 살펴보십시오. 시트를 보면, 여기에 복잡한 놈이 있지만, 5 페이지의 그래프에서 0.5V (아날로그 판독 값 약 102)는 -2kPa의 압력이고 약 4.5V (아날로그 판독 값은 약 921)는 2kPa의 압력이다. 스케일링이 선형이라는 것은 운이 좋았던 것입니다.

"주변"이라고 말하면 기기의 반응이 상당히 슬롭 (최저 +/- 0.5V 또는 .2kPa)합니다. 즉, 0kPa는 462에서 562 사이의 값을 읽을 수 있습니다.

0에서 102까지 -2kPa, 921-1023에서 2kPa까지 analogRead 값을 매핑해야하며 사이의 모든 값은 -2에서 -2 사이의 모든 lerp 여야합니다. 2. 나는 내가 그것을 밖으로 시도 할 수없는 내 앞에있는 아두 이노가없는, 그러나 그것은 무언가 같이해야합니다 : 뭔가를 망쳐 경우

result = analogRead(A0); 
if (result < 102) { 
    kPa = -2.0; 
} else { 
    if (result > 921) { 
    kPa = 2.0; 
    } else { 
    kPa = map(result, 102, 921, -2000, 2000)/1000.0; 
    } 
} 

이 코멘트에 알려 그것을 고치기 위해 보겠습니다. 이것은 실제로 컴파일/테스트 할 수있는 이점이 없습니다. =]

+0

고마워요. 나는 압력을 받고 풍속에 대한 공식과 결합하기 위해 이것을 사용할 것입니다. 제가 작업하는대로 피드백을 알려 드리겠습니다 – Dynamics

+0

센서에서 압력을 받기 위해 우리가 말한 것을 사용했습니다. 그러나 우리가 베르누이 방정식을 적용 할 때, 풍속을 구하기 위해 우리는 속도에 대해 약 14.5m/s의 값을 얻고 있습니다. 당신이 말한대로 kPa를 읽은 후에. 우리는 이것을하고있다 *** float Pa = kPa * 1000; 출력 = sqrt ((2 * Pa) /1.225); Serial.print (output-14.0); Serial.println ("m/s"); *** 센서에 대한 데이터 시트를 확인하고 있지만이 전송 함수의 용도는 무엇인지 알지 못합니다. 나는 센서가 읽는 오류를 고려할 필요가 있다고 생각한다. – Dynamics

+0

수학 연산을 거꾸로하면 .128kPa가됩니다. 이는 센서의 오차 범위 내에 있습니다.필자는 데이터 시트의 세부 사항을 검토하지는 않았지만 온도를 보정하는 방법 (센서 오류의 가장 일반적인 원인)에 대한 자세한 내용이있는 경우 더 정확한 정보를 얻으려고하면 놀라지 않을 것입니다. – Sniggerfardimungus