Регулятор давления

sir_kimas
Offline
Зарегистрирован: 01.08.2016

Помогите разобраться! Давление показывает 0.09 вместо 0.00 что не так делаю?

// Подключаем библиотеки:
#include <Wire.h>                            // подключаем библиотеку для работы с шиной I2C
#include <LiquidCrystal_I2C.h>               // подключаем библиотеку для работы с LCD дисплеем

LiquidCrystal_I2C lcd(0x3F, 20, 4);          // объявляем  переменную для работы с LCD дисплеем

int sensor = A1;
int dig_out;
//*****************************************
float volt = 0.0;
float vin = 0.0;
float x = 1.111;
float y = 0.555;
//*****************************************
byte currentLight = 0;                       //Переменная включения подсветки LCD

void setup()
{
  pinMode(sensor, INPUT);                    // Определяем вход
  lcd.init();                                // инициируем LCD дисплей
  lcd.backlight();                           // включаем подсветку LCD дисплея
}
void loop()
{
  dig_out = analogRead(sensor);               // Считываем входное напряжение
  volt = dig_out * (5.0 / 1024.0);            // Преобразуем значение

//******************************************
  vin = volt / (4.5 * x + 5 * y - 2.5); //*  Преобразуем значение в давление
//*****************************************
 
  lcd.setCursor(1, 0);
  lcd.print("Pressure regulator");              // Выводим надпись
  lcd.setCursor(0, 2);
  lcd.print(vin);                             // Выводим давление
  lcd.setCursor(9, 2);
  lcd.print("mPa");                           // Выводим надпись
  lcd.setCursor(0, 3);
  lcd.print(volt);                            // Выводим напряжение
  lcd.setCursor(9, 3);
  lcd.print("Volt");                          // Выводим надпись
  delay(1000);                                // Время задержки
  
}

 

toxikaciya
Offline
Зарегистрирован: 11.04.2016

Выведите в Serial dig_out.

sir_kimas
Offline
Зарегистрирован: 01.08.2016

Вывел "103"

 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

1. На 99 % уверен что ваши 5.0 не равны пяти Вольтам.....
2. Сдвиг нуля ( если ноль есть ноль и он стабилен) возможно компенсировать программно.
    Как  впрочем и показания полной шкалы.
3. Почитайте  про теорию погрешностей.
   В начале шкалы прибора погрешность может быть просто гигантской.
   0.1 и 0.2 в начале шкалы- разница в 2 раза ( погешность 100 %)
   0.1 в конце шкалы на 100 - это уже  0.1 %
 

sir_kimas
Offline
Зарегистрирован: 01.08.2016

1. верно не 5.0 в а 5.004.

2. как можно компенсировать программно?

sir_kimas
Offline
Зарегистрирован: 01.08.2016

Ребята. Помогите кто чем может. Уже весь мозг сломал!