1. Уважаемые форумчане! Убедительная просьба, используйте наиболее подходящие темы для своих сообщений. Спасибо за понимание.
    Скрыть объявление

BreweryArduino с нуля.

Тема в разделе "Автоматика", создана пользователем Николай Дементьев, 23 сен 2016.

Поделиться этой страницей

  1. Николай Дементьев

    Николай Дементьев Участник

    Регистрация:
    01.09.2016
    160
    13
    Добрый день пивовары!
    Мой коллега занимается пивоварением и попросил меня собрать ему автоматику.
    Я посмотрел многие проекты но они не все удовлетворяли по функционалу ( помимо пива нужно "гнать" и другие напитки).
    По этому я решил сам написать программу (так-как только она требует изменения)
    На данном этапе почти закончена часть пивоварения, отдельное управление тэнами, настройка часов.
    В процессе настройка пид, управление насосом.
    В перспективе сохранение и чтение рецептов с карты памяти, настройка насоса.

    На данный момент есть следующие вопросы:
    1. Режим работы насоса при варки пива.
    2. Время отсчета засыпки хмеля : от начала кипения или от предыдущей засыпки.

    Ну и небольшое видео


    --- сообщения объединены, 23 сен 2016, дата первого сообщения: 23 сен 2016 ---


    Сижу рисую экран кипячения возник вопрос: Нужно-ли отображения температуры если мощностью тэнов управляем сами?
     

    Вложения:

  2. HBPro

    HBPro Admin Команда форума

    Регистрация:
    10.02.2012
    636
    158
    В оригинальном Braumeister была такая схема - 10 мин. работы, 2 мин. простой. В ArdBir сделали эти параметры настраиваемыми.
    От начала кипячения.
     
  3. Николай Дементьев

    Николай Дементьев Участник

    Регистрация:
    01.09.2016
    160
    13
    Такой режим работы насоса на всем этапе варки?
     
  4. HBPro

    HBPro Admin Команда форума

    Регистрация:
    10.02.2012
    636
    158
    На этапе затирания. При достижении 88С, опять же на оригинальном Braumeister, насос был отключен до конца варки.
     
  5. Николай Дементьев

    Николай Дементьев Участник

    Регистрация:
    01.09.2016
    160
    13
    Спасибо, значит буду делать, что бы пользователь сам решал как работать насосу.
    --- сообщения объединены, 23 сен 2016, дата первого сообщения: 23 сен 2016 ---
     
  6. HBPro

    HBPro Admin Команда форума

    Регистрация:
    10.02.2012
    636
    158
    Даже и не знаю. Наверно не помешает.
     
  7. Николай Дементьев

    Николай Дементьев Участник

    Регистрация:
    01.09.2016
    160
    13
    Просто опрос датчика температуры тормозит процесс ручной регулировки мощности тена..... :-(
     
  8. Ers

    Ers Admin Команда форума

    Регистрация:
    02.01.2012
    112
    14
    Имя:
    Иван
    не используй delay и не будет тормозить
     
  9. Николай Дементьев

    Николай Дементьев Участник

    Регистрация:
    01.09.2016
    160
    13
    Не использую....если только в самой библиотеке задержки стоят "DallasTemperature.h"
    --- сообщения объединены, 23 сен 2016, дата первого сообщения: 23 сен 2016 ---
    Думаю что задержка связана с процедурой поиска датчика на шине так как на прямую (адрес) не задается ..
     
  10. Ers

    Ers Admin Команда форума

    Регистрация:
    02.01.2012
    112
    14
    Имя:
    Иван
    в этой либе как раз по-умолчанию используется синхронный метод измерения,т.е. команда на измерение, потом ожидание с помощью delay, и затем считывание результатов.
    В примерах есть асинхронный метод измерения, почитай внимательнее.
     
  11. Николай Дементьев

    Николай Дементьев Участник

    Регистрация:
    01.09.2016
    160
    13
    Пойду "КУРИТЬ" примеры.... спасибо за содействие:)
    --- сообщения объединены, 27 сен 2016, дата первого сообщения: 23 сен 2016 ---
    Допили программу варки пива.... критика приветствуется :drink:
     
    • За За x 1
  12. Олег

    Олег Участник

    Регистрация:
    18.11.2013
    229
    6
    На каких элементах собираешь?
     
  13. Николай Дементьев

    Николай Дементьев Участник

    Регистрация:
    01.09.2016
    160
    13
    "Стандартный набор" :)
    мега 2560, экран TFT_320QVT_9341, часики Tiny RTC I2C,датчики температуры Ds18b20, твердотельное реле на 40А .
    Сегодня доделал настройку пид и управление тэном.
    Завтра выложу видео.
     
    • Класс Класс x 2
  14. Олег

    Олег Участник

    Регистрация:
    18.11.2013
    229
    6
    Скетч будешь выкладывать?
     
  15. Николай Дементьев

    Николай Дементьев Участник

    Регистрация:
    01.09.2016
    160
    13
    да буду.
    --- сообщения объединены, 29 сен 2016, дата первого сообщения: 29 сен 2016 ---
    Обещанное видео пи регулятор и управление тэном

    Как всегда критика приветствуется .

     
  16. HBPro

    HBPro Admin Команда форума

    Регистрация:
    10.02.2012
    636
    158
    Николай Дементьев, а где же дифференцирующий коэффициент? И зачем отдельно устанавливать температуру, до которой необходимо нагревать? Температурные паузы мы задаем в другом окне.
     
    • Оптимистично Оптимистично x 1
  17. Николай Дементьев

    Николай Дементьев Участник

    Регистрация:
    01.09.2016
    160
    13
    Это меню для подбора оптимальных параметров пи регулятор. По этому здесь и нужна установочная температура для опробывания
    У меня не ПИД а ПИ регулятор :
    Вот часть функции расчета ПИ
    Код:
    //расчет мощности по ПИ закону регулирования
    byte PIctl(float temp, int8_t ust)//возвращает необходимую мощность
    {
    
    /*#define kP 15//коэффициент пропорциональности
    #define p_min 0.0//минимум П составляющей - не < 0
    #define p_max 100.0//максимум П составляющей - не > 100
    #define kI 0.015//коэффициент интегрирования
    #define i_min -30.0//минимум И составляющей
    #define i_max 30.0//максимум И составляющей
    #define d_ctl 2.0//зона пропорциональности ust-d_ctl
    #define out_min 0//минимальный выходной %
    #define out_max 100//максимальный выходной %
    */
      ePid=(ust-temp);//ошибка регулирования
      //расчет p
      pPid=(temp<ust-d_ctl)?p_max:temp>ust)?p_min:kP*ePid);
      //расчет i
      iPid=(iPid<i_min)?i_min:iPid>i_max)?i_max:iPid+(kI*ePid);
      out=(pPid+iPid<out_min)?out_min:pPid+iPid>out_max)?out_max:pid+iPid;
      return out;
    }
    
     
  18. Олег

    Олег Участник

    Регистрация:
    18.11.2013
    229
    6
    Интересный проект -у меня для его всё есть.
     
  19. Николай Дементьев

    Николай Дементьев Участник

    Регистрация:
    01.09.2016
    160
    13
    Ну что же раз интересно, то прошу к нашему шалашу :drink:
    --- сообщения объединены, 29 сен 2016, дата первого сообщения: 29 сен 2016 ---
    вариант от 29.09.2016
    --- сообщения объединены, 29 сен 2016 ---
    У кого есть техническая возможность по тестируйте.
    --- сообщения объединены, 29 сен 2016 ---
    мега 2560, экран TFT_320QVT_9341, часики Tiny RTC I2C,датчики температуры Ds18b20
     

    Вложения:

  20. Олег

    Олег Участник

    Регистрация:
    18.11.2013
    229
    6
    Извини -сразу и не посмотрел какой у меня экран
    3.2 "TFT LCD Сенсорный Экран + TFT 3.2 Дюймов Щит Мега
    Видно он не подойдёт. Выписываю TFT_320QVT_9341
    --- сообщения объединены, 30 сен 2016, дата первого сообщения: 30 сен 2016 ---
    А если заменить UTFT myGLCD(ILI9341_16, 38, 39, 40, 41); на UTFT myGLCD(ITDB32S, 38,39,40,41);
    заработает?