MPX5050DP

Alex2x
Offline
Зарегистрирован: 15.01.2012

Добрый всем день.
Кто сталкивался с таким сенсором MPX5050DP?
Может кто кинет пример(кусок скетча для ардуины)?
Нужно всего лишь измерять давление в одной точке и выводить
измеренное на LCD. 

leshak
Offline
Зарегистрирован: 29.09.2011

 Я с аналогичным сталкивался MPX5010DP

Если память не изменяет он обыкновенным http://arduino.ru/Reference/AnalogRead читается.

Дальше находите как выводить на ваш LCD и  выводите прочитанное вместо Serial в LCD

leshak
Offline
Зарегистрирован: 29.09.2011

Alex2x пишет:

Нужно всего лишь измерять давление в одной точке 

А вот с этим может выйти облом. Если я правильно помню, то буква D в индексе означает "дифференциальный". То есть он меряет не абсолютное давление, а разницу давления между "дыркой A" и "дыркой Б". Лень сранивать даташиты, чем там 5050 от 5010 отличается, но 5010 выдает только "насколько А больше Б". Но не наоборот. Если давление в А будет меньше Б - он тупо вернет 0.

Alex2x
Offline
Зарегистрирован: 15.01.2012

leshak пишет:

Alex2x пишет:

Нужно всего лишь измерять давление в одной точке 

А вот с этим может выйти облом. Если я правильно помню, то буква D в индексе означает "дифференциальный". То есть он меряет не абсолютное давление, а разницу давления между "дыркой A" и "дыркой Б". Лень сранивать даташиты, чем там 5050 от 5010 отличается, но 5010 выдает только "насколько А больше Б". Но не наоборот. Если давление в А будет меньше Б - он тупо вернет 0.

Спасибо.

Похоже, что так. В нете совсем нет инфы по этой теме.

leshak
Offline
Зарегистрирован: 29.09.2011

Alex2x пишет:

leshak пишет:

Alex2x пишет:

Нужно всего лишь измерять давление в одной точке 

А вот с этим может выйти облом. Если я правильно помню, то буква D в индексе означает "дифференциальный". То есть он меряет не абсолютное давление, а разницу давления между "дыркой A" и "дыркой Б". Лень сранивать даташиты, чем там 5050 от 5010 отличается, но 5010 выдает только "насколько А больше Б". Но не наоборот. Если давление в А будет меньше Б - он тупо вернет 0.

Спасибо.

Похоже, что так. В нете совсем нет инфы по этой теме.

Есть. Но нагуглить трудно. Тоже долго искал. Ничего не нашел. Купил. Понял что "не то" и нужен был абсолютный. И тут же нашел статью описывающих их типы :) Сейчас попробовал найти - не получается опять :(

Для себя нашел такой выход: у меня задача стояла несколько "упрощенная". Нужно было занть "дуют" в дырку А, или "тянут". Досточно точности "сильно/слабо". Абсолютные цифры не важны были.
Что сдела:

  • Купил кусочек шланга силиконового для аквариума (используются для компресоров подачи воздуха). Он идеально одевается на выход датчика. Стоит копейки
  • Взял обыкновенный 5-ти кубовый шприц. Иголку выкинул. Шланг на него тоже плотно одевается.
  • Соеденил шприц и выход "Б".
  • Далее начал вытягивать шприцом воздух пока analogRead не начал выдвать цифры около 600-та.

Ну и все. Далее "дую в A" - цифры растут до 1024 (зависит от силы с которой дую) , "тяну из А" - падают к нулю. 

Так как это был "датчик дыхания", а MPX5010 "насквозь не продувается", а "дышать хочется" (и регистировать это) :), то на А, через трубочку подсоеденил второй шприц. Выкинул из него поршень. Получился мунштук. В который можно дуть. В стенках шприца - насверлил дырки. При дыхании часть воздуха уходит через них, часть - идет в датчик.

Следующая проблема - раздражал свист через эти дырки. Обернул тканью махровой шприц. Воздух через ткань проходит, а звук - гасится.

leshak
Offline
Зарегистрирован: 29.09.2011
Alex2x
Offline
Зарегистрирован: 15.01.2012

 Спасибо. Буду думать.

Alex2x
Offline
Зарегистрирован: 15.01.2012

 Вот что получилось:

void loop() {
mpx = (float)analogRead(mpxPin);
pkPa = (mpx/(float)1023-0.04)/0.0018;

lcd.setCursor(0, 0);
lcd.print("mb ");
lcd.print(pkPa);
delay(1000);
}

Показания в милибарах, если разделить на 0.018-в килопаскалях.

Проверял, показывает точно(для моих нужд)