реклама на сайте
подробности

 
 
> Высотомер на PIC, Высотомер на PIC
Pathfinder7
сообщение Jul 17 2012, 18:09
Сообщение #1





Группа: Новичок
Сообщений: 6
Регистрация: 17-07-12
Из: Липецк
Пользователь №: 72 792



Всем доброго дня!
Нужна помощь в разработке высотомера на PIC.
Есть в наличии pic16f877a и датчик давления mpxh6115a.
Диапазон измерения датчика от 15 до 115 кПа., на выходе от 0,2 до 4,7 в., чувствительность 0,045 в./кПа
Из барометрической формулы Р=101,325ехр(-0,00012h) получается что на один метр приходится примерно 0,01216 кПа.
И выходит что изменение на давления на метр, на выходе датчика изменится значение на 0,0005472 в.
На борту PIC имеется 10 битный АЦП. Хватит ли разрядности имеющегося АЦП или нужно использовать 16 битный АЦП?
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 21)
Danis
сообщение Jul 17 2012, 18:21
Сообщение #2


Twilight Zone
***

Группа: Свой
Сообщений: 454
Регистрация: 17-02-09
Из: Челябинск
Пользователь №: 44 990



Цитата(Pathfinder7 @ Jul 17 2012, 21:09) *
Всем доброго дня!
Нужна помощь в разработке высотомера на PIC.
Есть в наличии pic16f877a и датчик давления mpxh6115a.
Диапазон измерения датчика от 15 до 115 кПа., на выходе от 0,2 до 4,7 в., чувствительность 0,045 в./кПа
Из барометрической формулы Р=101,325ехр(-0,00012h) получается что на один метр приходится примерно 0,01216 кПа.
И выходит что изменение на давления на метр, на выходе датчика изменится значение на 0,0005472 в.
На борту PIC имеется 10 битный АЦП. Хватит ли разрядности имеющегося АЦП или нужно использовать 16 битный АЦП?


Тут и 8-ми разрядного может хватить, вопрос в том, насколько точен Ваш датчик и какая дискретность результата нужна?
P.S. 16-ти разрядный АЦП не имеет смысла использовать при грубых условиях измерения.


--------------------
Magic Friend
Go to the top of the page
 
+Quote Post
Pathfinder7
сообщение Jul 17 2012, 18:58
Сообщение #3





Группа: Новичок
Сообщений: 6
Регистрация: 17-07-12
Из: Липецк
Пользователь №: 72 792



нужно получить точность измерения в один метр...

Сообщение отредактировал Pathfinder7 - Jul 17 2012, 18:59
Go to the top of the page
 
+Quote Post
Microwatt
сообщение Jul 17 2012, 19:07
Сообщение #4


Гуру
******

Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802



Цитата(Pathfinder7 @ Jul 17 2012, 21:32) *
Точность в 1 метр

Простите меня за грубость. Не принимайте всерьез, но просто не могу удержаться. Бывает чепуха относительная и чепуха абсолютная.
1 метр по барометрическому давлению - пример чепухи абсолютной. Поставьте на подоконник бытовой барометр и понаблюдайте сутки. Неужели подоконник метров на 50 или более за день подпрыгивает?
Из-за слепой веры в барометр разбился не один десяток самолетов.
По-нормальному и 8 разрядов АЦП достаточно для высотомера, точнее он все равно высоту по давлению не определит.
Часто встречающаяся трудность у программистов - не видят разницы меж точностью и разрешающей способностью измерителя.
Основы метрологии полистать нужно.
Даже если Вы каким-то чудом на своем ПИКе обработаете 5 мкВ, достоверность этих показаний - никакая. Для кой-какой достоверности Вам нужен на земле сравнительный, опорный датчик на известной высоте в подполетной точке.
И то, давление будет от погоды меняться. Оно и на берегу моря меняется.
Go to the top of the page
 
