Yellow Tea© by Fisana

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


Фотография
- - - - -

Автоматизация затирки пива на модуле STH0024 v3

пиво автоматика STH0024

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 119

#41 capsolo

capsolo
  • Пользователи
  • 1 567 сообщений
  • Имя:Антон
  • Город124575

Отправлено 12 Февраль 2016 - 11:20

ДА и опять же RC цепочка в помощь



#42 Jollier

Jollier
  • Пользователи
  • 237 сообщений
  • Имя:Владимир

Отправлено 12 Февраль 2016 - 11:46

Ну када, када будет готово!?))



#43 capsolo

capsolo
  • Пользователи
  • 1 567 сообщений
  • Имя:Антон
  • Город124575

Отправлено 12 Февраль 2016 - 14:06

Вов, надеюсь, что на следующей неделе. Там будет все железно зашито. Если включаешь с Т затора больше первой паузы - есесно ее не будет. Работы сейчас основной очень много.


Сообщение отредактировал capsolo: 12 Февраль 2016 - 14:19


#44 serafh

serafh
  • Пользователи
  • 2 566 сообщений
  • Имя:Сергей
  • ГородМосква

Отправлено 12 Февраль 2016 - 14:10

СТХ с SSR сопряжено, если нет - то как нагрев будет осуществляться?



#45 capsolo

capsolo
  • Пользователи
  • 1 567 сообщений
  • Имя:Антон
  • Город124575

Отправлено 12 Февраль 2016 - 14:20


SSR сопряжено

конечно через твердотелку или пускатель, что там ser64 поставит.



#46 kiliwin

kiliwin
  • Пользователи
  • 342 сообщений
  • Имя:Андрей Бахтин
  • ГородМеждуреченск

Отправлено 12 Февраль 2016 - 15:58

Murzzzilk

 

я использую



#47 capsolo

capsolo
  • Пользователи
  • 1 567 сообщений
  • Имя:Антон
  • Город124575

Отправлено 19 Февраль 2016 - 11:25

Тема не умерла :) Прошивка отгружена в Тулу на бета-тестирование. Вчера не один десяток трехлитровых банок прошел по паузам с помощью кипятильника :) Я пока причешу и прокомментирую код, чтобы не стыдно было выкладывать. Леша Глум был прав на счет того, что кристалл слабенький (или код любительский) - я его загрузил по самое небалуйся, и он начал кратковременно терять градусник. Написал код для восстановления корректной работы при потере градусника.  Похоже памяти хватит только на переключение между рецептами варки пива, так что Леша Глум здесь опять был прав и подсказал отличное решение. Интерфейса выставления произвольных температур и пауз не будет. Не лезет в память.  Пока планирую забить однопаузное по Викторчику, двухпаузное для отечественного солода и пятипаузное как делает Вова Джоллер, ну и 65 на 2 часа для затирки зерновых. Планирую также выложить подробную инструкцию по прошивке СТХ для самостоятельного изготовления контроллера.

Принимаю заявки на другие рецепты, пока еще есть память :)


Сообщение отредактировал capsolo: 19 Февраль 2016 - 11:29


#48 Kasperys

Kasperys
  • Пользователи
  • 561 сообщений
  • Имя:Олег
  • ГородСанкт-Петербург

Отправлено 19 Февраль 2016 - 11:50

Антон,

 

можно вопрос: зачем умножать сущности?

есть :

1. автоматика к клонам брендмауэра http://hbpro.ru/thre...vt-i-3-5kvt.58/

2. есть тот же Метаком-613  http://www.contravt.ru/?id=6834, в который можно 10  двадцатишаговых программ засунуть, при этом он еще может управлять внешними по типу вкл/выкл, т.е. мешалка, насос и т.п..

 

Если твой продукт сможет у этих выигрывать, то смысл есть с ним возится, а иначе просто потратишь время.

 

PS вот еще наши польские коллеги делают 

для пива http://bolecki.pl/pl/oferta/17-spz10

для дистилляции http://bolecki.pl/pl/oferta/26-skn



#49 capsolo

capsolo
  • Пользователи
  • 1 567 сообщений
  • Имя:Антон
  • Город124575

Отправлено 19 Февраль 2016 - 12:19

Олег стхшка пока стоит 900 рублей, твердотелка мощная ну еще 800. Коробочка фирменная 250р. Сколько стоят аналоги?
Мешалка подключается через розетку с таймером за 500р

Собирается все без паяльника отверткой за 5 минут


Сообщение отредактировал capsolo: 19 Февраль 2016 - 12:23


#50 61003

61003
  • Пользователи
  • 181 сообщений
  • Имя:Алексей
  • ГородСамара

Отправлено 20 Февраль 2016 - 7:57

думаю проблема с неоптимальным кодом)) в этот камень много чего можно засунуть включая и интерфейс ввода. накрайняк можно в ассемблер уйти.

