Регулятор давления для скважены

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем Дмитрий76, 5 апр 2017.

  1. Дмитрий76

    Дмитрий76 Нерд

    Доброе время суток. Господа Помогите доделать скеч. Нужно создать меню для настройки нижнего и верхнего придела включения и выключения. Кто может подскажите куда копать дальше. Проект делаю в первый раз. Не пинайте сильно.
    Заранее спасибо.
    Код (C++):
    /* адрес eeprom
      Давление
      EEPROM 0 Минимальное значение давления
      EEPROM 1 Максимальное значение давления
    */


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

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

    int sensor = A1;                             // Пин датчика давления "аналоговый"
    int dig_out;
    int RelePin = 10;                            // Пин реле "насоса"
    int ledPin_Rele = 11;                        // Пин светодиода "вклюсение насоса" автоматический режим
    int ledPin_Error = 12;                       // Пин светодиода "авария насоса"
    int ledPin_Rele_manual = 13;                 // Пин светодиода "вклюсение насоса" ручной режим
    int buttonPin_manual = 2;                    // Пин кнопка "вклюсение насоса" ручной режим
    int buttonPin_SET = 3;                       // Пин кнопка "SET"
    int buttonPin_UP = 4;                        // Пин кнопка "UP"
    int buttonPin_DOWN = 5;                      // Пин кнопка "DOWN"
    int val = 0;

    //*****************************************
    void setup()
    {
      pinMode(RelePin, OUTPUT);                  // устанавливает режим работы - выход
      pinMode(ledPin_Rele, OUTPUT);              // устанавливает режим работы - выход
      pinMode(ledPin_Error, OUTPUT);             // устанавливает режим работы - выход
      pinMode(ledPin_Rele_manual, OUTPUT);       // устанавливает режим работы - выход
      pinMode(buttonPin_manual, INPUT);          // устанавливает режим работы - вход
      pinMode(buttonPin_SET, INPUT);             // устанавливает режим работы - вход
      pinMode(buttonPin_UP, INPUT);              // устанавливает режим работы - вход
      pinMode(buttonPin_DOWN, INPUT);            // устанавливает режим работы - вход
      pinMode(sensor, INPUT);                    // устанавливает режим работы - выход
      {
        lcd.init();                              // инициируем LCD дисплей
        lcd.backlight();                         // включаем подсветку LCD дисплея
        Serial.begin(9600);
      }
    }
    void loop()
    {
      float dig_out = analogRead(sensor = A1);    // Считываем входное напряжение
      dig_out = dig_out * 5.0 / 1024.0;           // Преобразуем значение
      dig_out = 1.111 * dig_out - 0.555;

      if (dig_out < 0 )
    {
        ('-', false);
        dig_out *= 0;

      }
          val = digitalRead(buttonPin_manual);       // нажата кнопка "вклюсение насоса" ручной режим
          digitalWrite(RelePin, val);                // включает реле
          digitalWrite(ledPin_Rele_manual, val);     // включаем светодиод

          //******************************************
          Serial.println(dig_out);
          lcd.setCursor(1, 0);
          lcd.print(L"РЕЛЕ ДАВЛЕНИЯ");            // Выводим надпись
          lcd.setCursor(0, 2);
          lcd.print("MPa");                            // Выводим надпись
          lcd.setCursor(8, 2);
          lcd.print("MPa");                            // Выводим надпись
          lcd.setCursor(16, 2);
          lcd.print("MPa");                            // Выводим надпись
          lcd.setCursor(8, 3);
          lcd.print(dig_out);                          // Выводим давление

          delay(500);                                  // Время задержки
        }
     
  2. dmitron1036

    dmitron1036 Гик

    На первый взгляд отличные проект. Можно размещать в разделе "смотрите что я сделал".
     
  3. MXXX

    MXXX Гик

    Я сейчас готовлю к мелкосерийному производству блок управления котельной. Среди функций есть и управление скважиной. Включение и аварийное отключение насоса при осушении работает через датчик протока воды. Его же показания используются для оценки статистики потребления воды, дебет скважины и.т.д. Рекомендую использовать такую же схему. Самый простой монтаж, без необходимости лезть в скважину с установкой датчиков давления/уровня.