Перейти к содержимому

Добро пожаловать в сообщество любителей домашней колбасы, сыра, пива и других крафтовых продуктов "ЕмКолбаски"
Зарегистрируйтесь сейчас, чтобы получить доступ ко всем функциям нашего портала. После регистрации и входа в систему Вы сможете создавать темы, отвечать на сообщения в существующих темах, изменять репутацию другим пользователям, размещать фотографии своих кулинарных шедевров в галерее, управлять профилем и многое другое. Если у Вас уже есть учетная запись, войдите здесь - или же создайте учетную запись уже сегодня!




Фотография
* * * * * 2 - количество голосов

Контроллер коптильни "Коптикон".

Автор: xSASAx , 01 March 2019 · 8989 просмотров

Коптильный контроллер «Коптикон» задуман для автоматизации процесса копчения и приготовления колбасы в домашних условиях. Все началось с того, что собрав коптильню и озадачившись контролем и управлением температур в камере коптильни и внутри продукта, был построен двухканальный термометр-термостат. Схема и прошивка была взята с просторов интернета, построен он был на базе микроконтроллера ATMEGA8. Функции свои он выполнял, сезон отслужил. Но при смене режимов бегать каждый раз вручную менять уставки как то напрягало. А тут еще давно назревала необходимость изучить программирование микроконтроллеров, да и немного свободного времени появилось. В общем, решено было сделать нормальный контроллер для коптильни, заодно разобраться и попрактиковаться в программировании STM32. В конструкции можно обойтись без пайки, если использовать ардуино модули, макетку и монтажные провода. Одной из целей была минимизация стоимости контроллера. Если бы год назад мне попалось что то подобное, собрал бы, но ничего подходящего не встречал. Начинался проект с 4х стадий и 2х датчиков ds18b20, потом добавились аналоговые датчики, дискретные выходы, доп. режимы. Проект немного разросся и затянулся. Много времени ушло на отлавливание багов. Хотя до коптильни он еще не дошел, так как у нас еще зима, а коптильня на даче. Погонял его я изрядно в разных режимах, имитируя разные ситуации.
В качестве управляющего микроконтроллера был выбран STM32F103C8T6 на отладочной плате «blue pill (синяя таблетка)». Она очень дешевая (110-130руб на Али): https://ru.aliexpres...9d-9785d3931e7f
и имеет минимально необходимый обвес, кстати она поддерживается средой ардуино. Сам микроконтроллер stm32f103c8t6, несмотря на то что по документации поставляется с флешпамятью на 64KБайта, по факту имеет 128кБ. Из проверенных мной 3х экземпляров, все нормально пишут и успешно верифицируют больше 64 кБ, из них две микросхемы корпусировано в Китае и одна в Малайзии. Есть у этой платы врожденный дефект:- опорное напряжение и питание АЦП берется с общего питания 3,3в. Поэтому АЦП шумит. Итоговый результат – младший разряд температуры иногда скачет ±0,1°. В принципе не страшно. Заказал для пробы платы stm32f103c8t6 smart v2.0
https:
https://ru.aliexpres...000000000000000
где можно развязать питание АЦП. Вдобавок на ней распаяна память at24c04, и внешняя флеш при использовании данной платы не понадобится. С микроконтроллером лучше сразу взять программатор ST-Link за 120 рублей. Например такой. https://ru.aliexpres...7.13339.99734.0
Дисплей был взят символьный монохромный 4 строки по 20 символов, брал сразу с впаянной платой преобразователя I2С. Цена 280-330 рублей например здесь: https://ru.aliexpres...-1ba474383fda . Дисплей может быть и не модный, но для текста вполне себе, информации вмещает достаточно и не блекнет на улице. Есть минус - у этих дешевых дисплеев – нет русского алфавита. Плохо, но что поделаешь. Не стал использовать транслит, не люблю его еще со времен первых сотовых. Пришлось в меню и главном экране использовать английские слова, их немного, они довольно распространены в других устройствах.
Энергонезависимая память. Использую AT24С16. АТ24С32-256 не пойдут, но при сильной необходимости можно поменять код под них. Так же будут работать AT24C08, AT24C04 и их аналоги. Продаются везде, так как широко используются в бытовой технике, китайцы продают по 6-7 руб штучка. Чтобы можно было не паять, на Али заказал платки для ардуино с 24C256.http://https://ru.al...43-89aa8be4c59e Дома вставил в панельку нужную микросхему.
В качестве элемента управления был выбран энкодер с кнопкой. Как по мне, вполне справляется с задачей. https://ru.aliexpres...2991b7d5d0f6-11 или такой https://ru.aliexpres...-2991b7d5d0f6-9
Кнопка энкодера это по факту три кнопки. Разделение временнОе. Фиксируется время от нажатия до отпускания кнопки. Срабатывание по факту отпускания кнопки.

  • Короткое нажатие (0-0,25с). В меню - вперед.
  • Среднее нажатие (0,25-1,5с). В меню - назад. В главном экране - ручная смена стадий.
  • Длинное нажатие (больше 2с). Вход и выход из меню.
  • Вращение ручки экодера. Перемещение вверх/вниз по пунктам меню, изменение +/- величин в меню. В главном экране – ручная регулировка оборотов вентилятора дымогенератора.
