1. ВАЖНО!!! Прошел умный спамер-робот. После регистрации создает переписку с сообщением о зачислении на ваш счет средств и ссылкой для подробностей. Ни в коем случае не переходите по ссылке и необходимо "покунить" такую переписку. Отвечать также не нужно. Временно переводим на ручное одобрение пользователей, посмотрим за обстановкой
    Скрыть объявление
  2. Уважаемые форумчане! Убедительная просьба, используйте наиболее подходящие темы для своих сообщений. Спасибо за понимание.
    Скрыть объявление

BreweryArduino с нуля.

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

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

    Николай Дементьев Well-Known Member

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

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

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


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


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

    Вложения:

    • За За x 1
  2. Gryphon3

    Gryphon3 Новенький

    Регистрация:
    15.12.2016
    4
    1
    Кнопка сенсорная. Попробовал 2 паузы. Аналогичный эффект, если щелкнуть дифавтоматом или вставить в розетку насоса, на которое подано напряжение тестер. Если питание не подано, то все нормально
     
  3. Николай Дементьев

    Николай Дементьев Well-Known Member

    Регистрация:
    01.09.2016
    1.028
    167
    реле я так понял простое не твердотельное......наводка от насоса дает сработку.....кнопка с резистором?
    --- сообщения объединены, 6 июн 2017, дата первого сообщения: 6 июн 2017 ---
    Попробуйте вот с таким параметром 164 строка
    Код:
    attachInterrupt(5, Return, CHANGE); // 
     
  4. Gryphon3

    Gryphon3 Новенький

    Регистрация:
    15.12.2016
    4
    1
    Реле простое, твердотельное только заказал. Кнопка подключена по схеме с вашего сайта "с твердотельным реле на насос".
    Спасибо, попробую
    --- сообщения объединены, 9 июн 2017, дата первого сообщения: 6 июн 2017 ---
    Жаль, но не помогло. Буду ждать твердотельное на насос
     
  5. Николай Дементьев

    Николай Дементьев Well-Known Member

    Регистрация:
    01.09.2016
    1.028
    167
    Попробуйте на пин подключения кнопки подать минус через резистор 1-10 кОм.
    --- сообщения объединены, 9 июн 2017, дата первого сообщения: 9 июн 2017 ---
    Кнопка или провода от нее возможно проходят рядом с силовой частью.... из-за этого возможна наводка. Так же возможно нет диода (или неисправен) на управляющей катушке реле от которой идут наводки.
     
  6. serj_3000

    serj_3000 Участник

    Регистрация:
    24.09.2016
    49
    10
    Имя:
    Сергей
    С благославления Николая выкладываю доработанную мною скетч "BreweryArduino".
    Основные изменения
    Сигнал на засыпку хмеля выдается непрерывно до нажатия на экран.
    Подчищены все замеченные форумчанами на экране артефакты.
    И по мелочи
    вид главного экрана
    Цвета надписей кое где они плохо различимы были.

    Пробуйте пишите отзывы пожелания.
     

    Вложения:

    • Класс Класс x 1
    • Отличная идея Отличная идея x 1
  7. alekseysytov

    alekseysytov Новенький

    Регистрация:
    23.04.2017
    11
    1
    Имя:
    Алексей
    Загрузил, перестал работать тач.
     
  8. Николай Дементьев

    Николай Дементьев Well-Known Member

    Регистрация:
    01.09.2016
    1.028
    167
    перезагрузка по питанию.... возможно не один раз и все будет нормально... такое бывает после загрузки кода..
     
  9. alekseysytov

    alekseysytov Новенький

    Регистрация:
    23.04.2017
    11
    1
    Имя:
    Алексей
    Пара перезагрузок решила проблему.
     
  10. edyan777

    edyan777 Новенький

    Регистрация:
    08.02.2016
    20
    4
    Имя:
    Эдуард
    Скачал, пока не грузил...заранее огромное спасибо!
    По поводу работы PID-а...а нельзя отсечку сделать по достижению температуры к примеру 62 градуса, а не ждать перехода до 63 градусов? ТЭН работает тогда в режиме 30% и переход между паузами затягивается в пределах 5 минут,что критично....приходится на это время править время затирания
     
  11. Николай Дементьев

    Николай Дементьев Well-Known Member

    Регистрация:
    01.09.2016
    1.028
    167
    А какие у Вас настройки ПИ режима?
     
  12. serj_3000

    serj_3000 Участник

    Регистрация:
    24.09.2016
    49
    10
    Имя:
    Сергей
    Вряд ли удастся достичь более меньшего интервала система нагрева имеет свою инерцию тут либо медленно, но точно подходим к заданной температуре либо имеем перелет на 3 -5 градусов. Мне помогло немного сократить это время подхода хорошее утепление бака.
    Как вариант влить в момент подхода горячей воды, тогда нужная температура будет достигнута просто мгновенно.
     
  13. Николай Дементьев

    Николай Дементьев Well-Known Member

    Регистрация:
    01.09.2016
    1.028
    167
    serj_3000 не добавляли в настройках ПИ режима работу насоса?
    --- сообщения объединены, 12 июн 2017, дата первого сообщения: 12 июн 2017 ---
    Думаю, что это должно увеличить точность работы ПИ режима и скорость.
     
  14. Олег

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

    Регистрация:
    18.11.2013
    459
    17
    Николай у тебя ведь есть сайт закидывай туда все свои проекты!!!
    --- сообщения объединены, 12 июн 2017 ---
    На форуме уже не возможно что-то сказать если это мнение неугодно модераторам и админ
     
    • Не нравится Не нравится x 1
  15. serj_3000

    serj_3000 Участник

    Регистрация:
    24.09.2016
    49
    10
    Имя:
    Сергей
    Ничего такого меня текущая работа пид режима устраивает.
     
  16. lumen

    lumen Участник

    Регистрация:
    11.10.2016
    42
    0
    О ПИ. Для тех кому лень читать много букав, но страдает "перелётами", последний абзац. Науки ради позалипал в дисплей в течении долгого времени, пробуя самые разные настройки режима ПИ, и пришёл выводу, что не имеет значения какие данные вводить, ведь алгоритм работы ТЭНа всегда один и тот же: пока температура ниже заданной, ТЭН работает на полную, при достижении заданного градуса мощность ТЭНа снижается до 30%(всегда), затем при фиксировании следующего градуса ТЭН отключается, и так по кругу. (Чтоб было понятнее, далее по тексту, "следующий градус" обозначает следующий от заданного, т.е. задан 30, следующий-31 ) Добавим сюда инерцию и в итоге всегда "перелёт". Т.е. это даже в качестве имитации не годится. И дело не в том, что Николай что-то не так сделал, а в том, что система оперирует целыми градусами. Следовательно она не знает как близко подобралась к следующему градусу и продолжает греть одной и той же мощностью, и каждый раз следующий градус для неё "как снег на голову". Вся "магия" ПИ режима происходит внутри заданного градуса.Введение десятых долей градуса решило бы проблему. В качестве заданного градуса система принимала бы в качестве "эталона" заданный градус плюс 0.5. Скажем, задали 30, система стремиться к 30.5. Зафиксировала 30.1, начинает снижать мощность ТЭНа пропорционально до 0% при 30.5. Затем зафиксировала опускание до 30.4, включила ТЭН на пропорциональный процент и снова подтянула к эталону. При таком алгоритме (возможно!) пункт меню "настройки ПИ режима" окажется не атуальным и пользователю не придется вникать в эти дебри.
    В данный же момент, тем у кого случаются перелёты, могу посоветовать отключить ПИ режим, выставив второй параметр 0. В этом случае ТЭН будет полностью отключаться при фиксировании заданного градуса.

    P.S. Николаю низкий поклон за общественную деятельность. Надеюсь, моя отсебятина будет полезна)
     
  17. Николай Дементьев

    Николай Дементьев Well-Known Member

    Регистрация:
    01.09.2016
    1.028
    167
    Спасибо... :)
    Давайте посмотрим на ту часть кода где получаем температуру
    Код:
    void printTemperature() {
    
    
      if (millis() - lastTempRequest >= delayInMillis) // waited long enough??
      {
        temperature = sensors.getTempCByIndex(0);
        idle = 0;
        resolution++;
        if (resolution > 12) resolution = 9;
        sensors.setResolution(tempDeviceAddress, resolution);
        sensors.requestTemperatures();
        delayInMillis = 750 / (1 << (12 - resolution));
        lastTempRequest = millis();
      }
      idle++;
    
      TempC = temperature + 0.51;
    
      myGLCD.setColor(VGA_LIME);
      if (TempC < 100) {
        myGLCD.setColor(VGA_BLACK);
        myGLCD.fillRoundRect(273, 81, 305, 131);
      }
      myGLCD.setColor(VGA_LIME);
      myGLCD.printNumI(TempC, 209, 81);
    }
    
    Посмотрим внимательно на строку
    Код:
     TempC = temperature + 0.51; 
    Здесь я округляю десятые (в большую сторону) из чего получается следующий момент:
    Допустим заданная температура 40 гр датчик выдает 39.5 после округления выводим на экран 40, но по факту она 39.5 и для ПИ регулятора это команда на остановку нагрева при этом Мы имеем пол градуса запаса.
    Вообщем думаю, что мне уже пора от теории перейти к практике :) Первая задумка это сделать эксперимент с ПИ регулятором, чтобы до конца понять как это работает и как это лучше объяснить другим :)
     
  18. lumen

    lumen Участник

    Регистрация:
    11.10.2016
    42
    0
    Николай Дементьев, прошу прощения, в код не догадался посмотреть. Ну тогда всё еще проще. Система знает десятки, значит необходимо подправит алгоритм "внутри градуса". Ведь в данный момент 30% мощность ТЭНа стоит на протяжении всего градуса, по крайней мере, если верить отображению на экране. Пока на ум приходит следующая таблица: система зафиксировала 30.1-мощность упала до 30%, 30.2-20, 30.3-10, 30.4-0.
     
  19. Николай Дементьев

    Николай Дементьев Well-Known Member

    Регистрация:
    01.09.2016
    1.028
    167
    У разной плотности... разная теплопередача... на первом этапе(нагрев воды) так может и получится, но потом плотность увеличится (после варки солода) и этот номер я думаю не пройдет.
    --- сообщения объединены, 13 июн 2017, дата первого сообщения: 13 июн 2017 ---
    я вот как раз и думал, о том что бы можно было использовать разные параметры ПИ для разных этапов
     
  20. lumen

    lumen Участник

    Регистрация:
    11.10.2016
    42
    0
    Я думаю при изменении плотности, система в любом случае будет эффективно управлять ТЭНом, мы ведь не ко времени процесс нагрева привязываем. Ну а значения в таблице просто в качестве примера, естественно конкретные вводные только опытным путем можно вычислить.
     
  21. Николай Дементьев

    Николай Дементьев Well-Known Member

    Регистрация:
    01.09.2016
    1.028
    167
    С увеличением плотности соответственно и растет инерция системы... вот я к чему