Цифровой манометр на MS5803-xxBA на любой вкус

Тема в разделе "Глядите, что я сделал", создана пользователем issaom, 21 дек 2019.

Метки:
  1. issaom

    issaom Гуру

    Нашел я подходящий датчик для глубиномера, для своей подводной лодки. Серия MS5803-xxBA является водонепроницаемыми датчиками для измерения давления
    MS5803-01BA
    · Модуль высокого разрешения, 10см
    · Рабочий диапазон: от 10 до 1300 мбар, от -40 до +85 ° C
    MS5803-02BA
    · Модуль высокого разрешения, 20см
    · Рабочий диапазон: от 300 до 1100 мбар, от -40 до +85 ° C
    · Расширенный диапазон давления: от 10 до 2000 мбар
    MS5803-05BA
    · Модуль высокого разрешения, 30см
    · Рабочий диапазон: от 0 до 5 бар, от -40 до +85 ° C
    MS5803-07BA
    · Отличная точность как для высотомеров, так и для погружений до глубины 70 метров
    · Рабочий диапазон: от 0 до 7 бар, от -20 до +85 ° C
    · Модуль высокого разрешения, 0,4 м воздуха / 1 мм воды
    MS5803 14BA
    · Модуль высокого разрешения, 0,2 мбар
    · Рабочий диапазон: от 0 до 14 бар, от -40 до +85 ° C
    · Разрешение по глубине 1см
    MS5803-30BA
    · Модуль высокого разрешения, 0,5 мбар
    · Рабочий диапазон: от 0 до 30 бар, от -40 до +85 ° C

    Я купил в Китае MS5803-05BA
    Подключил по этой схеме:
    MS5803-xxBA - копия - копия.jpg
    Припаял 4 провода МТГФ 0х0.07

    Проводки.jpg
    С другой стороны надел колпачок от иглы капельницы...

    Ваккуметр:

    ваккуметр.jpg
    Манометр до +4 атмосфер
    манометр.jpg
    Измеритель уровня воды (максимальная высота бочки 40 метров) (уверенное разрешение 1см)
    измеритель уровня воды.jpg
    Библиотеку брал тут
    Код для Ардуино:

    Код (C++):
    // библиотека для работы с дисплеем
    #include <TroykaTextLCD.h>
    // библиотека для работы с I2C не подключаем (входит в состав дисплея от Амперки)
    //#include <Wire.h>
    // библиотека для работы с датчиком давления
    #include <MS5803_05.h>
    // создаем объект для работы с дисплеем
    TroykaTextLCD lcd;
    // создаем объект для работы с датчиком давления
    MS_5803 sensor = MS_5803(512);
    // показания давления с датчика
    float mBAR = 0;
    // переменная для расчета относительного давления
    float deltamBAR = 0;
    // атмосфера техническая
    float atT = 0;
    // сантиметры воды
    float cmH2O = 0;

    void setup() {
      // устанавливаем количество столбцов и строк экрана
      lcd.begin(16, 2);
      // устанавливаем контрастность в диапазоне от 0 до 63
      lcd.setContrast(63);
      // Инициализируем MS5803 sensor (false)-отключаем вывод отдладочной информации в терминал
      sensor.initializeMS_5803(false);
      delay(1000);
      // Кнопка установки нуля
      pinMode(2, INPUT_PULLUP);
      // Отладочный встроеный светодиод
      pinMode(13, OUTPUT);
    }

    void loop() {
      // обновляем значения показаний датчика
      sensor.readSensor();
      lcd.setCursor(0, 0);
      //получаем значеине давления с датчика
      mBAR = sensor.pressure();
      lcd.print(mBAR);
      lcd.print("mb ");
      lcd.print(sensor.temperature());
      lcd.print("C");
     
      // нажата кнопка для отображения относительного давления
      if (!digitalRead(2)) {  
        digitalWrite(13, !digitalRead(13)); // переключаем светодиод
        deltamBAR = mBAR;                   // запоминаяем текущее значение давления  
      }

      if (!digitalRead(13)) {
      // расчитываем показания абсолютного давления
      atT = mBAR * 0.001019716212978;
      cmH2O = mBAR * 1.019744288922;
      } else {
      // расчитываем значение относительного давления
      atT = (mBAR - deltamBAR) * 0.001019716212978;
      cmH2O = (mBAR - deltamBAR) * 1.019744288922;
      }
     
      // отображаем на экране значения в технических атмосферах и см воды
      lcd.setCursor(0, 1);
      lcd.print(atT,3);
      lcd.print("at ");
      lcd.print(cmH2O,0);
      lcd.print("cm");
      delay(500);
      lcd.clear();
    }
    з.ы. Обвес датчика выполнен в формате тройка-модуля и совместим с Амперковскими железками )))

    Кому будет интересно - есть видео с его тестами )))