причешешь выложи,погляжу что можно сделать



#51 capsolo

capsolo
  • Пользователи
  • 1 567 сообщений
  • Имя:Антон
  • Город124575

Отправлено 02 Март 2016 - 13:44

Я почему-то не могу редактировать свое первое сообщение. Выкладываю тут проект для Атмел Студио 7 и проект для зашивки Algorithm Builder'ом

 

Пока три программы:

 

1) 35,45,52,65,72,78

    10,10,20,25,30,35

 

2) 72,78

      30,15

 

3) 52,72,78

    30,30,10

 

Выбираются из меню по средней кнопке. Параметр Р.

Сегодня вечером буду отлаживать.

 

Солюшн для Атмел Студии

Прикрепленный файл  beer_kita_program_AS70.zip   247,17 КБ   8 Количество загрузок:

 

Проект для AB

Прикрепленный файл  beer_project_program_AB.zip   20,78 КБ   6 Количество загрузок:

 

Контроллер делает все сам: определяет какая программа выбрана, на какой температуре он находится и продолжает выбранную программу со считанной температуры.

Также контроллер на основании скорости нагрева определяет когда затирка будет окончена, и попеременно с температурой выводит время в минутах, оставшееся до конца затирки.

Настроек две: dt - инерция котла: за сколько градусов выключать нагрев, чтобы выйти на паузу, P. программа - пока три программы затирки, можно добавить еще по желанию.


Сообщение отредактировал capsolo: 02 Март 2016 - 13:48


#52 61003

61003
  • Пользователи
  • 181 сообщений
  • Имя:Алексей
  • ГородСамара

Отправлено 02 Март 2016 - 14:01

понятно почему у тебя не хватает памяти)) библиотек всяких поврубал левых. зачем там вообще 1wire, если датчик один?



#53 capsolo

capsolo
  • Пользователи
  • 1 567 сообщений
  • Имя:Антон
  • Город124575

Отправлено 02 Март 2016 - 14:52

Ну я планирую потом тот же фреймворк для других разработок использовать. В них будет больше датчиков, ну и наверное больше памяти. Свободной памяти сейчас 500 слов. Один рецепт - 12 слов. Нет смысла все усложнять.
Да и согласись убого 12 величин настраивать. Неудобно.

Сообщение отредактировал capsolo: 02 Март 2016 - 14:58


#54 61003

61003
  • Пользователи
  • 181 сообщений
  • Имя:Алексей
  • ГородСамара

Отправлено 02 Март 2016 - 17:26

каждый датчик можно повесить на отдельный вход, это упрощает в дальнейшем их подключение, замену и т.д.

я опрос 2х датчиков писал. ниже код для 13й тиньки в 1Кб. заняло если не ошибаюсь половину т.е. 500 байт

это старт-стоп по дельте 2х датчиков. из библиотек только задержка и описание портов.

работает как часы как с одним датчиком, так и с двумя.

 

 

#define  F_CPU 1000000UL
#include <util/delay.h>
#include <avr/io.h>
int tempinit;
unsigned char k,kd[8]={1,2,3,4,5,6,8,10};


void w_sendcmd(unsigned char cmd,unsigned char num)
{
  for(unsigned char i = 0; i < 8; i++)
  {
    if((cmd & (1<<i)) == 1<<i)
    {
      DDRB |= 1<<num;
        _delay_us(2);
      DDRB &= ~(1<<num);
        _delay_us(65);
    }
    else
    {
      DDRB |= 1<<num;
        _delay_us(65);
      DDRB &= ~(1<<num);
        _delay_us(5);
    }
  }
}

unsigned char w_receive_byte(unsigned char num)
{
  unsigned char data=0;
  for(unsigned char i = 0; i < 8; i++)
  {
    DDRB |= 1<<num;
    _delay_us(2);
    DDRB &= ~(1<<num) ;
    _delay_us(7);
    if((num & (1<<num)) == 0x00)
      data &= ~(1<<i);
    else
      data |= 1<<i;
    _delay_us(50);
  }
return data;
}

int temp_18b20()
{
  unsigned char data1[2];
  unsigned char data2[2];

  int temp1 = 0;
  int temp2 = 0;

  w_sendcmd(0xcc,0);
  w_sendcmd(0x44,0);
  w_sendcmd(0xcc,1);
  w_sendcmd(0x44,1);

  _delay_ms(750);
  DDRB |= 1<<0;
  DDRB |= 1<<1;
  _delay_us(485);
  DDRB &= ~(1<<0);
  DDRB &= ~(1<<1);
  _delay_us(65);
  w_sendcmd(0xcc,0);
  w_sendcmd(0xbe,0);
  w_sendcmd(0xcc,1);
  w_sendcmd(0xbe,1);

  data1[0] = w_receive_byte(0);
  data1[1] = w_receive_byte(0);
  data2[0] = w_receive_byte(1);
  data2[1] = w_receive_byte(1);

  temp1 = data1[1];
  temp1 = temp1<<8;
  temp1 |= data1[0];
  temp1 = temp1 * 0.625;
  temp2 = data2[1];
  temp2 = temp2<<8;
  temp2 |= data2[0];
  temp2 = temp2 * 0.625;
  if (temp1>temp2)
  {
    return temp1-temp2;
  }
  else
  {
    return temp2-temp1;
  }

}


