751

Пишем программу для утюга на ассемблере

Серия Хобби

Пост носит сугубо техническо-юмористический характер, прошу всерьёз не воспринимать, а то были прецеденты


Всем привет! По причине того, что я имею официальный диагноз "Оператор ЭВМ", многие знакомые или родственники часто обращаются ко мне с просьбой что-нибудь починить. Ну, например, отвлечься от сортировки трёхмерных массивов, и сделать наконец-таки что-нибудь полезное для родины. Например, мультиварку или утюг. Но, чтобы это не было скучно, давайте попробуем написать исходный код для обыкновенного утюга. Для эстетичности и ради культурной ценности писать мы его будем на ассемблере.

Далее следует техническое описание, кому оно не интересно, а хочется сразу посмотреть результат, можете промотать до фотки с утюгом.

Ассемблер для AVR основан на RISC-архитектуре, что значительно позволяет упростить программу. Выберем микроконтроллер Attiny13, и напишем под него самую примитивную программу из возможных:

Чтобы не быть голословным, данная программа не задействует ОЗУ, а лишь устанавливает контроллер в конкретный режим работы. Далее я объясню, почему так.

Режим работы и данная программа весьма проста. Её можно выразить одним условием:
ТЕМП < K ? А : Б

Где темп - температура с датчика (напряжение на входе АЦП), к - требуемая константа температуры, а - состояние нагрева утюга, б - состояние охлаждения утюга

Аналогичная конструкция применяется в различных бойлерах, мультиварках, плойках и прочих устройствах, имеющих тысячи разновидностей. В таком виде я её впервые увидел в фирменном бойлере фирмы ARISTON.

У людей, более-менее знакомых с темой сразу же возникнет два вопроса:

По сути дела, данные устройства при использовании в этой задаче эквивалентны. Но имеется ряд отличий:

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

- В данном включении наша ATTINY13 действительно ничем не будет отличаться от обычного компаратора LM339. Отличия проявляются лишь в возможности изменения константы K (вот эта строчка):

LM339 тоже поддерживает аппаратное изменение, для этого устанавливается обычный потенциометр на второй вход сравнения компаратора. Однако, например, в случае необходимости применения термопрофиля в качестве альтернативы МК практически отсутствуют варианты. Т.е. тут мы можем численно задать эту константу, и менять её при помощи внешних средств. Чтобы сделать подобное без микроконтроллера, платы будут очень громоздкими.

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

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

Вернёмся к утюгу. Наша программа имеет 5 "субрутин", не записывает и не читает ничего из ОЗУ, даже не инициализируется стек. По причине того, что она весьма линейна.

preset - установка режима работы контроллеров. Записываем параметры в регистры управления.
adc_start - начало преобразования АЦП (напряжение в значение регистра)
wait - ожидание снятия флага преобразования. Флаг снимается, когда преобразование завершено.
compare - сравнение констант. Данные с АЦП пишутся в регистр, константа также пишется в регистр и происходит их сравнение (в данном случае - ветвление) brsh - branch if same or higher, то есть переход, если в АЛУ установлен флаг C
enable - ветка, в которую мы попадаем, либо не попадаем. Включает ТЭН.

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

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

Программа готова, прошьём контроллер:

Далее испытаем работоспособность схемы на макете. Вместо терморезистора (его видно в пакетике) для испытаний стоит крутилка из предыдущих проектов:

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

Далее установим терморезистор в область ТЭНа:

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

Ну вот, собственно говоря, и всё. Пост писал Kekovsky для pikabu.ru

IT-юмор

7.1K постов53.2K подписчиков

Правила сообщества

Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору

Вы смотрите срез комментариев. Показать все
48
Автор поста оценил этот комментарий

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

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

раскрыть ветку (37)
48
DELETED
Автор поста оценил этот комментарий

А ты чего хотел делать с утюгом? о_О

раскрыть ветку (9)
22
Автор поста оценил этот комментарий

Ну хрен его знает...

Например, поставить кому нибудь на спину и включить...


Кстати, не раз встречал в интернете, как народ на утюгах мелкие платки паяет.

Так себе идея, конечно.


А вообще, если хочется что то автоматизировать... Даю идею.

Самовар на дровах, сверху, как положено - сапог для раздувания.

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

Это, конечно, не наливатор, но наливаторов наделали много, а вот такого  самовара ни разу не видел...

раскрыть ветку (7)
5
Автор поста оценил этот комментарий
Не видел потому, что это по-другому называют. Так автоматизируют пеллетные котлы - управляют наддувом ("сапог") и подачей пеллет. А греют воду, так что вполне себе "самовар".
раскрыть ветку (6)
4
Автор поста оценил этот комментарий