+Quote Post
Pathfinder7
сообщение Jul 17 2012, 19:24
Сообщение #5





Группа: Новичок
Сообщений: 6
Регистрация: 17-07-12
Из: Липецк
Пользователь №: 72 792



Измерения будут проводится в какой то один момент времени опираясь на данные температуры и давление над уровнем моря от погодных станций в определенной местности.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Jul 17 2012, 19:43
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(Pathfinder7 @ Jul 17 2012, 22:24) *
Измерения будут проводится в какой то один момент времени опираясь на данные температуры и давление над уровнем моря от погодных станций в определенной местности.

Может, с gps модуля снимать готовую величину? хотя, я про точность не знаю.

PS Ну вот почему именно 1 метр? а жили бы в xxx, захотели бы 1 фут? (но это так, про любовь к круглым числам в ТЗ)
Go to the top of the page
 
+Quote Post
Pathfinder7
сообщение Jul 17 2012, 19:59
Сообщение #7





Группа: Новичок
Сообщений: 6
Регистрация: 17-07-12
Из: Липецк
Пользователь №: 72 792



Хорошо, если отойти от давления и высоты. Как реализовать соединение данного датчика с pic16f877a ?
Go to the top of the page
 
+Quote Post
Microwatt
сообщение Jul 17 2012, 20:39
Сообщение #8


Гуру
******

Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802



Цитата(Pathfinder7 @ Jul 17 2012, 22:59) *
Хорошо, если отойти от давления и высоты. Как реализовать соединение данного датчика с pic16f877a ?

Как? Проводами, наверное... Только пропустить через нормирующий усилитель, чтобы ноль шкалы выставить. Согласовать шкалу датчика со шкалой АЦП.
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Jul 17 2012, 20:52
Сообщение #9


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(Ruslan1 @ Jul 17 2012, 22:43) *
Может, с gps модуля снимать готовую величину? хотя, я про точность не знаю.

±десяток-другой метров (зависит от типа приёмника). Это если дешево делать, за 10-20 $.
Go to the top of the page
 
+Quote Post
Pathfinder7
сообщение Jul 18 2012, 06:08
Сообщение #10





Группа: Новичок
Сообщений: 6
Регистрация: 17-07-12
Из: Липецк
Пользователь №: 72 792



Цитата(Microwatt @ Jul 18 2012, 00:39) *
Как? Проводами, наверное... Только пропустить через нормирующий усилитель, чтобы ноль шкалы выставить. Согласовать шкалу датчика со шкалой АЦП.

Это понятно, что проводами...
Как преобразовать от 0,2 до 4,7 в. с шагом в 0,045 в. имеющимся 10 битным АЦП pic16f877a ?
Разрешения 10 битного АЦП не хватает, что бы увидеть изменение в 0,045 в.
Go to the top of the page
 
+Quote Post
SKov
сообщение Jul 18 2012, 06:29
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 812
Регистрация: 22-01-05
Из: SPb
Пользователь №: 2 119



Цитата(Pathfinder7 @ Jul 18 2012, 10:08) *
Это понятно, что проводами...
Как преобразовать от 0,2 до 4,7 в. с шагом в 0,045 в. имеющимся 10 битным АЦП pic16f877a ?
Разрешения 10 битного АЦП не хватает, что бы увидеть изменение в 0,045 в.

5 милливольт - обычное разрешение "пикового" АЦП. В качестве опоры берете землю и +5V питание.
В этот диапазон как раз укладывается ваш барометр. Теперь делим 5 вольт на 1024 и получаем
5 милливольт - цена деления в вашем приборе на базе данного ПИКа.
Т.е. разрешающая способность порядка 10 метров вам вполне доступна.
Go to the top of the page
 
+Quote Post
Microwatt
сообщение Jul 18 2012, 13:48
Сообщение #12


Гуру
******

Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802



