. Датчик давления/высоты Pololu на LPS331AP
Датчик давления/высоты Pololu на LPS331AP

Датчик давления/высоты Pololu на LPS331AP

Этот датчик Pololu, созданный на базе микросхемы ST LPS331AP барометр, позволяет определить давление от 260 миллибар до 1260 миллибар (26 кПа до 126 кПа) с абсолютно точностью до ±2 миллибар (0,2 кПа) и среднеквадратичным значением шума в 0,02 миллибар (0,002 кПа) в высокоточном режиме. Это давление можно легко перевести в высоту. Плата поддерживает I²C и SPI интерфейсы. На плате установлен стабилизатор напряжения 3,3 В и преобразователи логического уровня от 2,5 до 5,5 В. Расстояние между выводами 2,54 мм делает плату простой в использовании со стандартными макетными и монтажными платами.

Описание

Эта компактная (10,2 мм х 22,9 мм) плата, созданная на основе микросхемы ST LPS331 по МЭМС-технологии является датчиком абсолютного давления или барометром; поэтому мы настоятельно рекомендуем, перед использованием этого продукта, ознакомиться со спецификацией LPS331AP (453k pdf). LPS331 - это великолепная интегральная схема, но маленький корпус делает её использование затруднительным, особенно для обучения и хобби. Она также работает от напряжения ниже 3,6 В, что затрудняет её подключение к микроконтроллерам работающим от 5 В. Эти проблемы решены в этой плате Pololu, путём добавления дополнительных электронных компонентов, в том числе 3,3 В стабилизатора напряжения и схемы смещения логического уровня, сохраняя при этом компактный размер устройства. На плате полностью установлены SMD компоненты и в том числе LPS331AP, как это показано на фотографии продукта.

У LPS331 есть много настраиваемых параметров: включая выбор разрешающей способности, выбор выходной скорости передачи данных и два программируемых внешних сигнала прерываний, а также встроенная функция температурной компенсации. Давление измеряется с точностью до ±2 миллибар (0,2 кПа), со среднеквадратичным значением шума в 0,02 миллибар (0,002 кПа) в высокоточном режиме. Данные о температуре и давлении доступны через цифровой интерфейс, который можно настроить для работы в I²C или SPI режиме. Они могут быть использованы для измерения высоты. (См. пример кода для библиотеки Arduino, в котором датчик применяется для измерения высоты).

Плата включает в себя стабилизатор с низким падением напряжения, обеспечивающий 3,3 В необходимые для LPS331, и позволяет подключать датчик к внешнему источнику питания 2,5 - 5,5 В. Выход стабилизатора доступен на VDD ножке, и может служить источником питания внешних устройств с током потребления до 150 мА. Плата также включает в себя схему, смещающую (подтягивающую) шины синхронизации и данных интерфейса I²C/SPI к напряжению логического уровня вывода VIN, что делает её простой для взаимодействия с 5 В устройствами, а 2,54 мм расстояние между штырьками упрощает использование ее со стандартными макетными и монтажными платами.

Для приложений требующих несколько интегрированных датчиков, подойдет инерциальный измерительный блок IMU Pololu AltIMU-10, который объединяет на одной печатной плате 3-осевые компас, акселерометр, гироскоп, барометр и обеспечивает десять независимых показаний, которые могут быть использованы для расчета абсолютной ориентации и высоты.

  • Рабочее напряжение: от 2,5 до 5,5 В
  • Потребляемый ток: 2 мА
  • Выходной формат (I²C/SPI): 24-битное значение давления (4096 LSB/мбар)
  • Диапазон чувствительности: 260-1260 мбар (26-126 кПа)
  • Размеры (без штырьевых разъёмов): 10 х 23 х 3 мм
  • Вес (без штырьевых разъёмов): 0,6 гр

Вилка штыревая прямая 1x9 шаг 2,54 мм и вилка штыревая угловая 1x9 шаг 2,54 мм. Вы можете припаять разъёмы прямо к плате и использовать со стандартными макетными и монтажными платами с расстоянием между выводами 2,54 мм, либо припаять провода прямо на плату для более компактной конструкции.

Использование

Независимо от используемого интерфейса, для подключения платы Pololu необходимо соединить вывод VIN (питание) с источником 2,5 - 5,5 В, и разъём GND (земля) с 0 В. (Кроме того, если вы используете плату с питанием в 3,3 В, вы можете оставить разъём VIN отключенным и обойти встроенный стабилизатор, подключив 3,3 В непосредственно к VDD).

Для использования в I²C режиме (работает по умолчанию), необходимо как минимум два логических соединения: SCL и SDA. Эти выводы подключены к встроенному преобразователю уровней, который делает их безопасными для использования при напряжении более 3,3 В; они должны быть подключены к I²C шине, работающие на том же логическом уровне, что и VIN. Остальные контакты не подключены на плате к преобразователю уровней и не являются 5 В-толерантными, но внешний 4-канальный двунаправленный логический преобразователь уровней Pololu может быть использован с этими выводами для достижения того же эффекта.

