Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

Коммутатор на МК (написать прошивку)

Пн июл 11, 2016 01:19:03

Здравствуйте!
Прошу помощи программистов, для которых моя проблема вызовет улыбку.
Нужна прошивка на любой из МК серии 12F629; 12F675 или Attiny 13.
Задача в следующем. Одним входом управляется 4 выхода.
1.На вход №1 МК подается логическая единица, на выходе №1 появляется лог. единица.
2.На вход №1 МК подается лог. ноль, на выходе №1 появляется лог. ноль.
3.На вход №1 МК подается логическая единица, на выходе №2 появляется лог. единица.
4.На вход №1 МК подается лог. ноль, на выходе №2 появляется лог. ноль.
5.На вход №1 МК подается логическая единица, на выходе №3 появляется лог. единица.
6.На вход №1 МК подается лог. ноль, на выходе №3 появляется лог. ноль.
7.На вход №1 МК подается логическая единица, на выходе №4 появляется лог. единица.
8.На вход №1 МК подается лог. ноль, на выходе №4 появляется лог. ноль.
И так по кольцу. В случаях пропадания питания МК должен помнить на каком порту выхода он остановился, чтоб продолжить с того же места.
Для чего это надо. Приобрел 4 потолочных инфракрасных обогревателя по1,3кВт каждый в гараж, чтоб зимой поддерживать заданную температуру. Так вот надо, чтоб они включались по очереди. Устройство, которое следит за температурой у меня есть. Время, задающее интервал включения в устройстве тоже есть. Пробовал собирать на счетчике ИЕ9 присутствуют недостатки: управлять надо импульсами и не запоминает конечное положение после пропадания электричества.
Вся эта затея, чтоб у обогревателей был одинаковый моторесурс износа.

Re: Коммутатор на МК (написать прошивку)

Пн июл 11, 2016 13:24:12

Могу написать.
Протеус у вас есть ? если нет ставьте.
Будете в нем проверять, правильность логики работы.
В архиве проверочная схема работы логики.
Кнопка имитирует сигнал на входе, нажата высокий уровень.
Светодиоды наглядно показывают состояния выходов.
for.rar
(6.54 KiB) Скачиваний: 253

Если логика работы верная, то тогда допишу сохранение состояния при пропаже напряжения и дорисую нужные для этого компоненты на схеме.
Последний раз редактировалось Enigm Пн июл 11, 2016 14:10:42, всего редактировалось 1 раз.

Re: Коммутатор на МК (написать прошивку)

Пн июл 11, 2016 14:10:35

Протеус есть, уже стоит! Я имею в виду Протеус.

Re: Коммутатор на МК (написать прошивку)

Пн июл 11, 2016 14:17:42

Входной сигнал управления, он надеюсь стандартный логический ? или нет ?
Так же как вы будете запитывать микроконтроллер, отдельно или уже есть готовое для него напряжение
И последний пока вопрос.
При первом старте и после аварийного отключения питания, на входе всегда будет 0 или возможна и единица ?
Последний раз редактировалось Enigm Пн июл 11, 2016 15:33:46, всего редактировалось 1 раз.

Re: Коммутатор на МК (написать прошивку)

Пн июл 11, 2016 14:33:04

Имхо это конечно хорошо, но вы серьезно про "моторесурс"? Сдается, при нерегулярных отключениях эл-ва и связанном с этим запуске цикла "с нуля", влияние неравномерного использования т.н."моторесурса" будет ничтожно на фоне реального разброса "времени жизни" нагревателей по иным производственным и эксплуатационным причинам.
Максимализм, однако :)
Vell65 писал(а):Протеус есть, уже стоит! Я имею в виду Протеус.

Похвально! :)))
Последний раз редактировалось conler Пн июл 11, 2016 14:37:30, всего редактировалось 1 раз.

Re: Коммутатор на МК (написать прошивку)

Пн июл 11, 2016 14:35:23

Это да странновато про моторесурс.
Но если уж так человеку хочется то ладно ))

Re: Коммутатор на МК (написать прошивку)

Пн июл 11, 2016 14:54:09

Не издеваюсь :) , если несколько утрировать пожелания, то при использовании контроллера актуально отслеживать и выравнивать "моторесурс" с учетом напруги сети, разницы температур внутри/снаружи и иных факторов, влияющих на "*". Тогда будет реальный толк не только от моторесурса, но и от вычислительных возможностей МК.
...мнение заказчика - закон! :)

Re: Коммутатор на МК (написать прошивку)

Вт июл 12, 2016 04:33:42

В общем вот вам прошивка и схема.
Схема
Изображение
Прошивка
komut.rar
(1.26 KiB) Скачиваний: 244

Выходные каскады сами уже доделаете.
Кнопка нужна для сброса запомненного состояния(если не нужно можно не ставить.)
Работает сброс так. отключаете питание, дожидаетесь разряда конденцатора.
Потом зажимаем кнопку и подаем питание, ждем секунду и можно выключать, все память сбросилась.
Диод желательно шотки, или диод как можно с меньшем падением напряжения.
И да у меня чуток изменен алгоритм, после прерывания питания, при следующем запуске, стартанет не тот канал на котором пропало питание, а следующий за ним.
Если принципиально что бы стартовало с того же что и остановилось то пишите переделаю.
Будут вопросы задавайте.

Re: Коммутатор на МК (написать прошивку)

Вт июл 12, 2016 06:26:26