int main(void)
{

    DDRB |= (1<<5)|(1<<4)|(1<<3)|(0<<2);
    k=((PINB & 0b00111000) >> 3);
    tempinit=temp_18b20();
    while (1)
    {
        if (temp_18b20()-tempinit<kd[k])
        {
            PORTB |= (1 << 2);
        }
        else
        {
            PORTB &= ~(1 << 2);
        }
    }
}
 


Сообщение отредактировал 61003: 02 Март 2016 - 17:26


#55 capsolo

capsolo
  • Пользователи
  • 1 567 сообщений
  • Имя:Антон
  • Город124575

Отправлено 02 Март 2016 - 18:23

Леш твой код выглядит как особая уличная магия :) Как, например, ты подобрал делеи при отсылке команд? Я не критикую, я пытаюсь разобраться почему у тебя нет никаких выбросов по температуре, почему ты не считываешь многократно датчик, оттого, что он не отдает тебе то, что надо :) Почему у тебя нет дребезга релюхи на пороговых температурах.


Пойду домой трехлитрушки греть :)


Сообщение отредактировал capsolo: 02 Март 2016 - 18:22


#56 61003

61003
  • Пользователи
  • 181 сообщений
  • Имя:Алексей
  • ГородСамара

Отправлено 02 Март 2016 - 18:33

ато :-)  этот код я доводил в районе года. дальше его просто уже нельзя сократить в принципе.

задержки при отсылке следуют из даташита и подобраны на практике (не мной). я чуть менял правда, по сравнению с АСУРом, но это тоже не суть.

главная задержка _delay_ms(750); в теле, обеспечивает гарантированный перерыв между опросами, которого достаточно, чтобы датчик переварил запрос и выдал его обратно.

на самом деле нам это знать это все вовсе не обязательно, бери функцию и гарантированно получишь результат.

 

есть конечно нюанс. если в программе будут прерывания, то на время исполнения функции temp_18b20() лучше их отключать, если они длинные, чтобы не рушить задержки.

также эту функцию не надо вставлять в прерывание, пусть она будет в теле программы.

 

на этом коде у меня НИКОГДА не было ни нулей, ни заветной 85гр и прочей херни, а самое главное, что увеличение количества датчиков на других ногах не приводит к существенному увеличению кода.



#57 capsolo

capsolo
  • Пользователи
  • 1 567 сообщений
  • Имя:Антон
  • Город124575

Отправлено 02 Март 2016 - 19:50

Ага вот где собака порылась. Я там с плавучкой по прерываниям высчитываю воту меня датчик и отваливается. Хорошо, если я от этой железяки чего-то ещё захочу и не будет хватать памяти - воспользуюсь. Следующая остановка - регулятор мощости со стабилизацией. На входе сигнал детектора нуля и вольтметр. На выходе - угол открытия симистора. Ну и интерфейс простейший: полная напруга, либо выставленная. Кстати код мой оказался с багами как и предполагалось. Банку догрею - выложу корректный.

Сообщение отредактировал capsolo: 02 Март 2016 - 20:01


#58 2garin

2garin
  • Пользователи
  • 1 сообщений
  • Имя:2garin
  • Городзамкадыш

Отправлено 02 Март 2016 - 20:22

э э тоесть ты хочеш сказать что рм у тебя будит с на базе стхашки



#59 capsolo

capsolo
  • Пользователи
  • 1 567 сообщений
  • Имя:Антон
  • Город124575

Отправлено 02 Март 2016 - 20:54

2garin, пока выбираем модуль. Почему нет?
Ребята я вот что подумал. Это получатся не пивной контроллер, а универсальный контроллер для ПВК. Осталось добавить три программы: затирка солода на вискарь 62 час, затирка солода с несоложенкой 62 два часа и 99 1 минута для перегона сброженного затора. Обычно на рубашечнике второй погон не гоняют, так что я не вижу никаких препятствий. Что скажете?

#60 ser64

ser64
  • Пользователи
  • 190 сообщений
  • Имя:Сергей
  • ГородТула

Отправлено 02 Март 2016 - 21:03


Что скажете?

Красавчег, я за СТХ всеми конечностями. А ежли еще и рег. мощности прикрутить к ней... :good:


Сообщение отредактировал ser64: 02 Март 2016 - 21:07






Темы с аналогичным тегами пиво автоматика, STH0024

Copyright © 2018 Хлебное вино & пиво