Главное меню.
Вложенное изображение Вложенное изображение Вложенное изображение
Меню настроек 1й стадии (для примера)
Вложенное изображение Вложенное изображение
Собственно о контроллере и его возможностях:
Имеются 4 стадии (как то: сушка-обжарка-варка-охлаждение). Стадии сменяются автоматически при достижении выбранным режимом стадии своей уставки. Таким образом в автоматическом режиме возможен полный цикл приготовления. Либо стадии можно перелистывать по кругу вручную, средним нажатием кнопки.
Каждая стадия имеет 5 режимов на выбор:
  • По температуре. (T) В этом режиме стадия заканчивается при достижении температуры продукта температуры уставки.
Вложенное изображение
  • По времени. (t) В этом режиме стадия заканчивается по истечению времени уставки. На дисплее в этом режиме показан обратный отсчет времени в минутах до конца стадии.
Вложенное изображение
  • По дельта Т. (dT) В этом режиме стадия заканчивается при достижении температуры продукта уставки, температура в камере поддерживается на дельту Т больше текущей температуры продукта. Диапазон дельта Т не более 20 градусов.
Вложенное изображение
  • Охлаждение. (Cool) В этом режиме стадия заканчивается при достижении температуры продукта меньше температуры уставки.
Вложенное изображение
  • Отключено. (OFF) Стадия пропускается.

 