Насчет "моторесурса" также решаемо только там условия задачи должны измениться - окромя программного переключателя нагрузки (текущая задача) должен быть еще и элемент совпадения для управления нагревателем и обратная связь от того элемента на переключатель - считаем реальное время работы по каждому элементу.
Как частный случай и так как есть сойдет - это в случае, если переключатель всего лишь распределяет управление по секциям. Но тогда счетчик времени по активному входному сигналу ставить надо с условием переброса выхода по исчерпании времени, выделенного на работу каждой из секций. Т.Е. МК переключателя выполняет роль "проходного элемента управления" с управлением не кнопкой, а активным сигналом с терморегулятора плюс внутреннее реле времени и счетчик активного состояния по каждой из секций.
8)

Re: Коммутатор на МК (написать прошивку)

Вт июл 12, 2016 08:37:14

Парни, про моторесурс высказываетесь всё правильно. Как предлагает conler вообще в идеале но это из области недосягаемости для меня, как предлагает BOB51 учитывать время работы каждого канала на включение и перераспределять его между нагрузками скорее всего под силу многим программистам и вполне осуществимо, но это уже будет наверное другой МК. Изначально схема строилась вот так:
Управление ТЭНами попарно.JPG
(105.54 KiB) Скачиваний: 529

Enigm: первый вариант проверил всё работает, сейчас поправлю схемку в Протеусе, чтоб заработал второй вариант. После пропадания электричества вполне логично, что включится последующий обогреватель, переделывать не надо. Кнопку сброса памяти не надо, а вот если свободный порт задействовать для возможности включения сразу пары обогревателе былоб очень здорово. Смысл в следующем. Сейчас каналы включаются по очереди, в полне возможно понадобиться в дальнейшем включать их по очереди парно в зависимости от минуса на улице. Для этого в своей схеме с счетчиком ИЕ9 предусмотрел разъем Х1 на котором устанавливал бы перемычки для парного включения обогревателей. Например 1 и 3; 2 и 4. Только вот надо будет посмотреть, чтоб не перегрузить порт при парном включении оптопар.

Уважеемый Enigm второй вариант прекрасно работает.

Re: Коммутатор на МК (написать прошивку)

Вт июл 12, 2016 13:40:05

А как бы и нет свободного вывода. 4 выхода, 1 вход управления, 1 вход слежения за напряжением, итого 6 выводов заняты.
Я кнопку сброса повесил на слежение за напругой,(делитель до диода стоит ) при старте контроллера та будет 1 так как есть питание и потоим мы эту еденицу отслеживаем, как только появится 0 сразу же пишем данные в память.
А при нажатой кнопке и при старте будет ноль, мы его ловим и обнуляем память.
Так что доп входов нету.
Кстати прошивка и в 629 пике должна работать.
Не забывайте про калибровочную константу, хоть она в этом устройстве и не нужна, но мало ли для чего вам может понадобиться я этот контроллер потом.

Re: Коммутатор на МК (написать прошивку)

Вт июл 12, 2016 14:24:55

Enigm огромное спасибо за помощь и подсказки. Все доходчиво и понятно. А главное по существу :beer:

Re: Коммутатор на МК (написать прошивку)

Вт июл 12, 2016 16:01:05

В принципе если не нужен сброс, то можно вместо сброса делать переключение режимов.
Так что как будет настроение допишу еще один режим.
Но режимы придётся переключать в ручную, автоматом не выйдет ног нет свободных
Вот набросал на 2 корпусах обычной логики, переключатель режимов, можно и так сделать.
komutat.rar
(16.2 KiB) Скачиваний: 231

Re: Коммутатор на МК (написать прошивку)

Ср июл 13, 2016 00:42:48

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

Re: Коммутатор на МК (написать прошивку)

Ср июл 13, 2016 01:34:20

Да любая логика пойдет, скоростей у вас нету, разве что глянуть по нагрузке на выходе, а так хоть ТТЛ хоть КМОП.
Единственное не берите выхода с открытым коллектором, иначе придётся резисторы дополнительные вешать.

Re: Коммутатор на МК (написать прошивку)

Пн июл 18, 2016 09:22:23

Enigm, здравствуйте. Собрал на макетке, в Протеусе все три прошивки работают адекватно. На макетке стартует два нажатия (лог.1 на 4 ногу 12F629) правильно, а потом как попало переключаются и светодиоды не гаснут. Может надо правильно биты конфигурации при прошивки прописать? Пробовал все три прошивки. Константу сохраняю.
12F629.png
(87.75 KiB) Скачиваний: 514

Re: Коммутатор на МК (написать прошивку)

Пн июл 18, 2016 12:30:00

Попробуйте этой прогой прошить PICPgm Programmer она сама фюзы из прошивки берет константу сохраняет да и удобнее конроллеры сама определяет.
Если не поможет , прошью дома 675 гляну.
И это входные импульсы какие ? четкие ?
Если вы в ручную моделируете входной сигнал то ставьте кнопку с конденсатором 0.1мк параллельно кнопки , возможно из за дребезга контактов себя так ведет.
У нас же вход прямой и анти дребезг не предусмотрен.
Самое простое , соберите на обычной логике генератор на 1 герц и проверьте.

Re: Коммутатор на МК (написать прошивку)

Пн июл 18, 2016 14:08:20

IC-Prog шил неоднократно тоже биты конфигурации берет с прошивки. Все дело в том, что ели кнопку удерживать больше 5 сек светодиоды загораются и не гаснут, сбивается порядок работы алгоритма программы. После сброса по питанию все повторяется, первые две команды проходят нормально, а далее закономерный хаос. Может попробовать прошить 675, а то работал с 629? Про дребезг в курсе, проблема в чем-то другом.

Re: Коммутатор на МК (написать прошивку)

Пн июл 18, 2016 16:29:07

Как освобожусь гляну, у меня есть 675 камень на нем проверю.

Re: Коммутатор на МК (написать прошивку)

Пн июл 18, 2016 19:27:22

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