Электроника и радиотехника => Цифровая техника => Тема начата: Slabovik от 24 Янв., 2024, 18:10
Название: Тинька и Кнопка
Отправлено: Slabovik от 24 Янв., 2024, 18:10
Доброго вам!
Сейчас как-то вопрос сформировался на базе этой темы (https://anklab.ru/forum/index.php?topic=197.0) К теме он конечно привязан, но мне видится, вопрос более универсален. Суть заключается в том, чтобы имея одну кнопку для нажимания :) которая имеет единственный контакт на замыкание и не имеет фиксации (например, типовая тактильная кнопка), заставить её выполнять некий функционал, применительно к той теме, включать и выключать блок питания.
На мой взгляд, желаемый алгоритм для одной кнопки:
Обеспечение питанием: дежурное напряжение, присутствует всегда при включенном силовом выключателе (ну и напряжении в розетке)
При подаче питания блок должен гарантированно оставаться в состоянии "Выключено".
Питание подано.
1. Блок питания выключен:
a) Короткое нажатие - ничего не происходит. б) Длинное нажатие - блок включается. в) Удержание - блок включается, затем выключается. В выключенном состоянии находится до того, как кнопка будет отжата и затем не произойдёт длинное нажатие.
Можно ввести учёт сигнала "AC Power Good" и "PowerGood". Наличие "AC PowerGood" может являться условием для включения, а пропадание "PowerGood" признаком необходимости выключения.
Если взять Тиньку, то у неё восемь ног из которых две - питание. Итого шесть портов. Один порт для кнопки. Один порт для управляющего выходного сигнала. Укладываемся :)
Название: Re: Тинька и Кнопка
Отправлено: zenon от 24 Янв., 2024, 20:53
Тут сразу внутренняя лягушка негодует, и говорит ещё надо порт на измерение температуры и порт на шим вентилятора. :)
Название: Re: Тинька и Кнопка
Отправлено: Slabovik от 24 Янв., 2024, 22:05
Это мы посчитаем, но и перегружать не надо. Сейчас задача - разобраться с диаграммами и общим алгоритмом работы. Пока нарисую, но предложения о том, как это можно сделать - это с вниманием :)
Название: Re: Тинька и Кнопка
Отправлено: zenon от 24 Янв., 2024, 22:32
Проверка пина раз в 10-50 мсек, счетчик если пин внизу, увеличиваем до тех пор пока не отожмётся, проверка отжатия, -> результат длинное/короткое нажати, пауза... повтор. Как-то так делал для кнопок на вольтметре, ничего правда не рисовал, придумывал на ходу. :) ы. Ну и ещё нам надо, чтобы тинька знала, включен блок или выключен, в зависимости от этого - действие.
Название: Re: Тинька и Кнопка
Отправлено: zenon от 28 Янв., 2024, 18:41
На старой макетке сообразил схему, код малость корявый кое-где, надо бы покрасивее, помощь не помешает. Работает так https://youtu.be/CZx2pOhqQfk?si=zYbhuVRFhl1_qL9D Кнопка и ШИМ. ↓ спойлер ↓
[свернуть]
Не реализовано плавное увеличение оборотов в зависимости от температуры. Прерывание ADC используется и для инкремента переменной ttms. Термистор в верхнем плече делителя, нижний резистор 10 кОм. Файлик калькулятора найден на просторах.
:: добавлено 29 Янв., 2024, 14:17 Вот такое управление вентилятором получилось: value тут значение полученное с АЦП. Надо внедрение выключения по перегреву придумать.
Название: Re: Тинька и Кнопка
Отправлено: zenon от 01 Фев., 2024, 23:38
Как-то так. https://youtu.be/AGyT6PhjzWM Исходник, можно было все флаги битывыими сделать, было бы компактнее, но и так помещается, 850 байт. При перегреве выключается, температуру поставил ~51 (800), посмотрю как вести себя будет. Схема, плата https://github.com/minamonra/MKiCadPro/tree/main/Power/tiny13butfan
Название: Re: Тинька и Кнопка
Отправлено: zenon от 05 Фев., 2024, 12:38
Дополнил код в соответсвии с алгоритмом нажатий из первого поста.
Название: Re: Тинька и Кнопка
Отправлено: Slabovik от 05 Фев., 2024, 12:57
Диаграмму состояний не составлял?
p.s. да, я что-то тормознул... но были причины, уж извините...
Название: Re: Тинька и Кнопка
Отправлено: zenon от 05 Фев., 2024, 13:26
Не, не составлял. Что-то пошло не так. Добавил в условие длинного нажатия а не учёл, что по этому куску кода мы пробегаемся часто, и получается не то, что хотел. Если оставить poweroff() на короткое и poweron() на длинное, всё хорошо.
:: добавлено 05 Фев., 2024, 20:08 В общем либо так оставлять, либо переделать так, чтобы кнопка срабатывала только один раз, без повторов.