Цифровая микроволновка из механической

в 8:58, , рубрики: arduino, diy или сделай сам, микроволновая печь, микроволновка

Цифровая микроволновка из механической - 1

Многие из нас имеют дачи: кто-то растит картошку, кто-то делает ремонт, а кто-то — и то и другое. Но, бесспорно, все стаскивают туда всякий хлам (а вдруг пригодится!). В состав этого разношерстого хлама входит все: от разных тряпок до термоядерных реакторов поломанной бытовой техники. Историю о том, как с помощью Arduino Nano и кучи свободного времени была восстановлена микроволновая печь, можно найти под катом (много фото).

Была поздняя осень и на даче особо делать было нечего — готовились к зимовке. И после переноса разного хлама я наткнулся на микроволновку, которую вывезли туда пару лет назад. Отремонтировать ее было вполне актуально, так как разогревать пищу во время ремонта на плите не очень удобно — гораздо проще вот такой малюткой прокрутить пару раз тарелку и в бой!

Цифровая микроволновка из механической - 2

Для выяснения поломки пришлось провести опрос родителей на тему того, как и при каких обстоятельствах микроволновка сломалась и почему ее вывезли на дачу. Оказалось, что сломался регулятор с таймером. Разборка показала правдивость такого вывода: в результате постоянных размыканий/замыканий контакт подгорел и начал нагреваться, в итоге сплавил кучу шестеренок, приведя устройство в нерабочее состояние. Вопрос был только один: почему регулятор не был заменен?

Гугление показало, что найти подобный элемент к конкретной модели очень тяжело. Потому на тот момент было принято решение просто временно вывезти ее на дачу. Но мы не ищем легких путей: я не стал искать новый регулятор, а решил запилить свой. С блекджеком и плюшками.

Изучение статей тут и тут по поводу устройства микроволновых печей показало, что механические микроволновки устроены до безобразия просто:

Цифровая микроволновка из механической - 3

Требования к тому, что должен делать таймер-регулятор (обведен пунктиром на рисунке в центре) весьма просты:

  • Регулировать мощность магнетрона;
  • Засекать время и отключать печь по истечении времени таймера;
  • Издать звук о завершении готовки.

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

Разберем каждый пункт по отдельности:

Регулятор мощности

Регулировать мощность магнетрона невозможно в связи с особенностями его устройства, но каким-то магическим образом мощность в микроволновой печи регулируется. Этих способов два:

  • регулировка времени работы магнетрона, то есть включение и отключение его на некоторое время. Этот способ используется во всех недорогих микроволновых печах с механическим управлением;
  • инверторный, однако мы рассматривать его не будем, так как это относится к дорогим устройствам и в объеме статьи это особо не нужно.

Гугление выдало временные характеристики подобных таймеров:

Цифровая микроволновка из механической - 4

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

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

Цифровая микроволновка из механической - 5

И получив соответственно:

Цифровая микроволновка из механической - 6

Таймер

Тут все просто: отсчитываем время, согласно повороту ручки, и отключаем печь.

Звонок

Без комментариев. Только в электронной версии проще использовать динамик.

Наконец, выяснив все, что необходимо делать с помощью таймера-регулятора, пришел черед разработки. Перебрав несколько вариантов, остановился на использовании Arduino Nano как устройства управления. Многие могут возразить и показать в сторону микроконтроллеров, но я по жизни ленивый и у меня нет ни времени, ни желания заниматься травлей и отмыванием плат, паянием программаторов и т.д., в качестве устройств ввода решено было оставить штатные ручки, чтоб не особо портить внешний вид микроволновой печи. В качестве исполнительного механизма был использован стандартный двухканальный модуль реле для Arduino.

Разработка

Хочу заметить сразу: это было мое первое знакомство с микроконтроллерами и языком программирования семейства «С». Я и раньше писал код, но это был университет, и немного на работе для личных целей (VBA). Также неоднократно читал статьи по микроконтроллерам и приблизительно представлял, что это такое. Но впервые — «руками», так сказать — попробовал здесь.

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

Потому всякие ждущие режимы и т.д. я отмел сразу. И пришел к такой схеме:

Цифровая микроволновка из механической - 7

Как видно, здесь имеется реле, которое включается и отключается платой Ардуино, а также кнопка в обход контактной группы. Работает это все просто: при нажатии на кнопку цепь замыкается и начинает питать плату, плата начинает выполнять программу, которая «подхватывает» с помощью реле питание, и ток идет через контактную группу до тех пор, пока реле не отключится программно.

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

Цифровая микроволновка из механической - 8

Далее я подумал о датчиках, с которых будут сниматься данные о задержке таймера, и величине мощности. Всякие кодовые диски с оптопарами я отмел, так как это все для меня сложновато, да и по большому счету — ненужно. Изучив доступную в сети информацию по ардуино, было принято решение использовать аналоговые входы, а в качестве датчиков — обычные переменные резисторы на 10 кОм.

Цифровая микроволновка из механической - 9

Как в итоге оказалось, они идеально встали после небольшой переделки корпуса от старого таймера. Итоговая схема устройства приблизительно такая:

Цифровая микроволновка из механической - 10

Реализация

Начал я с поиска платы: купил клон Arduino Nano через интернет, потом заказал модуль реле, остальные компоненты были вытащены из ящика с хламом, который стоит под столом. Решил не сильно портить внутренности микроволновки, так как после осмотра понял, что места в передней панели предостаточно, чтобы разместить все необходимое (блок питания на 12В все же не влез).

Цифровая микроволновка из механической - 11

