|
Высотомер на PIC, Высотомер на PIC |
|
|
|
Jul 17 2012, 18:09
|
Группа: Новичок
Сообщений: 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 битный АЦП?
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 21)
|
Jul 17 2012, 18:21
|

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
|
|
|
|
|
Jul 17 2012, 18:58
|
Группа: Новичок
Сообщений: 6
Регистрация: 17-07-12
Из: Липецк
Пользователь №: 72 792

|
нужно получить точность измерения в один метр...
Сообщение отредактировал Pathfinder7 - Jul 17 2012, 18:59
|
|
|
|
|
Jul 17 2012, 19:07
|
Гуру
     
Группа: Почетный участник
Сообщений: 6 851
Регистрация: 25-08-08
Из: Запорожье
Пользователь №: 39 802

|
Цитата(Pathfinder7 @ Jul 17 2012, 21:32)  Точность в 1 метр Простите меня за грубость. Не принимайте всерьез, но просто не могу удержаться. Бывает чепуха относительная и чепуха абсолютная. 1 метр по барометрическому давлению - пример чепухи абсолютной. Поставьте на подоконник бытовой барометр и понаблюдайте сутки. Неужели подоконник метров на 50 или более за день подпрыгивает? Из-за слепой веры в барометр разбился не один десяток самолетов. По-нормальному и 8 разрядов АЦП достаточно для высотомера, точнее он все равно высоту по давлению не определит. Часто встречающаяся трудность у программистов - не видят разницы меж точностью и разрешающей способностью измерителя. Основы метрологии полистать нужно. Даже если Вы каким-то чудом на своем ПИКе обработаете 5 мкВ, достоверность этих показаний - никакая. Для кой-какой достоверности Вам нужен на земле сравнительный, опорный датчик на известной высоте в подполетной точке. И то, давление будет от погоды меняться. Оно и на берегу моря меняется.
|
|
|
|
|
Jul 17 2012, 19:24
|
Группа: Новичок
Сообщений: 6
Регистрация: 17-07-12
Из: Липецк
Пользователь №: 72 792

|
Измерения будут проводится в какой то один момент времени опираясь на данные температуры и давление над уровнем моря от погодных станций в определенной местности.
|
|
|
|
|
Jul 17 2012, 19:59
|
Группа: Новичок
Сообщений: 6
Регистрация: 17-07-12
Из: Липецк
Пользователь №: 72 792

|
Хорошо, если отойти от давления и высоты. Как реализовать соединение данного датчика с pic16f877a ?
|
|
|
|
|
Jul 18 2012, 06:08
|
Группа: Новичок
Сообщений: 6
Регистрация: 17-07-12
Из: Липецк
Пользователь №: 72 792

|
Цитата(Microwatt @ Jul 18 2012, 00:39)  Как? Проводами, наверное... Только пропустить через нормирующий усилитель, чтобы ноль шкалы выставить. Согласовать шкалу датчика со шкалой АЦП. Это понятно, что проводами... Как преобразовать от 0,2 до 4,7 в. с шагом в 0,045 в. имеющимся 10 битным АЦП pic16f877a ? Разрешения 10 битного АЦП не хватает, что бы увидеть изменение в 0,045 в.
|
|
|
|
|
Jul 18 2012, 06:29
|
Знающий
   
Группа: Свой
Сообщений: 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 метров вам вполне доступна.
|
|
|
|
|
Jul 18 2012, 13:48
|
Гуру
     
Группа: Почетный участник
Сообщений: 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.
|
|
|
|
|
Jul 18 2012, 14:54
|
Местный
  
Группа: Участник
Сообщений: 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
|
|
|
|
|
Jul 18 2012, 16: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 - так и осталось. Т.е. датчик вносит поправку на изменение температуры. А для простого датчика давления нужно мостить датчик температуры, чтоб корректировать погрешность из-за расширения (сужения) материала корпуса, мембраны, проводов...
|
|
|
|
|
Jul 18 2012, 16:29
|
Профессионал
    
Группа: Свой
Сообщений: 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 - так и осталось. Т.е. датчик вносит поправку на изменение температуры. А для простого датчика давления нужно мостить датчик температуры, чтоб корректировать погрешность из-за расширения (сужения) материала корпуса, мембраны, проводов... Я не о том. С изменением температуры изменяеся функция давление от высоты. и разность давлений на двух точек по вертикали зависит не только от высоты но от распределения температуры.
|
|
|
|
|
Jul 18 2012, 16:54
|
Местный
  
Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309