Цитата(Pathfinder7 @ Jul 18 2012, 09:08) *
Это понятно, что проводами...
Как преобразовать от 0,2 до 4,7 в. с шагом в 0,045 в. имеющимся 10 битным АЦП pic16f877a ?
Разрешения 10 битного АЦП не хватает, что бы увидеть изменение в 0,045 в.

Ну как преобразовать...
Вы упростите себе задачу Считайте что датчик выдает не от 0.2 до 4.7 вольта, а то минус 3 до плюс 15. Как бы Вы решали задачу в таком случае?
Сведете минус три - плюс 15 к диапазону 0-5 вольт (диапазон АЦП) тогда свести 0.2-4.7вольта - заурядная проблема.
масштабирующий усилитель. Y=кх+b.
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Jul 18 2012, 14:54
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



Так вроде ж есть готовые модули барометров...
Прямо вот сейчас юзаю барометр на датчике давления BOSH BMP085.
Точность измерения 1 единица = 5 см высоты. Для улучшения точности использовал усреднение последних 32 показаний.

Например датчик выдаёт 98355 Pa находясь на столе.
Перемещаю датчик на пол (-50см) - показания 98365 Pa (+10 Pa)
Перемещаю на стол - снова 98355 Pa
Поднимаю над столом на 50см - показания 98345 Pa (-10 Pa)
Снова на стол - снова 98355 Pa. Повторяемость показаний хорошая.
Датчик стоит в Украине 90 грн (в Космодроме например). Интерфейс I2C. Питание 1.8-3.6v. Ток потребления 12 мка.

Датчик использует при расчёте давления также и температуру самого датчика (в нём измеряется и t и давление). Для температуры выдаёт 16 битное значение, и для давления - 19 битное значение.

Но! В течение дня давление изменяется на, примерно, 150 Pa (т.е. примерно на 7.5 метров). Конкретно сегодня утром было 98380 Pa, а сейчас вечером 98230 Pa. В мм/рт.столба это будет 737.9мм, и 736.8мм соответственно. Тут видно, что показания гидрометцентра для такой цели не очень годятся, т.к. разница давлений в 1.1мм/рт.столба = 165 Pa = 8,2 метра высоты. По гидрометцентру мерить может и не получиться.

Ночью давление больше, а днём меньше. Ещё давление существенно изменяется при перемене погоды (циклоны и антициклоны - разность давлений между ними как перепад сразу за несколько дней).
Чтоб использовать датчик как высотомер, нужно знать давление на уровне земли в данный конкретный момент. Т.к. показания изменяются даже при перемене ветра, или заслонении солнышка тучкой. Так что датчиков наверное надо 2. Один на земле, а другим меряем высоту (высчитывая разность между первым и вторым датчиком).

Сообщение отредактировал controller_m30 - Jul 18 2012, 14:59
Go to the top of the page
 
+Quote Post
MaslovVG
сообщение Jul 18 2012, 16:03
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134



Цитата(controller_m30 @ Jul 18 2012, 18:54) *
Так что датчиков наверное надо 2. Один на земле, а другим меряем высоту (высчитывая разность между первым и вторым датчиком).

Для точного измерения ещё больше. Поскольку температура также сильно меняется с высотой и может как понижатся (чаще) так и повышатся.
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Jul 18 2012, 16:15
Сообщение #15


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



Цитата(MaslovVG @ Jul 18 2012, 19:03) *
Для точного измерения ещё больше. Поскольку температура также сильно меняется с высотой и может как понижатся (чаще) так и повышатся.
Если датчиком автора - то да, надо несколько датчиков, и разных.
В BMP085 температура учитывается при расчёте. Например мой барометр показывает 98380 Pa и температуру 26.3 градуса. Я берусь рукой за датчик, и температура начинает расти: 27, 28, 29...34, 35 градусов. Но давление как было 98380 Pa - так и осталось. Т.е. датчик вносит поправку на изменение температуры.
А для простого датчика давления нужно мостить датчик температуры, чтоб корректировать погрешность из-за расширения (сужения) материала корпуса, мембраны, проводов...
Go to the top of the page
 
