Датчик давления давления воды на MPS20N0040D-S проблемы с получением данных

Вопросы по аппаратной части Ардуино
EPavlenko
Сообщения: 1
Зарегистрирован: 18 апр 2021, 06:16

Датчик давления давления воды на MPS20N0040D-S проблемы с получением данных

Сообщение EPavlenko » 18 апр 2021, 06:32

Здравствуйте, столкнулась с проблемой с получением данных с данного датчика, в даташите указан диапазон измеряемого давления от 0 до 40МПа, однако потом выяснилось что 40 МПа он выдает только при припайке к нему резистора на 15 кОм. При подключении и тестировании выяснилось что почему-то давление на нем не может упасть до 0, а опускается до 16 МПа. Возможно в коде есть какие-то ошибки, либо я чего-то не понимаю. Я в этом деле новичок, помогите разобраться. (Код взяла из статьи про датчик)
/*
Pressure Measurements with the
MPS20N0040D Breakout Board
with the HX710B/HX711 ADC
5V Supply Voltage
*/
#include <Q2HX711.h>
const byte MPS_OUT_pin = 2; // OUT data pin
const byte MPS_SCK_pin = 3; // clock data pin
int avg_size = 10; // #pts to average over
float P=0;
float Vr=0;
float b=0.0226;
float S=0.05/29500;
Q2HX711 MPS20N0040D(MPS_OUT_pin, MPS_SCK_pin); // start comm with the HX710B
void setup()
{
Serial.begin(9600); // start the serial port
}
void loop()
{
float avg_val = 0.0; // variable for averaging
for (int ii=0;ii<avg_size;ii++)
{
avg_val += MPS20N0040D.read(); // add multiple ADC readings
delay(50); // delay between
}
avg_val /= avg_size;
//P = 0.00000125 *( (5*avg_val)/(128*(pow(2,24)-1)) +0.0226);
Vr = 5* avg_val / (128 *(pow(2,24)-1));
P = ((Vr/ 0.00000125)+(b/0.00000125))/1000;
//P = P/1000;
Serial.println(avg_val,0);
Serial.println(P); // print out the average
Serial.println(Vr);
}
Вложения
Снимок экрана (1808).png


Вернуться в «Аппаратное обеспечение»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 5 гостей