Также решил оставить контакты и разъёмы, чтоб было проще демонтировать в итоге. Чтобы закрепить переменные резисторы, с которых снимаются данные, после размышлений решил использовать корпус от сгоревшего регулятора, предварительно вытряхнув содержимое и оставив только самое нужное: контакты, вал ручки таймера и шестерню ручки управления мощности.

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

Цифровая микроволновка из механической - 12

Далее занялся ручкой: рассверлил вал так, чтоб он туго надевался на ручку переменного резистора, ту же процедуру проделал с шестерней мощности. Все в итоге собралось на удивление хорошо и надежно с первого раза.

Цифровая микроволновка из механической - 13

Далее уствновил кнопку запуска — купил подходящую за 9 грн белого цвета.

Цифровая микроволновка из механической - 14

Цифровая микроволновка из механической - 15

Получив на руки плату, сначала зашел в тупик: как ее закрепить? Отверстия по периметру очень маленькие.

Цифровая микроволновка из механической - 16

Хотелось, чтобы она держалась надежно и при этом ее можно было легко снять. Идею тупо приклеить я откинул, так как мало ли — сожгу ее, а потом отламывай… Пришел к изящному решению с помощью маленьких гвоздей, кусочка мягкого пластика и изоляции от толстого провода:

Цифровая микроволновка из механической - 17

Цифровая микроволновка из механической - 18

Цифровая микроволновка из механической - 19

Цифровая микроволновка из механической - 20

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

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

Цифровая микроволновка из механической - 21

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

Далее были добавлены цепи питания и блок питания на 12В, который запитывал плату ардуино, а также через гасящий резистор — блок реле. Их пришлось развести по питанию в связи с тем, что по непонятным причинам плата перезагружалась при попытке подтянуть оба реле одновременно. В итоге я завел питание, отдельно сняв джампер на блоке реле, который запитывал его непосредственно от ардуино.
После теста всей конструкции в сборе выяснилось, что плата блока питания никаким образом не помещается в панель. Отчаявшись и психанув, я ее замотал волшебной синей изолентой и положил на дно микроволновки. Закрепил дополнительно скотчем, чтобы при переноске не болтался. Блок питания был взят от старого свича 12В 1А, он был исправен, но с перебитым проводом слегка и разломанным корпусом. Ни то, ни другое мне нужно не было, потому он пришелся как нельзя кстати.

Посмотреть на все в сборе можно ниже (блок с реле в кадр так и не попал):

Цифровая микроволновка из механической - 22

Цифровая микроволновка из механической - 23

Программная часть

Программировать я толком не умею, потому если кто может оптимизировать код программы, мною написанный, милости прошу. Буду рад послушать ваши идеи, но, как говориться: «Я художник – я так вижу».

Так как о языках симейства Си я знал только то, что там есть слова void, #include и много скобок, то поначалу у меня получалось с трудом.

Цифровая микроволновка из механической - 24

Все же текст программы родился, и микроволновка заработала как положено. Углубляться в текст программы не буду: ее можно скачать здесь. Поясню лишь принципы.

Поначалу, ознакомившись с синтаксисом, подумал, что все можно будет написать в 4 строчки через задержку delay(), однако в последствии оказалось, что это плохая идея, так как задержка действительно останавливала программу и не реагировала на внешние раздражители, а мне хотелось, чтоб в процессе в любой момент можно было выключить микроволновку поворотом ручки в положение «0». Потому я придумал способ похитрее.

Я использовал функцию millis(), которая возвращает количество миллисекунд с начала работы программы. Замеряя время с начала работы программы в каждой итерации, это время сравнивалось несколько раз с заданными значениями, которые в свою очередь задавались положениями ручек управления. Причем для таймера и мощности эти значения берутся единожды при включении питания, а в цикле самой программы постоянно отслеживается положение ручки таймера: если разряд становятся равным значению от 0 до 4, что близко к нулевому положению ручки, питание выключается.

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

В цикле работы регулятора мощности к значению времени в начале работы прибавляется 30 секунд, и полученное значение постоянно сравнивается с текущим временем. При превышении опять прибавляется 30 секунд и выполняется включение/отключение магнетрона в зависимости от положения, после чего все повторяется снова. Таким образом реализуются 30-секундные интервалы, в которых уже ручка мощности регулирует длительность работы магнетрона.

В результате эксплуатации замечен такой момент: от нажатия на кнопку до «подхватывания» платой питания проходит примерно 2 секунды. Чтоб точно знать, когда можно отпустить кнопку, в начале программы был введен звуковой сигнал после включения реле.

В заключение хочу заметить следующее:

Достоинства подобной конструкции:

— Надежность: минимальное количество движущихся частей способствует тому, что все будет работать долго и надежно.
— Гибкость: в любой момент можно улучшить прошивку и залить ее, просто подключив USB-кабель.
— Ремонтопригодность: все запчасти можно приобрести без особых проблем и недорого.
— Практика в программировании микроконтроллеров.
— Простота конструкции для повторения.

Недостатки:

— Надо тратить время: для кого это хобби, тому этот пункт не покажется особо важным.
— Скорее всего через некоторое время выйдут из строя реле: нагрузка индуктивная, само собой будет искрить и подгорать со временем, но найти реле за 40 грн куда проще, чем механический таймер, который к тому же стоит около 150 грн.
— Запоздалый запуск: при нажатии нужно пару секунд подождать, пока реле «подхватит» питание, при этом тарелка уже крутиться, но это плата за то, что в простое печь ничего не потребляет.
— Нелинейная характеристика переменных резисторов: использовал то, что было в наличии, в итоге пришлось для каждого интервала положений ручки таймера вручную прописывать значения.
— Ручка таймера не возвращается в исходное положение сама: нельзя оценить время, оставшееся до завершения разогрева.

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

Автор: tolkach88

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js