+Quote Post
MaslovVG
сообщение Jul 18 2012, 16:29
Сообщение #16


Профессионал
*****

Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134



Цитата(controller_m30 @ Jul 18 2012, 20:15) *
Если датчиком автора - то да, надо несколько датчиков, и разных.
В BMP085 температура учитывается при расчёте. Например мой барометр показывает 98380 Pa и температуру 26.3 градуса. Я берусь рукой за датчик, и температура начинает расти: 27, 28, 29...34, 35 градусов. Но давление как было 98380 Pa - так и осталось. Т.е. датчик вносит поправку на изменение температуры.
А для простого датчика давления нужно мостить датчик температуры, чтоб корректировать погрешность из-за расширения (сужения) материала корпуса, мембраны, проводов...

Я не о том. С изменением температуры изменяеся функция давление от высоты. и разность давлений на двух точек по вертикали зависит не только от высоты но от распределения температуры.
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Jul 18 2012, 16:54
Сообщение #17


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



Цитата(MaslovVG @ Jul 18 2012, 19:29) *
Я не о том. С изменением температуры изменяеся функция давление от высоты. и разность давлений на двух точек по вертикали зависит не только от высоты но от распределения температуры.
Ну если одни датчик находится возле земли, и температура воздуха там 24 градуса, а второй датчик на 10 метров выше и температура воздуха = 28 градусов, то эта температура воздуха передастся и датчикам и будет учтена при расчёте давления.
Вроде бы так... laughing.gif

Может схема температурной компенсации в датчике MPX и справится - это только проверка покажет.
Если нужен именно MPX датчик, то я бы всё равно предложил BMP085 как эталон, и по нему сравнивать точность и повторяемость показаний датчика MPX.
У меня только один BMP085, но в нете люди покупали по несколько датчиков BMP сразу - и несколько датчиков, находясь в комнате на одном уровне показывали одинаковые значения температуры и давления. Это из-за того, что на заводе в каждый датчик внесены поправочные коэффициенты с учётом его собственных характеристик. И эти коэффициенты используются при расчёте. Всего 11 коэффициентов - в каждом датчике свои.

А как будет работать аналоговая схема компенсации температуры в MPX - это я не знаю laughing.gif это сравнивать надо.
Go to the top of the page
 
+Quote Post
ILYAUL
сообщение Jul 18 2012, 17:17
Сообщение #18


Профессионал
*****

Группа: Свой
Сообщений: 1 940
Регистрация: 16-12-07
Из: Москва
Пользователь №: 33 339



B главное , что вся математика для BOSH уже написана. Но чем же мне так нравятся немцы , что при абсолютно равных входных условиях и одних и тех же формулах расчёта , они могут в двух разных DS получить разное давление. И перенести ошибки из одного в другой. Так , что берите BMP180 - он ещё "круче"


--------------------
Закон Мерфи:

Чем тщательнее составлен проект, тем больше неразбериха, если что-то пошло не так
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Jul 18 2012, 17:42
Сообщение #19


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



Я чего предлагаю BMP как эталон... Ведь эталон всё равно нужен.
Данные с метеостанции придут ведь не в показаниях ADC Pic-контроллера - а в эталонных единицах: мм/рт.столба или паскалях.
Значит и датчик MPX нужно не только подключить и очень точно прочитать - а и скорректировать эти показания так чтоб они соответствовали принятым единицам измерения. Иначе данные метеостанции просто не нужны laughing.gif
В общем нужно чтоб под рукой был эталон. С этим эталоном и датчиком MPX нужно сделать много измерений на разной высоте и температуре, вычислить поправочные коэффициенты для этого конкретного датчика - и внести эти коэффициенты в Pic-контроллер. При замене датчика нужно снова с эталоном делать замеры и рассчитывать коэффициенты заново.