Очень похоже, прям близнецы.

От сапога можно хайп словить, как от наливатора, а что от котла?

Одна вода, никакого хайпа...

Иллюстрация к комментарию
Иллюстрация к комментарию
раскрыть ветку (5)
2
Автор поста оценил этот комментарий

с точки зрения автоматизации регулирования-то в чём разница?

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Приводы разные.

Но это уже сторона исполнительных механизмов.

0
Автор поста оценил этот комментарий
Хм, а можно же турбонаддув прикрутить к самовару
0
DELETED
Автор поста оценил этот комментарий

И не говори - бездушная машина!

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Бессапожная, если говорить точнее.

1
синий
Автор поста оценил этот комментарий

Конкретно таким с гладкой подошвой без дыр можно парафин на лыжи/доски наносить. Правда для этого вполне хватит этой схемы.

7
Автор поста оценил этот комментарий
ПИД-регулятор, вполне реализуется программно
раскрыть ветку (24)
0
Автор поста оценил этот комментарий

А есть непрограммный ПИД? О_о

раскрыть ветку (5)
0
Автор поста оценил этот комментарий
Иллюстрация к комментарию
раскрыть ветку (4)
1
DELETED
Автор поста оценил этот комментарий

А в нём разве не МК сидит? С программным то пидом?

Судя по индикации и кнопкам то да..
1
Автор поста оценил этот комментарий

В котором трудится атмега с программным ПИДом

раскрыть ветку (2)
0
DELETED
Автор поста оценил этот комментарий

Теоретически на транзисторах можно построить аппаратный PID-регулятор. Но принцип его функционирования всё равно будет "программный" частично.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Ох и затейник вы, батюшка

Автор поста оценил этот комментарий

Реализуем.

Некоторые даже утверждают, что они на утюге термопрофиль выдерживают.

Вы верите?

Я почему то нет...

раскрыть ветку (17)
5
Автор поста оценил этот комментарий

А почему он не должен выдерживаться? Настраивать надо...

раскрыть ветку (16)
3
Автор поста оценил этот комментарий

Угу, настраивать.

Не подскажите, как настроить так, что бы спад температуры был побыстрее, чем при полном отключении напряжения?

Вот и я не подскажу...

раскрыть ветку (15)
6
Автор поста оценил этот комментарий
Не подскажите, как настроить так, что бы спад температуры был побыстрее, чем при полном отключении напряжения?
так полярность же поменять!
раскрыть ветку (2)
3
Автор поста оценил этот комментарий

Фазу же. Тут же переменка.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Диодный мост устранит эту преграду

5
Автор поста оценил этот комментарий
амаяк акопян давно все объяснил - надо дунуть
раскрыть ветку (6)
Автор поста оценил этот комментарий

На утюг довольно долго дуть придется...

раскрыть ветку (5)
1
Автор поста оценил этот комментарий
если надо быстро - дунуть сильнее
раскрыть ветку (4)
0
Автор поста оценил этот комментарий

Все таки лучше вернуться к самовару с сапогом.

Там даже для дутья девайс есть...

раскрыть ветку (3)
0
Автор поста оценил этот комментарий
дунуть сильнее - подать газ под давлением. даже 6 атмосфер воздуха, скажем, 300 литров в минуту, при выходе в атмосферу сильно охлаждаются. надо лишь выход сделать в утюге
раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Не дешевле будет купить туннельную печь?

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Это - никак. А вот если постоянную времени подобрать и коэффициенты регулятора - можно получить поддержание постоянной температуры без или с минимальными колебаниями. Собственно, для этого ПИД-регулятор и создан.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Для этого и использую :)

0
Автор поста оценил этот комментарий
Не подскажите, как настроить так, что бы спад температуры был побыстрее, чем при полном отключении напряжения?

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

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Я специально с тонкой жестянкой выбирал.

Минус - заметно плавает температура по площади, плюс - быстро на режим выходит.

Ставлю обычно 220-240 и паяет помаленьку.

раскрыть ветку (1)
2
Автор поста оценил этот комментарий
тоже паяете утюгом?)
Иллюстрация к комментарию
1
Автор поста оценил этот комментарий

Вот из другой темы, с расчетами Нижний подогрев из утюга.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Угу, страшная вещь.

Я даже пытался прочитать, но так и не нашел ни слова о времени выхода на режим.

Опять же - для нижнего подогрева термопрофиль не нужен.


Кстати, мелкие штуки паять на паяльном столе можно и без термопрофиля, просто на фиксированной температуре.

Но именно что мелкие и не сильно ответственные.

Сам сажую светодиоды на звезды-радиаторы, иногда с дополнительными элементами, на подобном.

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

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества