Открытый open source самодельный DIY многоточечный multipoint индикатор 20х4 на HD44780 и контролёр температур temperature controller, использующий 1-Ware датчики DS18B20 и мелкопроц Microchip Pic18F4550 с передачей собранных данных в MS Windows посредством Microchip USB CDC эмуляции COM порта (обзор в процессе написания).


Видео Демонстрация состояния прожекта на 07/06/2022:

Благодаря мотивации и помощи знакомого металлообработчика начата работа по написанию, пайке и отладке многоточечного индикатора и контроллера температуры. В качестве не самого простого объекта регулирования температуры с тепло- и массо- переносом выбрана и изготовлена модель колпачковой тарельчатой колонны с постоянным нагревом керамической инфракрасной газовой горелкой и общим протоком воды в нисходящем и обратном холодильниках.
   Все фото ниже кликабельны в полный размер 18 МП ~1-2 Mb.

По причине лимита высоты до вытяжки 750 мм на каждом этапе изготовления модели были приняты меры по уменьшению высоты элементов. В качестве источника пара использована б/у металлолом НЖ ~30 л. пивная кега с площадью зеркала кипения ~0.1 м^2. Для стабилизации кипения и pH в кегу добавляется 50-100 гр. мраморной крошки. Почти все соединения резьбовые с фторопластовым уплотнением. Использован единственный быстроразъёмный НЖ кламп, доработанный направляющей трубкой, исключающей контакт пара с силиконовой резиной уплотнения клампа и облегчающей сборку.
   Обратный холодильник с частичным проходом паров - 2 шт архимедовых бифиляра, зажатых между 3 перфолистами выравнивания потока пара по площади ~165 мм диаметра колонны, общей высотой ~70 мм из НЖ трубки 6*1, суммарная длинна трубки ~10 метров. Общая высота каждой колпачковой тарелки около 50 мм, включая перфолист защиты от брызгоуноса с зазорами ~12 и 8 мм снизу и сверху. Между выходом из кеги и входом первой тарелки НЖ перфолистом выделено ~1 литр объёма под НЖ спирально-призматическую насыпку для коагуляции аэрозольного тумана, выходящего из кеги при кипении от подводимой мощности газовой горелки ~3-5 КВт.

В качестве нисходящего холодильника изготовлен НЖ семидырный 10*1.5 восьмитруб Ф42 1 метр. Непрерывный контроль плотности нисходящего конденсата с делением на фракции через поворотный Попугай-250 мл. ареометрами комплекта АСП-3.
   Пока в заготовке (1+1 Кб ОЗУ и 32 Кб памяти программ, 12 МИПС 8 бит, осталось ~1/4 ПЗУ и ~1/6 ОЗУ) реализовано:

  • расширяемый список параметров настройки с регулированием и сохранением значений в ЕПРОМ, использующий индикатор 20*4 на HD44780, управление енкодером и 5 кноп;
  • три рабочих экрана=режима работы с индивидуальным назначением кнопок;
  • несколько (~5-10) быстро переключаемых из меню наборов настроек регулятора;
  • опрос 8 либо 16 ~100 руб. датчиков DS18B20 с известными серийными номерами каждые ~777 mS;
  • чтение и запись в ПЗУ серийного номера единственного подключённого датчика (привязка датчика к заготовке);
  • индивидуальные по датчикам счётчики ошибок CRC при чтении температур с индивидуальными порогами количества ошибок подряд при работе нагревателя, расхолаживанием при превышении порогов;
  • объединение индикатора HD44780 и кнопок и енкодера и 7LED на общей 8 бит шине PortD с разделением времени;
  • дублирование отображаемых на LCD чисел в крупный 7LED индикатор 6 разрядов с регулировкой яркости 24 ступени, обновление ~180 Гц;
  • опрос 5 шт 10 бит каналов АЦП с оверсэмплингом 64х (частота получения 16 бит накопителей ~100 Гц, частота прерываний 24.3 КГц);
  • вычисление и индикация мгновенного и интегрального расхода охлаждающей воды со скользящим средним 8 шт 32 бит копий таймера-1;
  • программный ШИМ выход 8 бит на клапана охлаждающей воды с регулируемым периодом ~1-10 сек;
  • программный 8 бит ШИМ генератор сигнала для PPM Servo, использующий общий с 1-Ware подсистемой Timer-0;
  • 8 позиций сервопривода с оперативной настройкой положений из общего списка параметров заготовки;
  • PID регулятор температуры воды на входе в обратный холодильник с циклом опроса температур и оперативной регулировкой длинны буфера скользящего среднего в канале Diff температур DS18B20;
  • для индикации на LCD и удобства настройки смены этапов перевод температуры кипения и конденсации в концентрацию C2H5OH по интерполированным таблицам с шагом 1/16 градуса Цельсия ;
  • вычисление флегмового числа с регулируемой длительностью усреднения из температур модели с учётом единого протока охл.воды на входе и выходе;
  • объединение написанных на .asm вышеперечисленных возможностей с написанными на Си Микрочип заготовками USB-CDC и USB HID BootLoader в рамках единственного мелкопроца Pic18F4550;
  • вход в загрузчик из меню нажатием и удержанием 2 кноп для возможности обновления целевой программы мелкопроца без ICSP программатора через USB посредством HIDBootLoader.exe;
  • выдача измеренных температур, мгновенного расхода воды, каналов АЦП, входа и выхода PID регулятора, служебных данных через USB-CDC каждые ~777 mS;
  • приём пакетов данных под Ms-Win в проге на бэйсике, запись логов температуры;
  • отображение графиков температур и прочих собранных данных;
  • перевод температуры кипения и конденсации в концентрацию C2H5OH по проверенным и исправленным интерполяцией таблицам Стабникова-1976;
  • пост анализ логов с вычислением количества ступеней разделения по температурам кипения в кеге и пара перед нисходящим холодильником с интерполяцией таблиц Стабникова полиномами Лагранжа;
  • визуально-графическая интерполяция и усреднение данных из добытых объединённых и фильтрованных логов с ручным рисованием графика зависимости температуры подачи в обратный холодильник от температуры кипения в кеге для учёта конкретики особенностей модели в попытке взять задание для ПИД регулятора из наиболее стабильного и точного датчика температуры с выгрузкой таблицы в Pic18.asm из проги на бэйсике с целью получения приемлемой и стабильной скорости частичного прохода паров через обратный холодильник.

