Прошу помощи по подключению датчика давления

Тема в разделе "Arduino & Shields", создана пользователем MAXKIT, 4 авг 2015.

  1. MAXKIT

    MAXKIT Нуб

    Имеется аналоговый датчик давления.
    Рабочие параметры: 0.5-4.5V. Давления 0-12 атм.

    Задача: выводить значения на экран LCD.

    Затрудняюсь с подсчётом переменной для вывода на экран.
    То что получилось у меня: Переменная давления = (Значения с входа-104)*0,0144
     
  2. DrProg

    DrProg Вечный нерд

    Зависит от датчика. Если изменение сигнала линейно, то 0,5 принять з 0, а 4,5 за 12 атм.
     
  3. vvr

    vvr Инженерище

    дайте хотя бы ссылку на датчик

    пока так - машина поломалась, как отремонтировать?
     
  4. MAXKIT

    MAXKIT Нуб

    Датчик вот такой

     
  5. vvr

    vvr Инженерище

    так и делайте
     
  6. vvr

    vvr Инженерище

    от этого примера и отталкивайтесь
    int val = analogRead(0);
    val = map(val, 0, 1023, 0, 255);
     
  7. MAXKIT

    MAXKIT Нуб

    Получается так?
    val = map(val, 102, 921, 0, 12);

    0.5 = 102.3
    4.5 v = 920.7
     
  8. vvr

    vvr Инженерище

    да, и теперь val выводите на дисплей
     
  9. MAXKIT

    MAXKIT Нуб

    я так полагаю что значения на дисплее будут от 0 до 12, как лучше сделать вывод давления с точностью 0.01?
     
  10. vvr

    vvr Инженерище

    надо заводить переменную float и организовывать свои вычисления
    придётся делать свой map для float
    Функция map() оперирует целыми числами
     
  11. andriano

    andriano Нерд

    Можно отмапить целое число - давление в сотых долях атмосферы.
     
  12. vvr

    vvr Инженерище

    "Математически функция map() может быть записана так:

    long map(long x, long in_min, long in_max, long out_min, long out_max)
    {
    return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
    }"

    на этой основе попробуйте себе под флот сварганить
     
  13. DrProg

    DrProg Вечный нерд

    Сильно сомневаюсь, что этот датчик выдаст значение с точностью до 0.01, помехи больше и на датчике и на вольтметре. Хотя можно эмулировать, если заказчик требует, рандомить все что менее единички. )
     
  14. vvr

    vvr Инженерище

    думаю 0.1 вполне достаточно