Страница 1 из 5
-
Все мои доработки относятся к версии 2.6.70b10.
Мод 1: Корректировка хода часов (в железе не пробовал, но мозг подсказывает, что работать должно).
В ArdBir вычисление времени основано на подсчете импульсов тактового генератора, работающего на частоте 16МГц. Т.е. за 1 секунду принимается 16 000 000 импульсов. Но в связи с неточностью заводского изготовления кварцевого резонатора, температуры и ряда иных факторов реальная частота может отличаться от заявленной. В таком случае вычисленное время будет отличаться от реального. Заметная погрешность при варке приведет к нарушению рецептуры. Я предлагаю простой метод скорректировать ход часов.
Вычисляем погрешность. Для этого создаем любую ситуацию с отсчетом времени (например, при достижении температуры в ручном режиме или отсчет времени при отложенном старте). Ждем пока на дисплее пройдет допустим Т1=5мин.=5*60с=300с. Параллельно засекаем сколько секунд это заняло в реальности. Допустим блок торопится и 1 его минута равна 55с в реальности. Получаем величину Т2=5*55с=275с. Вычисляем коэффициент К=1000*Т1/Т2=1000*300/275=1091.
В файле ArdBir.ino находим в процедуре void Timing() следующую строкуif ((millis()-start)>1000){
Заменяем 1000 на наш вычисленный коэффициент К. Получаем
if ((millis()-start)>1091){
Это притормозит ход часов в блоке, т.к. за 1с теперь будет приниматься большее количествово импульсов.
-
Да, время действительно не соответствует действительности, но это не так уж и важно, 1-2 минуты на паузу погоды не сделают.
Отключить ПИД при нагреве до кипения, вот этот бы надо сделать. -
Я в первую очередь электроник, потому такое положение дел меня не устроило) а еще пока блок сообщает о необходимости вноса хмеля, то отсчет времени замирает на 2 секунды! Безобразие какое!
— сообщения объединены, 12 окт 2015, дата первого сообщения: 9 окт 2015 —
Мод 2. Звук при нажатии кнопок.
Для сработки разных функций кнопку необходимо удерживать в нажатом состоянии определенное время, которое длится то совсем ничего, то 0.3с, то секунду. Мне это доставляло неудобство, т.к. были случаи, когда отпускал раньше положенного и приходилось нажимать заново. Поэтому первым делом я добавил звуковой сигнал, который раздается по истечении времени нажатия. После него можно уверенно отпускать кнопку.
В файле Funzioni.h в функции byte btn_Press() добавляем одну строку
byte btn_Press (byte Button_press, int msTime){ if (digitalRead(Button_press)==0){ delay (msTime); if (digitalRead(Button_press)==0){ Buzzer(1,50); //наша строка для озвучки нажатий
Евгений_Ш и alexgo нравится это.
-
Есть модуль реального времени DS1302. Подскажите как подключить (скетч, библиотека, пины) к мега 2560 с прошивкой ArdBir
-
а разве в ардбир в настройках это не отпключается? PID pipe passive
-
Этот пункт означает другое. Он определяет работаеть ли тэну на поддержание температуры при вынимании засыпи. PID Pipe в переводе «пид труба», то есть пид и бункер. Разработчики долго ломали голову как им обозвать этот пункт и уложиться в лимит символов)
— сообщения объединены, 19 окт 2015, дата первого сообщения: 19 окт 2015 —
Про подключение и библиотеки с примерами думаю в гугле полно информации. А вот для вживления всего этого дела в ардбир необходимо ковырять функцию void Timig(). Там есть условие в начале if ((millis()-start)>1000){
Оно означает, что если последней секунды прошло более 1000мс, то увеличиваем счетчик времени на 1. Нужно придумать как это сделать с ds1302) -
Согласен про безобразие, я вообще пришел к выводу убрать все дилеи и сделать задержку (в своем скетче) на основе оператора сравнения (по времени). Т.е. конечное время задается грубо говоря в основной программе, а millis() присваиваются уже в функции которая вызывается из основной.. там же идет сравнение. Попробуйте то же на ArdBir.
-
это не устранит проблему, так как millis() тоже привязана к частоте. т.е. ошибка из-за несовершенства аппаратной части
-
Хе-хе ))) тогда нужно ставить инет шилд и синхронизацию с мировым временем )
-
Ссылки могут видеть только зарегистрированные пользователи. Зарегистрируйтесь или авторизуйтесь для просмотра ссылок! )))
— сообщения объединены, 20 окт 2015, дата первого сообщения: 20 окт 2015 —
Мод 3. Включение тэн после MashOut на 100% до достижения температуры варки. После чего запускается режим pwm. Это позволяет максимально быстро перейти в стадию непосредственно варки.
В файле ArdBir.ino находим в процедуре void stage_loop () следующий кусок кода
if ((x-1)==8){ if (ScaleTemp==0)Set(stageTemp,110,EEPROM.read(17),0.25,Timer,Verso); else Set(stageTemp,230,EEPROM.read(18),0.25,Timer,Verso); NoBoil(); tempBoilReached=false; }else{ Set(stageTemp, Max, Min, 0.25, Timer, Verso); } Stage((x-1),stageTemp,Temp_Now); if (pumpRest==false)PID_HEAT(true); } } if (Temp_Now >= stageTemp){
И заменяем его этим
if ((x-1)==8){ if (ScaleTemp==0)Set(stageTemp,110,EEPROM.read(17),0.25,Timer,Verso); else Set(stageTemp,230,EEPROM.read(18),0.25,Timer,Verso); NoBoil(); tempBoilReached=false; }else{ Set(stageTemp, Max, Min, 0.25, Timer, Verso); } Stage((x-1),stageTemp,Temp_Now); //доработка варки. если температура меньше Тварки, то врубаем тэн на 100% //13102015 if ((x-1)!=8){ if (pumpRest==false)PID_HEAT(true); }else{ if (pumpRest==false){ Output = 100; PID_HEAT(false); } } } } if (Temp_Now >= stageTemp){
Тестируем. Будут проблемы – отписываемся.
Мод 4. А также 15-ю строками выше находим эту
if ((x-1)==8 && tempBoilReached && Temp_Now >= boilStageTemp) { //if temp reached during boil
И заменяем ее на это
//if ((x-1)==8 && tempBoilReached && Temp_Now >= boilStageTemp) { //if temp reached during boil if ((x-1)==8 && tempBoilReached && Temp_Now >= stageTemp) { // варка определяется не только Т в настройках, но и значением Т в режиме варки (например, мы увеличили это значение кнопкой Вверх)
В результате алгоритм работы получается более логичный в случае изменения при варке уставки температуры SP.
-
Сейчас пытаюсь довести алгоритм своего скетча, подскажи, в вашей прошивке время отсчета паузы начинается после доведения температуры до t начала паузы?
-
Прошивка не моя, это atdbir. Отсчет времени начинается при достижении температуры setpoint
-
я вот всё думаю а нужна такая точность до 0,25 градуса?что если сделать чтоб считало только целые градусы ? будет ли быстрее выход на паузу ?
-
Быстрее не будет. Для пид наоборот 0.25 лучше. Т.к. он учитывает динамику изменения температуры, а изменения на 0.25 происходят чаще, чем на 1. Хотя за счет инерционности ситемы возможно разницы большой не будет заметно. Но имхо заколебешься код править)
-
а если просто в начале скетча где инициализация датчика поправить значения ну чтоб четвертинки не читал,показал бы участок кода тока я сейчас на работе
-
Ну к примеру у меня разница на 30 литров с моим 3кв теном — перегрев на 1 градус без пид. А вообще, ПИД — это всегда хорошо. Я бы тоже его применил, но думаю в дальнейшем сделать фазовое, если получится.. хотя меня и так устраивает. )
-
Пид фазовому не мешает. Первый расчитывает %мощности, а второй реализует
— сообщения объединены, 22 окт 2015, дата первого сообщения: 22 окт 2015 —
Вариант, но на экране везде тогда будут лишние нули после запятой. Шаг калибровки менять придется. Можно просто округлять резуллтат измерения, чтобы не вдаваться в команды датчика, меняющие битность
-
А я сделал у себя так. Если параметры Kp Ki Kd windowStartTime равны нулю то пид управление отключается и нагрев идет по упрощенному алгоритму…
void PID_HEAT (int temperatura){ Input = t_zatora; Setpoint = temperatura; if ((st[0]==0 && st[1]==0 && st[2]==0) || st[3]==0) { if (Input<Setpoint) digitalWrite(pin_relay,HIGH); else digitalWrite(pin_relay,LOW); } else { if((Setpoint - Input)>5){ digitalWrite(pin_relay,HIGH); if ((Setpoint - Input)<6) { myPID.Compute(); } } else{ myPID.Compute(); unsigned long now = millis(); if(now - windowStartTime>st[3]) { //time to shift the Relay Window windowStartTime += st[3]; } if((Output*(st[3]/100)) > now - windowStartTime) digitalWrite(pin_relay,HIGH); else digitalWrite(pin_relay,LOW); } } }
-
А как-то можно убрать минимальную продолжительность паузы в 1 минуту?
-
Можно, но с какой целью? Если пауза не нужна, то ее можно просто пропустить
Страница 1 из 5
Открытая передняя панель Ardbir
Домашнее пивоварение можно обобщить в хобби «Сделай пиво дома» и наверняка это распространенная страсть по всему миру, включая Италию, где я живу. Домашние пивовары — это, в основном, мелкие производители крафтового пива и, вообще говоря, люди, увлеченные не только едой и напитками, но и любителями DIY, которые любят эксперименты, создание рецептов, преобразование материалов в ряд, контроль процесса и все типичное отношение производителей.
Я не знаю, является ли это процессом изготовления пива, это, как правило, поэтапный процесс при поддержке конкретной технологии или типичного мышления домашнего пивовара, но на самом деле почти все домашние пивовары очень гордятся созданием своего собственные инструменты и оборудование. В своем долгом домашнем пивоварении я обнаружил, что одной из общих страстей в сообществе является самостоятельное строительство и изготовление оборудования, необходимого для производства пива. На многих форумах, блогах или журналах, посвященных хобби, почти всегда есть раздел, посвященный оборудованию для DIY.
В Интернете вы можете найти планы практически для любого возможного устройства, необходимого для автоматизации и контроля процесса изготовления пива — в некоторых случаях они пытаются имитировать и масштабировать профессиональное оборудование, но иногда даже более продвинутые и креативные!
Я определенно являюсь частью этого сообщества, специализирующегося на домашнем пивоварении, и иногда я спрашиваю себя, получаю ли я больше удовольствия от строительства нового пивного гаджета или от производства пива… или даже от питья пива!
После многих разных экспериментов в прошлом с разными технологиями я наткнулся на Arduino, и, по крайней мере, мне кажется,го ингредиент для приготовления пива — вместе с водой, ячменным солодом, хмелем и дрожжами. Брак Ардуино с пивоварением идеален… возможно, потому что я живу в Ивреа, недалеко от Ардуино.
Arduino Brewing
Сначала я попытался перенести все свои базовые системы, основанные на стандартной стандартной технологии, такой как ПИД-терморегулятор и ШИМ-контроллер, в экосистему Arduino, чтобы я мог начать другие, более продвинутые, проекты. Во время одного из этих первоначальных проектов я встретил другого итальянского парня, который разделял страсть к пиву, те же идеи и любовь к Arduino. Все было взято из моего поста в итальянском блоге … это стимулировало людей улучшать и развивать мою первоначальную идею пивоваренной системы «все в одном» и из другого аналогичного проекта на Arduino в Австралии от Стивена Матисона.
Благодаря огромному и фундаментальному вкладу Сальваторе Петроне и Масимо Неви, я очень горд представить Open Ardbir. Это система управления, позволяющая полностью автоматизировать процесс производства пива с помощью системы заваривания в одном сосуде (RIMS).
Ядром системы является Arduino Uno, и был разработан экран для подключения датчика температуры, реле SSR для нагревательного элемента, реле насоса и зуммера, а также ЖК-дисплея и 4 кнопок для взаимодействия и программирование.
Открытый щит ArdBir
Вы можете использовать его вручную, как ПИД-регулятор, или в полностью автоматизированном процессе, в этом случае, как только пользователь установит параметры рецепта и запустит процесс, они будут следовать пошаговым инструкциям от начальной настройки до затирания, варки и добавления хмеля. , Каждый шаг и операция четко выделяются на дисплее и корыто звуки
Каждый параметр может быть настроен в меню конфигурации системы, и рецепт может быть сохранен для дальнейшего использования. Домашний пивовар может использовать Open Ardbir в своих собственных настройках, и существует множество различных аппаратных реализаций вокруг контроллера, поскольку интеграция довольно проста (PUMP / датчик температуры и нагревательный элемент).
Открыть ArdBir в сборе
Весь проект с открытым исходным кодом, и все файлы и информацию можно найти на GitHub и на нашей странице facebook. Получите отличный «автоматический» напиток с помощью Open Ardbir.
Пиво — напиток, который широко известен почти во всех культурах мира, поэтому неудивительно, что есть проекты, основной целью которых является создание пива быстро или домашним способом. Здесь выделяется проект Open ArdBir.
Open ArdBir — это проект, который на основе платы Arduino контролирует весь производственный процесс от хранения до мацерации, заканчивая дегустацией. Все фазы контролируются платой Arduino, точнее говоря, платой PCB, основанной на дизайне Arduino, но включающей светодиодный интерфейс для управления процессом из самого Open ArdBir.
Кроме того, в этой машине есть несколько датчиков и подключенная схема, что означает, что нам не нужно ничего делать для создания собственного пива, просто введите ингредиенты а об остальном позаботится Open ArdBir со своей программой. Следовательно, интерфейс на основе Arduino очень важен. Таким образом, через этот интерфейс мы не только узнаем температуру мацерации, но и можем ее изменить, поскольку устройство также имеет вентиляторы и хладагенты, которые позволят нам изменять температуру по своему вкусу или потребностям.
Кроме того, самое лучшее, по крайней мере для многих из вас, кто читает нас, — это то, что Open ArdBir — совершенно бесплатный проект что мы можем построить сами и что мы даже можем купить специальную печатную плату, которая так важна для проекта. Но мы также можем построить свою собственную печатную плату, если захотим. Для тех из вас, кто хочет узнать больше, в ссылку У вас есть вся документация по проекту (включая программы), и для тех, кто хочет узнать больше или купить печатную плату проекта, в Су Facebook страницу вы найдете остальную информацию. Лично я считаю, что это отличный проект, хотя он не позволит нам производить пиво в больших количествах, жаль. Верно?
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.
Вы можете быть заинтересованы
Представляем Вашему вниманию блок управления пивоварней мощностью до 3.5 КВт. Основа — ArdBir.
Автоматика для пивоварни представляет из себя блок с поддержкой русского языка, возможностью сохранения рецептов, позволяющий производить затирание и кипячение сусла в автоматическом режиме (затирание по паузам, добавление хмеля в заданные интервалы, кипячение по таймеру, звуковая сигнализация).
Характеристики автоматики:
- Русский язык;
- Габаритные размеры (Ш x В x Г) с радиатором / без радиатора: 170 x 120 x 80 / 170 x 120 x 107
- Знакосинтезирующий дисплей 20×4 символов;
- Управление производится 4 клавишами;
- Два реле для раздельного управления ТЭН и насосами;
- Звуковая сигнализация;
- Термодатчик для точного контроля автоматикой температуры внутри пивоварни (без прокладки и гайки);
- Заземление автоматики, котла и ТЭНа выведено на вилку питания;
- Гарантия 6 месяцев.
Основные функции:
- Установка до 8 температурных пауз;
- Установка до 10 закладок хмеля и звуковая сигнализация об этом;
- Установка времени кипячения;
- PID регулятор, позволяющий поставить этот блок на любое оборудование, будь то пивоварня или самогонный аппарат;
- Точность регулировки 0.1C;
- Сохранение рецептов;
- Так же много различных настроек, подбираемых под конкретное оборудование.
- Инструкцию по пользованию блоком автоматики можно скачать тут!!!
Основные параметры установок меню: Инструкция к пивоварне Бавария, Инструкция в Bavaria, Инструкция к ArdBir
Настройки:
МЕНЮ УСТАНОВОК PID — PWM:
Use = Electric / Gas
kP = -100 +100
kI = -100 +155
kD = -100 +100
SampleTime = 1500 / 1750 / 2000 / 2250 / 2500 / 2750 / 3000 / 3250 / 3500
WindowSet m = 2000 / 2250 / 2500 / 2750 / 3000 / 3250 / 3500 / 3750 / 4000 / 4250 / 5000 / 5250 / 5500 / 5750 / 6000 / 6250 / 6500 / 6750 / 7000 / 7250 / 7500
Heat in Boil= 0-100%
Calibration = -5.00 +5.00
Системные параметры:
Set Segrees = C / F
Sensor = Внутр / Внешн
Temp Boil = 90 — 105C
Pump Cycle = 5-15′
Pump Rest = 0-5′
Pmp Pre Mash = Off / On
Pmp on Mash = Off / On
Pmp MashOut = Off / On
Pmp on Boil = Off / On
PIP Pipe = Active / Passive
Skip Add = No / Yes
Skip Remove = No / Yes
Skip Iodine = No / Yes
IodineTime = Off — 00:01:00 / 00:02:00 / … / 1:30:00
Whirlpool = Off / Cold / Hot
Уст-ки авто процесса:
Mash In = 20.00 / 20.25 / … / 75.00 C
Phytase = 25.00 — 55.00
Phytase = 1′-140′
Glucanase = 35.00 — 50.00 (Можно пропустить нажав Далее, либо выставить время паузы 1′-140′)
Protease = 45.00 — 60.00 (Можно пропустить нажав Далее, либо выставить время паузы 1′-140′)
bAmylase = 50.00 — 70.00 (Можно пропустить нажав Далее, либо выставить время паузы 1′-140′)
aAmylase1 = 60.00-76.00 (Можно пропустить нажав Далее, либо выставить время паузы 1′-140′)
aAmylase2 = 60.00-76.00 (Нельзя пропустить)
aAmylase2 = 1′-140′
Mash Out = 75.00 — 80.00
Mash Out = 1′-140′
Колл. хмеля =0 — 10
Варка = 30-180′
Хмель X = время варки
Хмель X-1 = Время варки — 1′
Хмель X-2 = Время варки — 2′
Работа с рецептами:
Загрузить, Сохранить рецепт.