
Add to Cart
Описание: Это простая доска для БМП085 высокоточного, маломощный датчик проламывания атмосферы барометрической. БМП085 предлагает измеряя ряд хПа 300 до 1100 с абсолютной точностью вниз до 0,03 хПа. Оно основал на пьезорезистивной технологии для робастности ЭМК, высокой точности и линеарностей так же, как долгосрочной стабильности. Этот датчик поддерживает поставку напряжения тока между 1,8 и 3.6ВДК. Он конструирован быть соединенным сразу с микроконтроллером через автобус к ² И
Эта дружественная к технологическ доска ломает вне все штыри БМП085 к 6 штырю 0,1" заголовок тангажа. Сетноые-аналогов и цифровые поставки (ВДДД и ВДДА) БМП085 связаны совместно и сломаны вне к одиночному штырю. Мы также клали 2 резистора тяги-вверх 4.7к налинии И2к.
Особенности:
Размеры:
Здесь проводник иллюстрирует как соединить Ардуйно с доской проламывания АДСЛ345. Следующее таблица описывая которые штыри на Ардуйно должны быть соединены с штырями на акселерометре:
Пин Ардуйно | Пин АДСЛ345 |
А4 | СДА |
А5 | СКЛ |
3В3 | ВКК |
Гнд |
ГНД |
Код теста:
#инклуде <Вире.х>
Адрес #дефине БМП085_АДДРЭСС 0кс77 //И2К БМП085
чарс конст неподписанный ОСС = 0; Установка //Оверсамплинг
Значения тарировки //
инт ак1;
инт ак2;
инт ак3;
неподписанный инт ак4;
неподписанный инт ак5;
неподписанный инт ак6;
инт б1;
инт б2;
мб инт;
инт мк;
мд инт;
//б5 высчитано в бмп085ГетТемпературе (...), эта переменная также использовано в бмп085ГетПрессуре (...)
//поэтому… температура (...) необходимо вызвать перед… давлением (...).
длинное б5;
короткая температура;
длинное давление;
пустая установка ()
{
Сериал.бегин (9600);
Вире.бегин ();
бмп085Калибратион ();
}
пустая петля ()
{
температура = бмп085ГетТемпературе (бмп085РеадУТ ());
давление = бмп085ГетПрессуре (бмп085РеадУП ());
Сериал.принт («температура: ");
Сериал.принт (температура, ДЭК);
Сериал.принтльн («*0.1 ДЕГ К»);
Сериал.принт («давление: ");
Сериал.принт (давление, ДЭК);
Сериал.принтльн («ПА»);
Сериал.принтльн ();
задержка (1000);
}
//хранит все значения тарировки бмп085 в глобальные переменные
Необходимы, что высчитывают значения тарировки //темп и давление
//эта функция должно быть вызвано в начале программы
пустые бмп085Калибратион ()
{
ак1 = бмп085РеадИнт (0ксАА);
ак2 = бмп085РеадИнт (0ксАК);
ак3 = бмп085РеадИнт (0ксАЭ);
ак4 = бмп085РеадИнт (0ксБ0);
ак5 = бмп085РеадИнт (0ксБ2);
ак6 = бмп085РеадИнт (0ксБ4);
б1 = бмп085РеадИнт (0ксБ6);
б2 = бмп085РеадИнт (0ксБ8);
мб = бмп085РеадИнт (0ксБА);
мк = бмп085РеадИнт (0ксБК);
мд = бмп085РеадИнт (0ксБЭ);
}
//высчитывает ут дали температурой, который.
Возвращенное значение //находится в блоках 0,1 ДЕГ К
короткое бмп085ГетТемпературе (неподписанное ут инт)
{
длинное кс1, кс2;
кс1 = (((длинное) ут - (длинное) ак6) * (длинное) ак5) >> 15;
кс2 = ((длинный) мк << 11)/(кс1 + мд);
б5 = кс1 + кс2;
возвратите ((б5 + 8)>>4);
}
//высчитывает давление, который дали вверх
значения тарировки //необходимо знать
//б5 также необходимо поэтому бмп085ГетТемпературе (...) необходимо вызвать сперва.
Возвращенное значение //будет давлением в блоках ПА.
длинное бмп085ГетПрессуре (неподписанные длинные поднимающие вверх)
{
длинное кс1, кс2, кс3, б3, б6, п;
неподписанное длинное б4, б7;
б6 = б5 - 4000;
//высчитывает Б3
кс1 = (б2 * (б6 * б6) >>12) >>11;
кс2 = (ак2 * б6) >>11;
кс3 = кс1 + кс2;
б3 = (((((длинное) ак1) *4 + кс3) <<ОСС) + 2)>>2;
//высчитывает Б4
кс1 = (ак3 * б6) >>13;
кс2 = (б1 * ((б6 * б6) >>12))>>16;
кс3 = ((кс1 + кс2) + 2)>>2;
б4 = (ак4 * (неподписанное длинное) (кс3 + 32768))>>15;
б7 = ((неподписанное длинное) (вверх по - б3) * (50000>>ОСС));
если (б7 < 0кс80000000), то
п = (б7<<1)/б4;
еще
п = (б7/б4) <<1;
кс1 = (п>>8) * (п>>8);
кс1 = (кс1 * 3038) >>16;
кс2 = (- 7357 * п) >>16;
п += (кс1 + кс2 + 3791) >>4;
возвращенный п;
}
//прочитало 1 байт от БМП085 на „адресе“
чарс бмп085Реад (неподписанный адрес чарса)
{
неподписанные данные по чарса;
Вире.бегинТрансмиссион (БМП085_АДДРЭСС);
Вире.сенд (адрес);
Вире.ендТрансмиссион ();
Вире.рекестФром (БМП085_АДДРЭСС, 1);
пока (! Вире.авайлабле ())
;
возвращенное Вире.ресеиве ();
}
//прочитало 2 байта от БМП085
Байт //первый будет от „адреса“
Байт //второй будет от „аддресс'+1
инт бмп085РеадИнт (неподписанный адрес чарса)
{
неподписанное мсб чарса, льсб;
Вире.бегинТрансмиссион (БМП085_АДДРЭСС);
Вире.сенд (адрес);
Вире.ендТрансмиссион ();
Вире.рекестФром (БМП085_АДДРЭСС, 2);
пока (Вире.авайлабле () <2)
;
мсб = Вире.ресеиве ();
льсб = Вире.ресеиве ();
возвратите (инт) мсб<<8 | льсб;
}
//прочитало невозмещенное значение температуры
неподписанный инт бмп085РеадУТ ()
{
неподписанное ут инт;
//пишет 0кс2Э в регистр 0ксФ4
//это спрашивает чтение температуры
Вире.бегинТрансмиссион (БМП085_АДДРЭСС);
Вире.сенд (0ксФ4);
Вире.сенд (0кс2Э);
Вире.ендТрансмиссион ();
Ожидание по крайней мере 4.5мс //
задержка (5);
//прочитало 2 байта от регистров 0ксФ6 и 0ксФ7
ут = бмп085РеадИнт (0ксФ6);
возвращенное ут;
}
//прочитало невозмещенное значение давления
неподписанные длинные бмп085РеадУП ()
{
неподписанное мсб чарса, льсб, ксльсб;
неподписанное длинное поднимающее вверх = 0;
//пишет 0кс34+ (ОСС<<6) в регистр 0ксФ4
Запрос //чтение давления с оверсамплинг установкой
Вире.бегинТрансмиссион (БМП085_АДДРЭСС);
Вире.сенд (0ксФ4);
Вире.сенд (0кс34 + (ОСС<<6));
Вире.ендТрансмиссион ();
Ожидание //для преобразования, иждивенца времени задержки на ОСС
задержка (2 + (3<<ОСС));
//прочитало регистр 0ксФ6 (МСБ), 0ксФ7 (ЛСБ), и 0ксФ8 (СЛСБ)
Вире.бегинТрансмиссион (БМП085_АДДРЭСС);
Вире.сенд (0ксФ6);
Вире.ендТрансмиссион ();
Вире.рекестФром (БМП085_АДДРЭСС, 3);
Ожидание //для данных, который нужно стать доступным
пока (Вире.авайлабле () < 3)
;
мсб = Вире.ресеиве ();
льсб = Вире.ресеиве ();
ксльсб = Вире.ресеиве ();
вверх по = (((мсб неподписанное длинного) << 16) | ((льсб неподписанное длинного) << 8) | (ксльсб неподписанное длинного)) >> (8-ОСС);
возвращение вверх;
}