Дисплеи, датчики и прочие функциональные узлы, управляемые МК.
Ответить

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

Вт янв 25, 2011 22:11:25

Всем доброго времени!
Приобрел недавно этот датчик для своего проекта метеостанции. Подключаю на пару с ds1307, MCLK с датчика подключаю к ноге кварца 32кгц который на DS часах.
Значения констант из EEPROM читаются, а вот текущие значения давления по нулям... Может кто работал с сабжем? Есть какие-нибудь нюансы? Нужно ли городить программный генератор на 32 кгц?

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

Ср янв 26, 2011 10:35:47

А на DS1307 разве нет CLK выхода? Не логичнее будет подключиться к нему?

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

Ср янв 26, 2011 11:09:13

Fasterpast прав, надо тактирование брать со специального выхода (вывод 7), а не с кварца; если подключитесь непосредственно к кварцу, в лучшем случае расстроите частоту (увеличится ход), в худшем - генератор вообще не заведется. Осциллографом смотрели тактовую? При чтении АЦП адрес устройства поменять не забыли? На XCLR высокий уровень?

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

Ср янв 26, 2011 17:18:43

значит подключил 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 по нулям

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

Ср янв 26, 2011 22:27:21

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

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

Чт янв 27, 2011 00:29:40

поменял местами, результата все равно нет... на 7й ноге ДСки частотомер упорно показывает 1кгц, хотя инициализировал для 32кгц... могла частота из-за чего-то сбиться?

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

Чт янв 27, 2011 00:36:38

1 кГц никак не должно быть. Доступные значения 1Гц, 4096Гц, 8192Гц, 32768Гц, все. 32 кГц должно быть если Control Register = 0x13 или 0x93.

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

Чт янв 27, 2011 17:49:50

еще вопрос, а нужен ли в этом случае на SQW подтягивающий резистор, или напрямую ногу с датчика подключать?

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

Пт янв 28, 2011 22:47:34

можно генерировать на датчик те же ~32Кгц с шим контроллера?

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

Пн янв 31, 2011 22:35:30

DotZZ:
Есть подвижки? То-же присматриваюсь к этому датчику, но в связи с поднятой темой пока решил подождать :)

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

Ср фев 02, 2011 21:08:11

Да, все получилось!! Частоту подаю с ШИМа, могу выложить исходнички)

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

Ср фев 02, 2011 21:17:44

Исходники не обязательно :)
Все по datasheet?
То есть получив от датчика D1 и T1 по формуле из ДШ считаем давление?

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

Чт фев 03, 2011 01:58:46

Абсолютно верно) единственное, я для удобства умножал результат на 0.075 (мм.рт.ст), ну это уже кому что нужно

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

Вт мар 29, 2011 12:07:54

DotZZ писал(а):еще вопрос, а нужен ли в этом случае на SQW подтягивающий резистор, или напрямую ногу с датчика подключать?

Думаю что да. Я как то использовал этот вывод для синхронизации мк и без резистора неработало
DotZZ писал(а):Абсолютно верно) единственное, я для удобства умножал результат на 0.075 (мм.рт.ст), ну это уже кому что нужно

Это чтоб получить результат в милиметрах ртутного столба?
DotZZ писал(а):Да, все получилось!! Частоту подаю с ШИМа, могу выложить исходнички)

Хотелось бы поподробней узнать о функциях инициализации, чтения и управления. Есть ли мануал на русском что из себя представляет этот датчик, какие в нём регистры и как с ним работать?

Можно ли его подключить на аппаратный I2C паралельно ds1307 и какие при этом нюансы?

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

Вс май 15, 2011 22:53:44

А может кто-нибудь выложить исходники по этому датчику?

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

Вс май 15, 2011 23:12:53

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

Написано для HP03, но пойдет и для HP02: они отличаются только питанием и рабочим диапазоном температур.
Последний раз редактировалось md5sum Ср май 18, 2011 23:53:46, всего редактировалось 1 раз.

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

Пн май 16, 2011 17:45:02

md5sum писал(а):Написано для HP03, но пойдет и для HP02

СТОП !!!! Извиняюсь !!!!
Ни фига не подойдет! Сейчас открыл ДШ для 02 - ничего общего касательно вычислений и поправок.

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

Вт май 17, 2011 18:02:55

Народ, а сверял-ли кто показания 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 и его "сырые" данные и получил полное соответствие вычисленных величин. Наблюдал-ли кто что-то подобное, или мне не повезло с экземпляром сенсора?

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

Вт май 17, 2011 19:05:56

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

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

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

Как альтиметр проверял - 15 метров (5-й этаж) - 1 мм.рт.ст.
Если надо могу в hpa замерить....

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

Вт май 17, 2011 20:52:48

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

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