Для регулирования температуры реализован ПИД регулятор. Алгоритм простой, формула классическая (в википедии первая в статье о ПИД регуляторах). Управление ТЭН происходит импульсами 1Гц с переменной длительностью (ШИМ) с помощью твердотельного реле (SSR) c симистором на выходе. На главном экране отображается текущая величина задействования ТЭН в процентах. 100%-ТЭН постоянно включен, 0%-ширина импульсов нулевая, ТЭН не греет. В интернете много информации о настройке ПИД регуляторов, у меня особых проблем не возникло. Настройка ПИД регулятора, как правило, делается один раз. Датчики на выбор (в меню) можно использовать цифровые - DS18B20 или термисторы с упрощенным расчетом, либо с уточненным (выбор в меню, с занесением соответствующих коэффициентов в настройки). DS18B20 китайцы продают уже в корпусе с метровым проводом (https://ru.aliexpres...b0-d07afaf53df7), а так же они продают готовые щупы с термисторами как расходник к их цифровым термометрам. https://ru.aliexpres...d0df750d153f07c выбор есть.

 

Реализованы дискретные выходы (для управления реле).
Четыре выхода постоянно включены в соответствующей стадии от ее начала до конца (низкий уровень на выводе МК).

  • OUT6 – 1я стадия,
  • OUT7 – 2я стадия,
  • OUT8 – 3я стадия,
  • OUT9 – 4я стадия.
Четыре выхода – OUT1, OUT2, OUT3, OUT4 включаются в начале стадии на заданное время. Номер стадии и время включенного состояния для каждого из этих выходов задается отдельно, в меню. Можно все 4 включать в одной стадии, можно по одному в стадии, можно как то иначе.
Один выход - OUT5 включается периодически во всех стадиях. Период включения и длительность включенного состояния этого выхода в каждой стадии устанавливается в настройках конкретной стадии.
Для реле заказал 5 вольтовый ардуино модуль на 8 реле типа такого: https://ru.aliexpres....274233edLWaW5C
Активный входной уровень релейного модуля- низкий. Таких модулей на Алиэкспресс большинство.
Вентилятор дымогенератора в режиме автоматического включения доступен во 2й и 3й стадии (хотя вручную его можно накрутить в любой стадии). Если в настройках стадии значение величины его оборотов больше 10%, то он считается включенным в этой стадии. При ее начале он запускается на 100%, работает так минуту, затем его обороты опускаются до установленной величины. Для управления двигателем вентилятора использую мосфет IRL3705n (попался под руку). А так подойдут любые n-канальные с управлением логическим уровнем и током стока от 5А. Вкрутил его в ту же колодку на которой расключены датчики. Думаю, можно использовать ардуино модуль IRF520. У меня их просто нет в наличии.
Звук реализован на 5 вольтовом активном (с встроенным генератором) зуммере типа такого:
https://ru.aliexpres...75-16259cb3772e
Есть такие же на 3 вольта, будут пищать громче. У меня был на 5 вольт, его и поставил.

 

При включении контроллера происходит быстрый трехкратный пик зуммера. При смене стадии вручную происходит однократный пик, при автосмене стадии пик двойной. При окончании программы периодический, примерно 1 раз в секунду пик. При перегреве длительный противный пик, пауза и циклический повтор. При выходе из крайних пунктов меню (где меняются уставки и величины) происходит однократный пик зуммера и запись значения пункта меню во внешнюю энергонезависимую память (текущие значения).
Реализовано 5 предустановок (групп уставок, presets). В них записываются значения уставок стадий (тип режимов стадий, уставки температур, времени, дискретных выходов, скорость вентилятора дымогенератора). Запись предустановок происходит после выхода из соответствующего пункта меню (save preset№) из оперативной памяти в ЕЕПРОМ, а их чтение (load preset№) из ЕЕПРОМ в оперативную память (при этом загруженные значения заменяют собой текущие). Коэффициенты ПИД, коэффициенты для расчета температуры термисторов, значения поправок температуры датчиков и типы выбранных датчиков в области памяти предустановок не записываются, а хранятся как константы в области памяти вместе с текущими значениями всех переменных. Текущие значения всех величин загружаются в оперативную память после каждого включения/перезагрузки (если загрузить какую либо предустановку, то после сброса или включения контроллера будут загружены значения уставок, которые последними устанавливались в меню ). То есть, по факту получается 6 предустановок (групп уставок).
При первом включении, или при сбое процесса записи/чтения (плохой контакт, исчезновение питания), в ячейках ЕЕПРОМ памяти могут оказаться непотребные значения величин. Чтобы загрузить в ячейки памяти значения по умолчанию, нужно замкнуть вывод РВ0 микроконтроллера на общий провод и в таком состоянии перезагрузить его (либо снять и подать питание). Затем перемычку снять. При этом загрузятся дефолтные значения всех переменных. Коэффициенты для термистора Т1 (камера) будут загружены мною снятые для термистора 100 кОм, а для термистора Т2 (продукт) снятые для термистора 200 кОм (такие используются в китайских щупах).
Надеюсь кому-нибудь пригодится. Пожелания и замечания приветствуются. Проект не бросаю, в процессе связь через блютус с андроид устройством. На все вопросы относительно контроллера отвечу.
Схема. Rделителя
у меня для Т1 24кОм, для Т2 51кОм.
Вложенное изображение
Прошивка.
Вложенный файл  thermometer.zip (71.35 КБ)
Скачано: 461
Схему поправил.
Прошивал контроллер программой ST-LINK Utility. Можно скачать на сайте ST (нужна регистрация), либо поискать в интернете. Ее дистрибутив больше 25 Мб, здесь выложить никак.

Вложенные файлы






Фотография
Дмитрий82
03 Mar 2019 21:51

Круто. Хочется увидеть в металле

  • Жалоба

ОЧень круто! Для этого же начал изучение Ардуино! Как жаль что Вы строили не на нем...

  • Жалоба

Начинаю собирать в корпус. Металлический IEK 265х310 мм из леруа мерлен. Собранные потрошки на столе могу сфоткать, если интересно. У STM32 относительно быстрый АЦП, мне нужно в другом проекте.STM32 тоже очень распространенная платформа, куча плат у китайцев и не только, много инфы в сети. Основное тело программы все равно на С. Что здесь что там. Позже выложу исходники,  можете переделать под ардуино.

    • Это нравится: Alex59 и maxx
  • Жалоба

А какой мощности у вас ТЭН? Судя по картинке, вы использовали SSR модуль для Ардуино G3MB-202P у которого напряжение нагрузки 240 Вольт и максимальный ток всего 2 А. Значит максимальная нагрузка не должна превышать 480 ватт...

  • Жалоба

SSR модуль 25 ампер. ТЭН 2.4 кВт. В рисовалке не было модельки нужного твердотельного реле. Наложу на схеме фотку актуального SSR. https://ru.aliexpres...d5-0de35bd44bb1. Такое применяю.

 

Поправил схему и ее формат.

  • Жалоба

Поправил номера выходов согласно меню в тексте и на схеме.

  • Жалоба

Отличный проект! Подскажите, возможно ли вместо Т2 использовать щуп на 100Ком? Судя по отзывам на али, в основном попадаются 100К, мне пока не удалось найти на 200К.

  • Жалоба

А мне попадались в основном на 200 кОм).

  • Жалоба