|
Цитата(MaslovVG @ Jul 18 2012, 19:29)  Я не о том. С изменением температуры изменяеся функция давление от высоты. и разность давлений на двух точек по вертикали зависит не только от высоты но от распределения температуры. Ну если одни датчик находится возле земли, и температура воздуха там 24 градуса, а второй датчик на 10 метров выше и температура воздуха = 28 градусов, то эта температура воздуха передастся и датчикам и будет учтена при расчёте давления. Вроде бы так... Может схема температурной компенсации в датчике MPX и справится - это только проверка покажет. Если нужен именно MPX датчик, то я бы всё равно предложил BMP085 как эталон, и по нему сравнивать точность и повторяемость показаний датчика MPX. У меня только один BMP085, но в нете люди покупали по несколько датчиков BMP сразу - и несколько датчиков, находясь в комнате на одном уровне показывали одинаковые значения температуры и давления. Это из-за того, что на заводе в каждый датчик внесены поправочные коэффициенты с учётом его собственных характеристик. И эти коэффициенты используются при расчёте. Всего 11 коэффициентов - в каждом датчике свои. А как будет работать аналоговая схема компенсации температуры в MPX - это я не знаю  это сравнивать надо.
|
|
|
|
|
Jul 18 2012, 17:42
|
Местный
  
Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309

|
Я чего предлагаю BMP как эталон... Ведь эталон всё равно нужен. Данные с метеостанции придут ведь не в показаниях ADC Pic-контроллера - а в эталонных единицах: мм/рт.столба или паскалях. Значит и датчик MPX нужно не только подключить и очень точно прочитать - а и скорректировать эти показания так чтоб они соответствовали принятым единицам измерения. Иначе данные метеостанции просто не нужны В общем нужно чтоб под рукой был эталон. С этим эталоном и датчиком MPX нужно сделать много измерений на разной высоте и температуре, вычислить поправочные коэффициенты для этого конкретного датчика - и внести эти коэффициенты в Pic-контроллер. При замене датчика нужно снова с эталоном делать замеры и рассчитывать коэффициенты заново. Хотя можно сразу применить BMP и не мучиться  - т.к. он уже приведён к общепринятым единицам измерения, и по отзывам вроде как довольно точный Цитата(ILYAUL @ Jul 18 2012, 20:17)  B главное , что вся математика для BOSH уже написана. Но чем же мне так нравятся немцы , что при абсолютно равных входных условиях и одних и тех же формулах расчёта , они могут в двух разных DS получить разное давление. И перенести ошибки из одного в другой. Так , что берите BMP180 - он ещё "круче" Ага, у меня есть два DataSheet для BMP085 - и в них разные результаты вычислений по одним и тем же формулам Но там просто невнимательность приводившего пример - в версии 1.0 была ошибка, а в версии 1.2 пример скорректирован правильно. Посмотрел цену на BMP180 - он даже дешевле на 25 грн чем BMP085. А математика та-же. И даже пример расчёта взяли тот-же неправильный из DS rev1.0  Ну это поправимо
|
|
|
|
|
Jul 18 2012, 19:27
|
Группа: Новичок
Сообщений: 6
Регистрация: 17-07-12
Из: Липецк
Пользователь №: 72 792

|
Да, маловаты в размерах эти BMP. Будут трудности с пайкой, паяльной станции у меня нет. Где их можно купить? Нашел вот еще от Freescale: MPL3115A2 (выход I2C, датчик температуры, точность 0,3 метра) стоит от 1,5 $ http://www.freescale.com/webapp/sps/site/p...?code=MPL3115A2
|
|
|
|
|
Jul 20 2012, 09:42
|
Участник

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

|
Цитата(Pathfinder7 @ Jul 18 2012, 23:27)  Да, маловаты в размерах эти BMP. Будут трудности с пайкой, паяльной станции у меня нет. Где их можно купить? Я покупал здесь. Цитата(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
|
|
|
|
|
Jul 20 2012, 14:00
|
Местный
  
Группа: Участник
Сообщений: 356
Регистрация: 24-02-09
Пользователь №: 45 309

|
Цитата(Pathfinder7 @ Jul 18 2012, 22:27)  Да, маловаты в размерах эти BMP. Будут трудности с пайкой, паяльной станции у меня нет.  Если на плате только один SMD компонент (не важно этот датчик или любой другой) - то его можно смело паять на сплав Розе или Вуда. Чтоб демонтировать - достаточно будет положить на утюг, или подержать над печкой, или даже в кипятке  . Вполне себе нормальный вариант, когда нет станции. Кроме того, если паять легкоплавким припоем - то датчик целее будет. А ещё кто-то паял этот датчик, перевернув площадками к верху - и кинув на плату 8 проводков. В общем было бы желание, а выход всегда найдётся
Сообщение отредактировал controller_m30 - Jul 20 2012, 18:35
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|