Регулятор давления
- Войдите на сайт для отправки комментариев
Втр, 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. как можно компенсировать программно?
Ребята. Помогите кто чем может. Уже весь мозг сломал!