Хотя можно сразу применить BMP и не мучиться biggrin.gif - т.к. он уже приведён к общепринятым единицам измерения, и по отзывам вроде как довольно точный

Цитата(ILYAUL @ Jul 18 2012, 20:17) *
B главное , что вся математика для BOSH уже написана. Но чем же мне так нравятся немцы , что при абсолютно равных входных условиях и одних и тех же формулах расчёта , они могут в двух разных DS получить разное давление. И перенести ошибки из одного в другой. Так , что берите BMP180 - он ещё "круче"
Ага, у меня есть два DataSheet для BMP085 - и в них разные результаты вычислений по одним и тем же формулам biggrin.gif
Но там просто невнимательность приводившего пример - в версии 1.0 была ошибка, а в версии 1.2 пример скорректирован правильно.

Посмотрел цену на BMP180 - он даже дешевле на 25 грн чем BMP085. А математика та-же. И даже пример расчёта взяли тот-же неправильный из DS rev1.0 biggrin.gif Ну это поправимо rolleyes.gif
Go to the top of the page
 
+Quote Post
Pathfinder7
сообщение Jul 18 2012, 19:27
Сообщение #20





Группа: Новичок
Сообщений: 6
Регистрация: 17-07-12
Из: Липецк
Пользователь №: 72 792



Да, маловаты в размерах эти BMP. Будут трудности с пайкой, паяльной станции у меня нет. wacko.gif
Где их можно купить?

Нашел вот еще от Freescale: MPL3115A2 (выход I2C, датчик температуры, точность 0,3 метра)
стоит от 1,5 $
http://www.freescale.com/webapp/sps/site/p...?code=MPL3115A2
Go to the top of the page
 
+Quote Post
SeregaB
сообщение Jul 20 2012, 09:42
Сообщение #21


Участник
*

Группа: Свой
Сообщений: 55
Регистрация: 6-04-06
Из: Москва, Зеленоград
Пользователь №: 15 863



Цитата(Pathfinder7 @ Jul 18 2012, 23:27) *
Да, маловаты в размерах эти BMP. Будут трудности с пайкой, паяльной станции у меня нет. wacko.gif
Где их можно купить?

Я покупал здесь.
Цитата(Pathfinder7 @ Jul 18 2012, 23:27) *
Нашел вот еще от Freescale: MPL3115A2 (выход I2C, датчик температуры, точность 0,3 метра)
стоит от 1,5 $
http://www.freescale.com/webapp/sps/site/p...?code=MPL3115A2

Тебе же выше написАли - не путай точность и разрешалку.
Less than 1 foot / 0.3 m resolution

Рекомендую почитать
http://ru.wikipedia.org/wiki/Барометрическая_формула
http://ru.wikipedia.org/wiki/Барометрическое_нивелирование

Еще мне понравился LPS331
Go to the top of the page
 
+Quote Post
controller_m30
сообщение Jul 20 2012, 14:00
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309



Цитата(Pathfinder7 @ Jul 18 2012, 22:27) *
Да, маловаты в размерах эти BMP. Будут трудности с пайкой, паяльной станции у меня нет. wacko.gif

Если на плате только один SMD компонент (не важно этот датчик или любой другой) - то его можно смело паять на сплав Розе или Вуда. Чтоб демонтировать - достаточно будет положить на утюг, или подержать над печкой, или даже в кипятке biggrin.gif . Вполне себе нормальный вариант, когда нет станции.
Кроме того, если паять легкоплавким припоем - то датчик целее будет.

А ещё кто-то паял этот датчик, перевернув площадками к верху - и кинув на плату 8 проводков.
В общем было бы желание, а выход всегда найдётся rolleyes.gif

Сообщение отредактировал controller_m30 - Jul 20 2012, 18:35
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th July 2025 - 02:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01593 секунд с 7
ELECTRONIX ©2004-2016