Если вдруг придёт на 100к, возможно ли его поставить на Т2, изменив делитель или надо в программе изменять?

  • Жалоба

Здравствуйте. Нужно будет в меню выставить 100кОм для R2_25. Если выбран режим расчета по В (Therm.1), то это достаточно, а если выбран режим расчета температуры по Штейнхарту-Харту  (Therm.2), возможно придется пересчитать коэффициенты а2,b2,с2 и внести через меню их новые значения.  

    • Это нравится: maxx
  • Жалоба

Здравствуйте. Очень заинтересовало все выше описанное. Это все работает или есть какие то дополнения ?  Вы писали что  ( при смене режимов бегать каждый раз вручную менять установки как то напрягало ). Вы добились желаемого? А то эта беготня в самом деле напрягает. Вроде по схеме разобрался во всем, хотя очень далек от всего  этого, только   есть пару  вопросов. Я так понимаю что  вместо 5 вольтовый ардуино модуль на 8 реле стоит приобрести 2 по 4 реле.  И что за зверь такой EEPROM AT24C04-C16 ? Как выглядит и где купить? За ранее спасибо.

  • Жалоба

Все работает, как задумано. Это флеш память 8 ножечный корпус, есть во всех магазинах  электронных компонентов. Релейный модуль 5 вольтовый. Сколько использовать реле, вам решать.

    • Это нравится: komar68
  • Жалоба

Добавил прошивку kopt.zip. Были некоторые непонятные проблемы со старой.

    • Это нравится: komar68
  • Жалоба

 что за зверь такой EEPROM AT24C04-C16 ? Как выглядит и где купить? За ранее спасибо.

 

https://aliexpress.r...196616259.html?

  • Жалоба

Парни большое спасибо за ответ и ссылку.

  • Жалоба

Автору большое спасибо за то что поделился трудами.

Хотел уточниться перед постройкой:

1. без блоков реле будет работать же? мне исполнительные механизмы не нужны, только регулирование температуры.

2. Мне нужны только термистор в продукте и цифровой датчик для поддержания точной температуры в коптильне. То есть я подключаю только термистор Т2 и цифровой датчик Т1. другие датчики я исключаю, как и блоки реле. 

 

Все верно? 

  • Жалоба
Фотография
Андрей62
24 Oct 2023 17:01

Доброе время суток. Скажите пожалуйста, кто-нибудь повторил этот проект? Прошивка рабочая? Схема совпадает?

  • Жалоба

апрель, 2024

П В С Ч П С В
1234567
891011121314
151617181920 21
22232425262728
2930