Регулятор давления
- Войдите на сайт для отправки комментариев
Втр, 04/10/2016 - 20:39
Помогите разобраться! Давление показывает 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); // Время задержки
}
Выведите в Serial dig_out.
Вывел "103"
1. На 99 % уверен что ваши 5.0 не равны пяти Вольтам.....
2. Сдвиг нуля ( если ноль есть ноль и он стабилен) возможно компенсировать программно.
Как впрочем и показания полной шкалы.
3. Почитайте про теорию погрешностей.
В начале шкалы прибора погрешность может быть просто гигантской.
0.1 и 0.2 в начале шкалы- разница в 2 раза ( погешность 100 %)
0.1 в конце шкалы на 100 - это уже 0.1 %
1. верно не 5.0 в а 5.004.
2. как можно компенсировать программно?
Ребята. Помогите кто чем может. Уже весь мозг сломал!