Первые опыты дробной перегонки показали характер модели с общим последовательным потоком охлаждения (например медный «Sier» 1936-го года , похожий на Аламбик, возможно Арманьякский), на нисходящем и обратном холодильниках , потребовавших добавления стабилизирующего теплообменника между нисходящим и обратным холодильником для уменьшения разницы температур между входом и выходом архимедовых бифиляров, в том числе дающей надежду на использование поверхностей обратного холодильника и перфолистов между ними как дополнительной ступени разделения.
   После ознакомления с характером модели достигнутое количество ступеней разделения - от 2.5 до 8 в зависимости от скорости отбора, реальное среднее около 3.2-3.5 ступени при времени отбора около 2 часов из 18 литров исходного ~15 об.% раствора, средняя крепость первака ~88 об.%, в перваке содержится ~4/5 общего извлекаемого C2H5OH.
   Программная регулировка скорости отбора и флегмового числа осуществлена дублированным исполнительным элементом - длительностью открытия клапана охлаждающей воды в периоде 1-2 секунды при постоянной мощности нагрева испарителя. Контактной поверхности архимедовых бифиляров достаточно для полной конденсации пара при подводимой к испарительной ёмкости мощности ~5-7 Квт.
   После запуска и отладки ПИД стабилизации температуры воды на входе в обратный холодильник и подбора скорости нарастания этой температуры при истощении исходного раствора - средняя крепость первака увеличилась до ~91-93% ABV при 90-120 минут на этап отбора первака из ~25-27 литров исходного ~15-16%ABV раствора.
   Дополнительно в систему добавлен измеритель расхода охлаждающей воды, клапан аварийного охлаждения, клапан перекрытия охлаждающей воды, пары IRL3713 ключей размыкания цепи электромагнит-термопара контроля пламени горелки для возможности работы модели без непрерывного контроля человеком.
   Питание управления от 10-15 вольт при потреблении менее 1 ампера позволило реализовать бесперебойность питания от 6 банок свинца. При пропадании питания закроются клапан охлаждающей воды и разомкнётся цепь термопары контроля пламени горелки, тепловой ёмкости воды в метровом нисходящем холодильнике достаточно для конденсации остаточного пара - неоднократно проверялось на практике.
   Для большего удобства и надёжности хочется добавить сервомашинку перевода фракций по ёмкостям с подсветкой выбранной ёмкости, дублирование линий опроса датчиков 1-Ware, переполнения датчики и пролива до 8 штук с опросом как кнопок на общей 8 бит шине PortD, второй контур регулирования для поддержания флегмового числа или таблицу перевода температуры кипения раствора в кеге в температуру воды перед обратным холодильником с оперативной подстройкой на основе добытых данных при пробных перегонах с учётом полученного количества ступеней разделения и эффективности обратного холодильника, увеличить количество тарелок до 5 штук для более полного сходства с фото «Sier» 1936-го года.

   Пайка конструктива на НГ каникулах 2022 и внедрение модуля обсчёта входа событий от датчика протока (расходомера) - внезапно породили проблемы с USB Enumeration в реализации MicroChip CDC - USB показала зубы. Требования каркаса CDC вызывать сабпрогу на Си не реже чем 100 uS после внедрения деления 32/24 - трудновыполнимы - процедуру деления пришлось дробить на 32 вызова.
   Индикация и тарировка протока и общего (интегрального) потребления воды - откалиброваны , программное управление клапанами спаяно, сетевой бесперебойный источник 13+6 вольт собран из кубиков с алишки, конструктив стабилизирующего нагревателя воды перед бифилярами улучшен, дважды. Входной 12V клапан 1/2" открывания общей воды с обмоткой 4 Ома - ток при удержании снижен до ~0.3А добавлением R=40 OHm и C=~10mF.
   Расширение проги - достигло этапа нехватки ОЗУ под кольцевые буфера 32 бит скользящих средних (невязка ПИД и время между изменениями состояния датчика протока) и страницы ПЗУ для записи номеров датчиков. Однако добавленное в раб.экран №1 отладочное средство просмотра ОЗУ - позволило увидеть неиспользуемые при работе системы области, в том числе между стеком и кучей каркаса Си, а также в двухпортовом ОЗУ USB - которое при USB CDC не используется.

В 21 годе 21 века второго месяца первого дня в мореходов трёх каменных стенах при морском городе янтарного края Власолинов аргона огней и цветного металла Юркий Демиутр из 21 килограмма белого металла сваял воедино полупопия йайсэв судьбы, архимедовы бифиляры и семидырный восьмитруб, закрепив на источнике пара, тепла и света. И меж собой нарекли сие поделие Сэмбик-21.
   P.S. В чём-то похожие устройства:

  P.P.S. ПараФот MTC.Psw2.Ru, история версий проги, добытые свежие логи.
   Быть или казаться ?