Обзоров на это чудо здесь, наверное с десяток, и на один из них я повелся, купив этот упаковщик. Конкретного применения этому аппарату я не представлял тогда, ну, были мыслишки о сале и мороженой сливе. Кстати, для сомневающихся в надобности прибора написан шикарный
обзор с массой применений данного устройства, надеюсь автор не будет против, что я позаимствую оттуда несколько фотографий.
Получил прибор на почте, получил ментальных тумаков от бабы дома за очередное бестолковое приобретение, поигрался на грецких орехах и засунул упаковщик в кухонный шкаф в дальний угол, до особого случая.
Особый случай не заставил себя долго ждать, у родственников появилось какое-то неприличное количество сала, и я был вызван в село для его (сала) копчения.
Вернувшись домой я сразу же достал упаковщик из дальнего угла кухонного шкафа, и принялся вакуумировать привезенное сало, чтобы оно не выдохлось и радовало меня периодически во время обеда.
Я задул один пакет, а пока набивал следующий, внутри упаковщика что-то сделало тихое «пук», потом еще раз, и из вентиляционных отверстий пошел бледно желтый дым. Я сразу же выдернул прибор из розетки, и попёр его на стол, чинить.
Вскрытие показало, что взорвался конденсатор на 4.7мф, погорели несколько элементов, и, самое главное, контроллер тоже сдох, ибо при подаче 12в напрямую схема признаков жизни не подавала.
Фото похожей платы, свою сфотографировать не додумался
Красным помечены сгоревшие детали
На самом деле я был даже рад этой поломке, потому что появился повод почесать руки, и оправдать наличие кучи радиодобра в столе.
Принцип работы устройства.
Для начала надо было выяснить принцип работы устройства. В устройстве есть вакуумный насос, датчик разрежения и нагревательный элемент для запайки пакета. Устройство работает в двух режимах: вакуумирование с запайкой пакета, и просто запайка.
После запуска режима вакуумирования с запайкой включается насос, устройство понимает, что нужное разрежение достигнуто, считывая показания вакуумного датчика. Датчик замыкается накоротко при определенном разрежении, порог можно регулировать, судя по крутилке под шестигранник, расположенной на датчике. Трогать регулировку не стал. Ещё один нюанс — при откачанном воздухе крышка специальным зубом давит на скрытую кнопку, активируя тем самым процесс запайки. Если датчик долго не срабатывает, насос вырубается, запайки не происходит. Так бывает, когда пакет криво заправлен, и насос сосёт со всех фронтов, а не только из пакета.
Если нужно просто запаять пакет, то нужно надавить на ту самую скрытую кнопку, расположенную чуть ниже основной, которая светится зеленым.
Рождение схемы.
- За мозги решил взять микроконтроллер аттини45, потому что он был.
- Мотор насоса будет включаться микроконтроллером через биполярный транзистор, выход мотора я шунтировал диодом, потому что так правильно.
- Датчик давления завел на другой пин контроллера, параллельно воткнул светодиод зеленого цвета, пусть он загорается только при достижении нужного давления.
- Нагревательный элемент. С ним я провозился подольше. В родной схеме грелка включалась через тиристор bt137, притом контроллер дергал его непосредственно, никаких опторазвязок и драйверов, только ограничительный резистор на управляющем выводе. Я использовал типовую схему подключения тиристора с оптопарой с симисторным выходом MOC3023. Посадил это на отдельный пин контроллера, параллельно присоединил красный светодиод, чтобы он показывал состояние грелки.
- Кнопкам выделил отдельные пины контроллера.
- Итого занято 5 пинов, беспроблемно доступных для пользователя. Можно ещё использовать reset, но тогда контроллер будет прошиваться только через высоковольтный программатор, так что пусть будут 5 пинов, достаточно.
- Питание. Запитать решил от маленького драйвера для светодиодной ленты. Тока он дает достаточно для работы насоса, в корпус умещается, и выглядит надёжнее родного питальника, совмещённого с управляющей частью. Теперь на новую плату будет приходить 220В, будет дополнительный выход 220В для блока питания и вход для получения с него 12 вольт. Питание контроллера — через 78m05, просто и сердито.
Готовая схема:
Печатная плата.
Вооружившись штангенциркулем я тщательно промерил старую плату, чтобы кнопки и отверстия на новой плате точно попали в предназначенные для них места в корпусе. Кнопки и разъёмы решил выпаять из родной платы, светодиоды взял обычные, 5 мм.
Проект платы:
Вооружившись жёлтыми китайскими бумажками и утюгом вытравил плату…
Изготовление
3D модель:
Вытравленная ЛУТом плата
После лужения и сверления всех отверстий примерил плату в корпус. По моему идеально.
Настало время набить плату деталями. Методично выдираю все разъемы и кнопки, и сажаю на новое место.
Набрасываю тестовую прошивку, чтобы проверить работоспособность схемы, и, собственно, тестирую
Насос насосит, команда грелке греть подаётся. Пора подключать всё это к устройству и тестировать на нём. При испытании с подключенной грелкой оказалось, что она довольно ядрёная и может запросто пережечь пакет, если её передержать включенной. Датчик давления вполне адекватно оценивает это самое давление, и запайку можно инициировать только им, а не ждать когда крышка надавит на кнопку, так я и реализовал это в коде.
КОД.
Кодить для меня это боль, даже в среде разработки ArduinoIDE. Я потратил на это весь день, с перерывами на истерики. Надо было с детства тренировать мозг. Тем не менее, к вечеру я получил какой никакой результат.
Код
//attiny45,attinycore. 8 мгц
#define HOTPin 0 //13//0
#define MotPin 1 //12//1
#define BaroPin 2 //11//2
#define But1Pin 3 //10//3
#define But2Pin 4 //9//4
int but1_state;
int but2_state;
int barostate;
int startpump = HIGH;
long previousMillis = 0;
long interval = 77; // 130примерно секунда в миллис. одна секунда
boolean start_suck = false;
boolean start_hot = false;
int hottime_max = 2;
int hottime = 0;
int sucktime_max = 20;
int sucktime = 0;
int preheatdelay = 4;
boolean sucksuccess = false;
void setup() {
//Serial.begin(9600);
pinMode(HOTPin, OUTPUT);
digitalWrite(HOTPin, HIGH);
pinMode(MotPin, OUTPUT);
pinMode(BaroPin, INPUT);
pinMode(But1Pin, INPUT);
pinMode(But2Pin, INPUT);
}
void loop() {
unsigned long currentMillis = millis();
but1_state = digitalRead(But1Pin); // читаем кнопки. это большая
but2_state = digitalRead(But2Pin); // это маленькая
barostate = digitalRead(BaroPin); // датчик давления
if (currentMillis - previousMillis >= interval) {
// сохраняем время последнего изменения состояния светодиода
previousMillis = currentMillis;
autohot();
if (start_suck == true) { // откачка воздуха
if (sucktime_max > sucktime) { // если не превышен таймаут мотора
digitalWrite(MotPin, HIGH); // запускаем мотор и крутим счетчик таймаута
sucktime++;
if (barostate == LOW) { // если датчик давления сработал, то запаиваем
sucksuccess = true;
}
} else { // заканчиваем цикл
digitalWrite(HOTPin, HIGH); // выключаем грелку
digitalWrite(MotPin, LOW); //вырубаем мотор
start_hot = false; //сбрасываем флаги
start_suck = false;
hottime = 0;
}
} else { // если превышен таймаут мотора
digitalWrite(MotPin, LOW); // вырубаем
sucksuccess = false; // сбрасываем флаги
start_suck = false;
}
if (start_hot == true && start_suck == false) { //просто запайка
if (hottime < hottime_max) {
digitalWrite(HOTPin, LOW);
hottime++;
} else {
digitalWrite(HOTPin, HIGH);
start_hot = false;
start_suck = false;
digitalWrite(MotPin, LOW);
hottime = 0;
}
}
/*
Serial.print("sucktime ");
Serial.println(sucktime);
Serial.print("hottime ");
Serial.println(hottime);
Serial.print("sucksuccess ");
Serial.println(sucksuccess);
Serial.print("preheatdelay ");
Serial.println(preheatdelay);
*/
}
if (but1_state == LOW) {
start_hot = true;
}
if (but2_state == LOW) {
start_suck = true;
sucktime = 0;
}
}
void autohot(void) {
if (sucksuccess == true) {
if (preheatdelay < 1) { // задержка перед жаркой
if (hottime < hottime_max) { // ограничиваем время жарки
digitalWrite(HOTPin, LOW); //нагреваем
hottime++;
} else {
digitalWrite(HOTPin, HIGH); // выключаем грелку
digitalWrite(MotPin, LOW); //вырубаем мотор
start_hot = false; //сбрасываем флаги
start_suck = false;
hottime = 0;
sucksuccess = false;
preheatdelay = 3; // здесь нужно ставить +1, так как последний цикл все таки вычитает
}
}
preheatdelay--;
}
}
Алгоритм работы таков:
-нажатие прозрачной кнопки запускает автовакуумирование с запайкой в конце. Если насос работает больше 20 секунд, то выключается, цикл прерывается. Если пользователю надо, чтобы насос работал дольше 20 секунд, то нужно периодически нажимать прозрачную кнопку для обнуления счетчика. После того, как датчик давления подаст сигнал, подаётся напруга на нагреватель в течении примерно секунды (подобрано экспериментально), затем выключается нагреватель и насос. Готово.
-нажатие скрытой кнопки подает питание на нагреватель на тот же промежуток времени, чтобы произошла запайка пакета.
UPD:
В оригинале запайка производится подачей на тиристор управляющих сигналов в следующей последовательности:
1 мс высокого уровня;
пауза 9 мс;
ещё 1 мс высокого уровня;
пауза 69 мс.
И эта последовательность повторяется 5 секунд. Никакой привязки к фазе нет.
Спасибо за инфу пользователю
iamjdoe.
Погонял прибор на различных мелочах, во всех режимах, комбинируя всевозможные варианты ошибок и неправильных нажатий, всё работает штатно, а это значит, что сало спасено.
Спасибо за внимание!
Исходники. Проект в proteus 8 и код в arduinoide. Для работы с микроконтроллерами attiny нужно через менеджер плат добавить AttinyCore
Лежит такой упаковщик дома, правда живой, перешёл на Р-290, там пакеты дешевле
Как доработку хотел напечатать к этому упаковщику внешний выход и приделать банку для сбора жидкости, чтобы упаковывать не только сухое, ценники на мокрые упаковщики раз в 5 больше, а в принципе доработка копеечная. Вопрос был лишь во времени работы насоса, банку тоже откачать нужно, а тут всё решаемо заменой параметра
Кроме имеющейся встроеной в прибор емкости для жидкости в комплекте идёт отдельная банка на поллитра и шланги к ней
а вот экономически не выгодно. недавно продавали за 10 уе.
А так разминка для рук и мозга.
1 мс высокого уровня;
пауза 9 мс;
ещё 1 мс высокого уровня;
пауза 69 мс.
И эта последовательность повторяется 5 секунд. Никакой привязки к фазе нет.
А в целом, данное устройство вполне отличная вещь, если разобраться как оно устроено и при необходимости чуть переделать под себя. Простое и неприхотливое, вакуумирует отлично. Я сравниваю с BioloMix, который в три раза дороже. У последнего разве что ширина запайки больше, но на этом преимущества и заканчиваются. Вcе эти dry/moist, normal/soft по большому счёту не нужны. Если с головой дружишь, то и данным упаковщиком всё это можно реализовать (только надо ли?). А ещё я использую его как генератор дыма и мясо отдаёт тем самым непередаваемым вкусом.
Ардуино ИДЕ к тому же адский ад, особенно если нужна отладка( выдача через компорт — это не отладка). Подозреваю по комментариям в коде, что автор отлаживал на другой ардуине, а результат зашил в тиньку и вздохнул с облегчением.
Пока не подводил.
Единственное — после десятка запаек желательно ему подостыть, а то может начать проплавлять.
Хотя в итоге по цене то на то и выйдет.
ЗЫ а что не так с теми двумя за 2 года? Перестают (гусары — молчать!) нормально сосать.
Но кому то может и будет интересно.
Кстати, ссыкли на помпу приветствуются. Заранее спасибо
Требует исключительно родные ребристые пакеты, гладкие не вакуумирует.
За 20 лет никто не придумал допилинг, чтобы использовать обычные пакеты?
PS: движек можно куда-то применить :)
Там весь смысл в этих рифлёных( или пупырчатых) пакетах.
Когда себе искал лет 5-6 назад, то находил китайца с .., как это описать, ну иглой, хоботком что-ли — вот там можно было любые пакеты вакуумировать и запаивать. Но себе всё же взял для рифлёных — взвесил все за и против. Да и стоил тот «слоник», как помнится — ну не то что жутко дороже, но достаточно дорого.
НЕ надо боятся цены на эти рифлёнки. Я за эти годы, многократно ими пользуюсь. Ну конечно если гигиена позволяет! Нет, не мою их в основном. Стараюсь использовать их на сухо. Т. е. в другой тонкий пакет и прокалываю его иглою.
Пользуюсь таким второй год.
Зимние заготовки всякой зелени с огорода вышли на новый уровень...:-)
в инете же полно лайфхаков как плоскопакеты в дешевых вакуумматорах применять. Ютуб этим завален
Мембранный — очень прост и вполне надежен, ресурс в основном зависит от качества коллектора, щеток, и прочности мембраны, кроме того, в отличии от предыдущих вариантов мембранный можно промывать жидкостями без полной разборки.