Перейти к публикации
capsolo

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

Рекомендованные сообщения

Я почему-то не могу редактировать свое первое сообщение. Выкладываю тут проект для Атмел Студио 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

 

Проект для AB

beer_project_program_AB.zip

 

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

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

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

Изменено пользователем capsolo

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Да и согласись убого 12 величин настраивать. Неудобно.

Изменено пользователем capsolo

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

я опрос 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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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


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

Изменено пользователем capsolo

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

 

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем capsolo

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Что скажете?

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

Изменено пользователем ser64

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Леш а что так категорично? Готовый детектор нуля не найти? Чего там такого ?
[member=ser64], Сереж а зачем РМ если мы в ПВК гнать не собираемся на второй раз? Или собираемся?

Изменено пользователем capsolo

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
[member=capsolo],тот спирт Парторгу уходит на испытания клюшки моей. У меня есть 90 л браги сазарной, времени нет отжать. Если тольео в выходные привезу. А тебе сколько надо?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Леш а что так категорично? Готовый детектор нуля не найти? Чего там такого ?

вот именно, что ничего такого. РМ2 в 2х магнитах стоит 1500 в корпусе, 2500 в сборе с симистором, радиатром и т.п. вы сделаете дешевле? сомневаюсь. даже если сделаете, ради маржи в 100-200 рублей нафиг надо с этим возиться?

 

и в итоге получится таже срущая в сеть лажа.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Проекты некоммерческие. С симистором и радиатором за 1000-1500 в самый раз

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ну если охото повозиться, то можно. изобрести очередной велосипед :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
[member=capsolo],что-то я туплю. Гене и отдадим. Изменено пользователем Garik80

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

а взамен ты что получишь? :) у него не совсем корпусированная автоматика :)


Вобщем я вчера все отладил. Програм теперь шесть

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

 

4) 62 - 60 мин - для затирки солода

5) 62 - 120мин - для затирки солода с несоложенкой

6) 99 - 1 мин - для выгона затора

 

После прохода по паузам контроллер вырубает нагрев.

 

 

beer_kita_program_v1.0.zip - проект в Атмель Студии

beer_project_program_v1.0.zip - проект для Алгоритм Билдера

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я только теперь после праздников смогу заняться - завтра с женой на дачу мотаем....

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

обновил второй пост темы. Прикрепил инструкцию по зашивке контроллера и рекомендации по подключению к мощной нагрузке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

[b][member=capsolo][/b],Привет Антон .  Я понял , что на варку пива и на ректификацию нужны два модуля СТХ ...? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Угу - это два разных устройства.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Можно и одну, только перешивать охренеешь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да цена вопроса модуль 900 и твердотелка 800. Ну бп 250. Два косых. И автоматика для ПВК готова ;) пиво, затирка, перегонка на СС - все это есть. Была бы на модуле вторая релюха - можно было бы и охлаждение сделать рубахой. В принципе можно переключатель сделать: переключил на клапан воды, выбрал программу охлаждения и вперед. Программу охлаждения я правда пока не запилил, но это не сложно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×
×
  • Создать...