датчик давления HP02S

Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Вт ноя 30, 2010 13:45:01
Откуда: Донецк

Сообщение DotZZ »

Всем доброго времени!
Приобрел недавно этот датчик для своего проекта метеостанции. Подключаю на пару с ds1307, MCLK с датчика подключаю к ноге кварца 32кгц который на DS часах.
Значения констант из EEPROM читаются, а вот текущие значения давления по нулям... Может кто работал с сабжем? Есть какие-нибудь нюансы? Нужно ли городить программный генератор на 32 кгц?
Контактная информация:
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 493
Зарегистрирован: Ср фев 14, 2007 12:07:58
Откуда: Москва

Сообщение Fasterpast »

А на DS1307 разве нет CLK выхода? Не логичнее будет подключиться к нему?
Контактная информация:
Реклама
Вымогатель припоя
Сообщения: 557
Зарегистрирован: Пн мар 23, 2009 04:03:45

Сообщение stas00n »

Fasterpast прав, надо тактирование брать со специального выхода (вывод 7), а не с кварца; если подключитесь непосредственно к кварцу, в лучшем случае расстроите частоту (увеличится ход), в худшем - генератор вообще не заведется. Осциллографом смотрели тактовую? При чтении АЦП адрес устройства поменять не забыли? На XCLR высокий уровень?
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Вт ноя 30, 2010 13:45:01
Откуда: Донецк

Сообщение DotZZ »

значит подключил MCKL к выводу 7, прогаю следующим образом:




char p1=0,p2=0;

DDRB=0x3F;
i2c_init();

// строка инициализации часов
// Square wave output on pin SQW/OUT: On
// Square wave frequency: 32768Hz
rtc_init(3,1,0);


PORTB.0=1; //здесь у меня выход на XCLR
i2c_start();
i2c_write(0xEE);
i2c_write(0xFF);
i2c_write(0xE8); //для теста беру значение Т1
i2c_stop();

delay_ms(60);

i2c_start();
i2c_write(0xEE);
i2c_write(0xFD);
i2c_start();

i2c_write(0xEF);
p1 = i2c_read(1);
p2 = i2c_read(0);

i2c_stop();

PORTB.0=0;

Часы идут нормально, а вот p1 p2 по нулям
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Вымогатель припоя
Сообщения: 557
Зарегистрирован: Пн мар 23, 2009 04:03:45

Сообщение stas00n »

У Вас макрос i2c_write() просто шлет аргумент в шину, или младший бит обнуляет? Проверьте этот момент. Аргумент i2c_read() насколько я понял, определяет слать или нет бит подтверждения слейву; после приема первого байта надо послать ACK, а после второго не надо.
DotZZ писал(а):

Код: Выделить всё

p1 = i2c_read(1);    //а не наоборот ли надо?
p2 = i2c_read(0);    //сначала i2c_read(0); потом i2c_read(1);
Реклама
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Вт ноя 30, 2010 13:45:01
Откуда: Донецк

Сообщение DotZZ »

поменял местами, результата все равно нет... на 7й ноге ДСки частотомер упорно показывает 1кгц, хотя инициализировал для 32кгц... могла частота из-за чего-то сбиться?
Контактная информация:
Реклама
Вымогатель припоя
Сообщения: 557
Зарегистрирован: Пн мар 23, 2009 04:03:45

Сообщение stas00n »

1 кГц никак не должно быть. Доступные значения 1Гц, 4096Гц, 8192Гц, 32768Гц, все. 32 кГц должно быть если Control Register = 0x13 или 0x93.
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Вт ноя 30, 2010 13:45:01
Откуда: Донецк

Сообщение DotZZ »

еще вопрос, а нужен ли в этом случае на SQW подтягивающий резистор, или напрямую ногу с датчика подключать?
Контактная информация:
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Вт ноя 30, 2010 13:45:01
Откуда: Донецк

Сообщение DotZZ »

можно генерировать на датчик те же ~32Кгц с шим контроллера?
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Сообщение md5sum »

DotZZ:
Есть подвижки? То-же присматриваюсь к этому датчику, но в связи с поднятой темой пока решил подождать :)
— Не говорите мне что делать и я не скажу куда Вам идти...
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Вт ноя 30, 2010 13:45:01
Откуда: Донецк

Сообщение DotZZ »

Да, все получилось!! Частоту подаю с ШИМа, могу выложить исходнички)
Контактная информация:
Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Сообщение md5sum »

Исходники не обязательно :)
Все по datasheet?
То есть получив от датчика D1 и T1 по формуле из ДШ считаем давление?
— Не говорите мне что делать и я не скажу куда Вам идти...
Первый раз сказал Мяу!
Сообщения: 22
Зарегистрирован: Вт ноя 30, 2010 13:45:01
Откуда: Донецк

Сообщение DotZZ »

Абсолютно верно) единственное, я для удобства умножал результат на 0.075 (мм.рт.ст), ну это уже кому что нужно
Контактная информация:
Держит паяльник хвостом
Аватара пользователя
Сообщения: 908
Зарегистрирован: Вс май 23, 2010 13:55:42
Откуда: Украина, Александрия

Сообщение Apparatchik »