Для использования в SPI режиме, требуется четыре соединения: SPC, SDI, SDO, и CS. Они должны быть подключены к SPI шине, работающей на том же логическом уровне, что и VIN. Интерфейс SPI работает по 4-проводному каналу по умолчанию, с разделёнными выводами SDI и SDO. Но вывод SDO можно совместно использовать и для SDI, получив, таким образом, 3-проводной режим передачи данных.

На схеме продемонстрированы дополнительные компоненты платы, необходимые для упрощения использования LPS331. В их числе стабилизатор напряжения - он позволяет плате работать от питания 2,5 - 5,5 В и схема сдвига уровня, позволяющая I²C связываться на том же логическом уровне напряжения, что и VIN. Эта схема также доступна в виде загружаемого PDF: Схема Pololu LPS331 (156k pdf).

Коммуникация по I²C

При стандартном состоянии вывода CS (уровень VDD), данные об угловой скорости можно получить, настроив микросхему LPS331 на работу по I²C шине. Сдвиг уровня на I²C синхронизации (SCL) и линии передачи данных (SDA) позволяют I²C взаимодействовать с микроконтроллерами, работающими на таком же напряжении, как и VIN (2,5 - 5,5 В). Более полное описание I²C интерфейса для микросхемы LPS331 можно найти в спецификации LPS331AP (453k pdf), а также более подробную информацию о I²C в целом можно найти в спецификации NXP шины I²C (1MB pdf).

LPS331 имеет отдельный адрес ведомого на шине I²C. На плате контакт "адрес ведомого" SA0 этой микросхемы подтянут к VDD через резистор 4,7 кОм. Вы можете подать управляющий низкоуровневый сигнал на контакт SA0, чтобы изменить адрес ведомого. Это позволит подключить два однотипных датчика к одной шине I²C. В следующей таблице приведены адреса ведомых датчиков:

Датчик Адрес ведомого(по умолчанию) Адрес ведомого(SA0 управляющий низкий) Барометр 1011101b 1011100b

При тестировании платы, была достигнута передача с чипа на тактовых частотах до 400 кГц; датчик способен работать и на более высоких частотах, но соответствующие испытания проведены не были. Сами чипы и платы не отвечают некоторым требованиям для создания I²C - совместимых устройств, работающих в быстром режиме. Они пропускают 50 нс импульс на шинах синхронизации и передачи данных, а также требуют дополнительную подтяжку на эти выводы для достижения совместимых характеристик сигнала синхронизации.

Коммуникация по SPI

Для работы с микросхемой LPS331 в SPI режиме, разъём CS (соединяющийся с VDD через подтягивающий 4,7 кОм резистор) должен управляться низким уровнем перед SPI команды и возвращаться к высокому уровню после конца команды. Схема смещения логического уровня на выводах синхронизации SPI (SPC) и данных (SDI) доступны в SPI режиме с микроконтроллерами, работающими на таком же напряжении, как VIN (2,5 - 5,5 В).

По умолчанию включён 4-проводный режим передачи данных. Гироскоп передаёт данные по ведущему устройству SPI по выделенной выходной линии (SDO). Если SPI интерфейс настроен на использование 3-проводного режима, вывод SDI выступает в роли SDO и управляется микросхемой LPS331 при передаче данных ведущему устройству. Более детальное объяснение SPI интерфейса для микросхемы LPS331 можно найти в спецификации LPS331AP (453k pdf).

Пример кода

Написана основная библиотека для работы с Arduino - Библиотека LPS331 для Arduino, которая позволяет легко взаимодействовать датчику с Arduino. Библиотека позволяет легко настроить LPS331 и считать исходные данные датчика по I²C интерфейсу. А также предоставлена функция вычисления высоты на основе измеренного давления для тех, кто хочет использовать этот датчик в качестве высотомера.

Рекомендации

Спецификации предоставляют всю необходимую информацию для использования датчиков, но поиск необходимой информации может занять некоторое время. Вот некоторые советы по соединению и настройке LPS331, которые, помогут вам разобраться немного быстрее:

Файлы для скачивания: Спецификация LPS331AP (453k pdf) Техническое описание микросхемы ST LPS331AP - барометр.

Руководство по аппаратному и программному обеспечению для LPS331AP (663k pdf) Приложение AN4159 от ST с руководством по использованию аппаратного и программного обеспечения для LPS331AP.

Принципиальная схема датчика давления/высоты Pololu на LPS331AP (156k pdf) Печатаемая принципиальная схема датчика давления/высоты Pololu на LPS331AP.

Схема отверстий датчика давления/высоты Pololu на LPS331AP (20k dxf) Этот чертеж DXF показывает расположение всех отверстий платы.

Рекомендуемые ссылки: Библиотека LPS для Arduino Эта библиотека служит для взаимодействия Arduino с платой датчика давления/высоты Pololu на LPS331AP или LPS25H, а также с высотомером платы Pololu AltIMU-10. Эта библиотека позволяет легко настроить устройство и читать исходные данные, а также предоставили функцию вычисления высоты на основе измеренного давления для тех, кто хочет использовать этот датчик в качестве высотомера.

Датчик давления/высоты Pololu на LPS331AP в самолете Статья Яна Маласека об использовании датчика давления/высоты Pololu на LPS331AP в качестве высотомера в самолете.

📎📎📎📎📎📎📎📎📎📎