DotZZ писал(а):еще вопрос, а нужен ли в этом случае на SQW подтягивающий резистор, или напрямую ногу с датчика подключать?
Думаю что да. Я как то использовал этот вывод для синхронизации мк и без резистора неработало
DotZZ писал(а):Абсолютно верно) единственное, я для удобства умножал результат на 0.075 (мм.рт.ст), ну это уже кому что нужно
Это чтоб получить результат в милиметрах ртутного столба?
DotZZ писал(а):Да, все получилось!! Частоту подаю с ШИМа, могу выложить исходнички)
Хотелось бы поподробней узнать о функциях инициализации, чтения и управления. Есть ли мануал на русском что из себя представляет этот датчик, какие в нём регистры и как с ним работать?

Можно ли его подключить на аппаратный I2C паралельно ds1307 и какие при этом нюансы?
«И всё-таки она вертится!»
Родился
Сообщения: 1
Зарегистрирован: Ср апр 27, 2011 02:03:51

Сообщение Sizoy »

А может кто-нибудь выложить исходники по этому датчику?
Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Сообщение md5sum »

Лови....
Написано немного "в лоб", но после тестов не было времени причесать...
HOP_get_value(); возвращает давление в сотых мм.рт.ст

Написано для HP03, но пойдет и для HP02: они отличаются только питанием и рабочим диапазоном температур.
Последний раз редактировалось md5sum Ср май 18, 2011 23:53:46, всего редактировалось 1 раз.
— Не говорите мне что делать и я не скажу куда Вам идти...
Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Сообщение md5sum »

md5sum писал(а):Написано для HP03, но пойдет и для HP02
СТОП !!!! Извиняюсь !!!!
Ни фига не подойдет! Сейчас открыл ДШ для 02 - ничего общего касательно вычислений и поправок.
— Не говорите мне что делать и я не скажу куда Вам идти...
Друг Кота
Аватара пользователя
Сообщения: 3793
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

Народ, а сверял-ли кто показания HP02/HP03 с действительностью? Я тоже сейчас занимаюсь метеостанцией и приобрел 2 датчика для сравнения: HP03SA и BMP085. Так вот, у меня HP всегда показывал давление на 12-14 mmHg выше чем BMP. Показания BMP совпадали в точности с данными давления на вебсайтах погоды (после пересчета под высоту места).

Далее, показания температуры у моего HP отличались от BMP на 1-1.5 градуса и были очень нестабильны. Т.е. при измерении температуры с интервалом примерно 2 сек показания HP иногда непредсказуемо прыгали до 0.2-0.5 градуса Цельсия, в то время как BMP показывал стабильную температуру в полном соответствии с сенсором SHT15 (отличие не более 0.1 градуса). Правильность программных вычислений проверял на калькуляторе, используя предварительно считанные поправочные коэффициенты сенсора HP03SA и его "сырые" данные и получил полное соответствие вычисленных величин. Наблюдал-ли кто что-то подобное, или мне не повезло с экземпляром сенсора?
Вымогатель припоя
Аватара пользователя
Сообщения: 672
Зарегистрирован: Вт окт 27, 2009 22:39:19
Откуда: Москва

Сообщение md5sum »

Сравнивать с вебом если только порядок цифр...
От меня ближайшие данные - аэропорт Домодедово - 31 км.
Расхождения с аэрпортом стабильные - 10 мм.рт.ст

Думаю, что в реальной атмосфере в ветренную погоду даление разное даже на небольшом расстоянии. А полного штиля ждать придется долго...
Барокамеру надо :)

Для теста, на днях, запущу HP02S (после прокола с неправильными исходниками - надо реабилитироваться :) )
Вот и сравню хотя-бы их между собой. Алгоритм вычислений у ни совсем разный, как и кол-во поправочных коэффициентов.

Как альтиметр проверял - 15 метров (5-й этаж) - 1 мм.рт.ст.
Если надо могу в hpa замерить....
— Не говорите мне что делать и я не скажу куда Вам идти...
Друг Кота
Аватара пользователя
Сообщения: 3793
Зарегистрирован: Ср дек 24, 2008 09:58:58

Сообщение Ser60 »

А я наоборот склонен больше верить вебу чем местным станциям, которые
неизвестно что меряют. На вебе, как правило, по крайней мере ясно указано,
что они отображают абсолютное давление пересчитанное под средний уровень
моря (может это тоже указано на сайте аэропорта, не знаю). В любом
случае давление требует пересчета под высоту конкретного места над уровнем
моря. У меня, например, эта высота около 200м, если верить тому-же вебу, и
разница с давлением на уровне моря порядка 18mmHg, что подтверждается
показаниями различных датчиков, включая промышленные. Может и в Вашем
случае расхождение из-за разницы высот? Кстати, о каком датчике идет речь?

По поводу влияния ветра на давление, согласен, но непонятно как учесть. Вот
тут теория хорошо представлена:
http://www.ux1.eiu.edu/~cfjps/1400/pressure_wind.html
Может отличие с данными в аэтопорту и из-за ветра. Их обычно строят в
ветренных местах. Попробуйте сравнить свои данные с другим вебом, например
http://www.weather.com и пересчитать их под свою высоту. Интересно что получится.
Я лично не считаю, что Вы "прокололись", но мне был-бы интересен опыт
сравнения показаний HP02 с HP03.
Ответить

Вернуться в «Периферия»