Например TDA7294

Форум РадиоКот • Просмотр темы - Нужна программа на таймер переключения нагрузки.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт дек 26, 2025 02:49:17

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 52 ]  1, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Пн авг 19, 2013 19:01:43 
Открыл глаза

Зарегистрирован: Пн апр 08, 2013 07:56:28
Сообщений: 51
Рейтинг сообщения: 0
Здравствуйте,уважаемые Коты-профессионалы, котята-специалисты и просто радиолюбители!

Снова прошу вашей помощи в реализации моей задачи.
Необходимо написать программу для контроллера PIC16F628A или аналогичный для управления 10-ю нагрузками + 1 управляемый выход для RESET дополнительного устройства.

Работа "Таймера" заключается в следующем:
1) При включении питания на выходе RA3 устанавливается логическая "1" (включение дополнительного устройства),одновременно включается порт RB0(лог. "1"), при этом RB1-RB7,RA0,RA6 ="0"
2)В течение программно установленного времени (1-10часов) порт RB0 включен
3)По истечении времени на выходе RA3 на 5сек. устанавливается лог. "0", одновременно на порту RB0 устанавливается "0", а на порту RB1 - "1".
4)Чере 5 сек. включается порт RA3 и отчет времени для порта RB1 продолжается в течение 1-10 часов.
5)В течение программно установленного времени (1-10часов) порт RB1 включен
6)По истечении времени на выходе RA3 на 5сек. устанавливается лог. "0", одновременно на порту RB1 устанавливается "0", а на порту RB2 - "1"...
И так далее пока не включится последний порт RA6.
По окончании времени на портах RA3 и RA6 устанавливается "0", отчет завершается, на порту RA7 устанавливается лог. "1" (загорается диод)
Таким образом, последовательно, c выходом "RESET" порта RA3 переключаются порты RB0-RB1-RB2-RB3-RB4-RB5-RB6-RB7-RA0-RA6.
Время переключения между портами должно задаваться программно в окне EEPROM при прошивке контроллера от 1 до 10 часов. По умолчанию нужно поставить 6 часов.
Предварительная схема устройства во вложении.

Помогите, пожалуйста!


Вложения:
SD swich.JPG [29.77 KiB]
Скачиваний: 739
SD swich.JPG [41.42 KiB]
Скачиваний: 667


Последний раз редактировалось lucifern Вт авг 20, 2013 12:32:11, всего редактировалось 1 раз.
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Вт авг 20, 2013 03:39:09 
Сверлит текстолит когтями
Аватар пользователя

Карма: 12
Рейтинг сообщений: 38
Зарегистрирован: Вс май 21, 2006 16:07:59
Сообщений: 1230
Откуда: Алтай
Рейтинг сообщения: 0
Бюджет, сроки?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Вт авг 20, 2013 05:50:53 
Друг Кота
Аватар пользователя

Карма: 49
Рейтинг сообщений: 392
Зарегистрирован: Вс июл 12, 2009 19:15:29
Сообщений: 7014
Откуда: Ижевск
Рейтинг сообщения: 0
Для бюджета и сроков есть отдельная ветка.

_________________
Docendo discimus


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Вт авг 20, 2013 07:00:59 
Друг Кота

Карма: 33
Рейтинг сообщений: 213
Зарегистрирован: Ср окт 14, 2009 10:37:49
Сообщений: 3956
Откуда: Украина
Рейтинг сообщения: 0
lucifern писал(а):
...Необходимо написать программу для контроллера PIC16F628A или аналогичный для управления 10-ю нагрузками + 1 управляемый выход для RESET дополнительного устройства...

Смотрите вложение. Проект в Proteus для симуляции и две прошивки. Которая Timer_test.hex - ускоренная, для тестирования. В ней один час длится 30 сек. Вторая - рабочая. Значение количества установленных часов должно быть записано в ячейку EEPROM с адресом 0х00. Если в ячейке число больше 15, то берется по умолчанию 6.
Пара замечаний.
1. Почему обязательно вручную через EEPROM запись времени? Есть свободные выводы в МК, можно организовать установку джамперами. Или одной кнопкой, с контролем по количеству вспышек светодиода.
2. Зачем внешняя логика? Может ее в МК прописать?


Вложения:
Timer_lucifern.zip [10.79 KiB]
Скачиваний: 260
Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Вт авг 20, 2013 12:37:51 
Открыл глаза

Зарегистрирован: Пн апр 08, 2013 07:56:28
Сообщений: 51
Рейтинг сообщения: 0
Цитата:
Пара замечаний.
1. Почему обязательно вручную через EEPROM запись времени? Есть свободные выводы в МК, можно организовать установку джамперами. Или одной кнопкой, с контролем по количеству вспышек светодиода.
2. Зачем внешняя логика? Может ее в МК прописать?


Если можно организовать все эти логические элементы на кристалле одного контроллера, то это будет превосходно! Но только нужно сделать один вход в контроллере для управление с внешнего устройства сигналом CS (лог.1), который как в схеме висит на первой ноге каждого 10 логического элемента.
Алгоритм следующий: 1(SC) 0(pic)=0(вых), 1(SC) 1(pic) =1(вых)
Изображение
Насчет кнопки и диода я тоже думал. Если получится сделать так, то сделайте этот вариант. Установка одного часа - 1 мигание диода, 2 часа- 2 мигания и тд.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Вт авг 20, 2013 15:50:43 
Друг Кота

Карма: 33
Рейтинг сообщений: 213
Зарегистрирован: Ср окт 14, 2009 10:37:49
Сообщений: 3956
Откуда: Украина
Рейтинг сообщения: 0
lucifern писал(а):
Если можно организовать все эти логические элементы на кристалле одного контроллера, то это будет превосходно!

Конечно, можно. Я сделал как в Вашей схеме, внешний сигнал CS воздействует только на те выхода, что и по схеме. Управление реле, светодиод живут своей жизнью, таймер продолжает считать. Если сигнал CS должен как-то влиять на них - опишите подробно.
lucifern писал(а):
Установка одного часа - 1 мигание диода, 2 часа- 2 мигания и тд.

Сделал. Порядок установки:
1. Перед включением питания нажать и удерживать кнопку SET.
2. Подать питание, включен режим установки. В режиме установки таймеры не работают, все выхода, кроме светодиода отключены.
3. Нажатием на SET установить количество часов от 1 до 15 по кругу.
4. Для запуска устройства необходимо отключить и включить питание с отпущенной кнопкой SET.
Во вложении две версии прошивки, Вы уже в курсе.


Вложения:
Timer_lucifern.zip [18.51 KiB]
Скачиваний: 264
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Вт авг 20, 2013 16:36:21 
Открыл глаза

Зарегистрирован: Пн апр 08, 2013 07:56:28
Сообщений: 51
Рейтинг сообщения: 0
Я Вами восхищен! Супер!Спасибо Вам огромное! Теперь дело за малым- всё это собрать воедино в моем железе.Как только всё соберу, запущу, тога уже буду думать что и как должно еще взаимодействовать. Пока буду теорию в практику воплощать ;)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Ср авг 21, 2013 06:37:08 
Открыл глаза

Зарегистрирован: Пн апр 08, 2013 07:56:28
Сообщений: 51
Рейтинг сообщения: 0
Сегодня экспериментировал с железом. Выяснил, что вход CS должен непосредственно подаваться на устройство через контроллер. То есть все то же самое, только контроллер должен на каждый порт после отсчета установленного времени подавать CS сигнал как он есть без участия логических элементов.
Получается, что с порта RA1 сигнал через отсчет времени поступает на порт RB0,RB1...RA6. Контроллер в этом случае выполняет роль шлюза.
Немного необходимо изменить в задержке переключения между нагрузками и RESET:
Так как установка времени отсчитывается в часах, необходимо после окончания отсчета,например отсчиталось 6 часов, поставить задержку в 5 секунд перед выключением порта RA3(транзисторного ключа "RESET") и одновременным переключением в контроллере портов управления нагрузкой.Остальное остается без изменения. Порт RA3 отключается на 5 секунд, в этот момент контроллер с RA1 сигнал CS переключает с порта RB0 на RB1 и тд.
Вот как то так :)
Это возможно сделать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Ср авг 21, 2013 06:45:11 
Друг Кота

Карма: 33
Рейтинг сообщений: 213
Зарегистрирован: Ср окт 14, 2009 10:37:49
Сообщений: 3956
Откуда: Украина
Рейтинг сообщения: 0
lucifern писал(а):
Выяснил, что вход CS должен непосредственно подаваться на устройство через контроллер. То есть все то же самое, только контроллер должен на каждый порт после отсчета установленного времени подавать CS сигнал как он есть без участия логических элементов...
...Немного необходимо изменить в задержке переключения между нагрузками и RESET...

Что-то не въезжаю. Объясните на примере, последовательно расписав алгоритм, как должно работать.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Ср авг 21, 2013 07:13:58 
Открыл глаза

Зарегистрирован: Пн апр 08, 2013 07:56:28
Сообщений: 51
Рейтинг сообщения: 0
Алгоритм:
1) Установка времени от 1-15часов с помощью кнопки SET,перезагрузка, включение ( всё как Вы описали)
2)На контроллер с внешнего исполнительного устройства на порт RA1 поступает сигнал CS. На порту RA3 установлена лог. "1" (Транзисторный ключ включен), одновременно на порт RB0 с порта RA1 поступает сигнал CS.На остальных портах RB1-RB2-RB3-RB4-RB5-RB6-RB7-RA0-RA6 сигнала нет, выходы отключены.
3) Идет отсчет установленного времени(1-15 часов). Все это время порт RA3 включен,на порт RB0 идет CS.
4) Установленное время отсчиталось (1-15 часов), еще в течении 5 секунд контроллер находится в исходном состоянии.
5) По истечении 5 секунд порт RA3 выключается (лог "0"), сигнал с RA1 переключается на RB1. Порт RB0 отключается.
6) Через 5 секунд на порт RA3 подается лог."1" и отсчет времени продолжается уже для установленного следующего порта RB1.
7) Установленное время отсчиталось (1-15часов), еще в течении 5 секунд контроллер находится в исходном состоянии.
8) По истечении 5 секунд порт RA3 выключается (лог "0"), сигнал с RA1 переключается на RB2. Порт RB1 отключается.
И так далее пока не включится последний порт RA6.
По окончании времени на портах RA3 и RA6 устанавливается "0", отчет завершается, на порту RA7 устанавливается лог. "1" (загорается диод)

Получается, что порт RA1 соединяется последовательно шлюзом через контроллер с портами RB0-RB1-RB2-RB3-RB4-RB5-RB6-RB7-RA0-RA6 Через него сигнал CS должен проходить без изменения от внешнего исполнительного устройства к 10-ти управляемым нагрузкам.


Последний раз редактировалось lucifern Ср авг 21, 2013 07:47:01, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Ср авг 21, 2013 07:28:22 
Друг Кота

Карма: 33
Рейтинг сообщений: 213
Зарегистрирован: Ср окт 14, 2009 10:37:49
Сообщений: 3956
Откуда: Украина
Рейтинг сообщения: 0
lucifern писал(а):
Алгоритм:

Что нужно изменить так и не понял. Все так и сделано в последней прошивке, кроме п.4, смысл которого мне вообще непонятен. То есть отсчитали 6 часов, а затем еще 5 сек ничего не меняя? Или что означает "еще в течении 5 секунд контроллер находится в исходном состоянии"? Какой смысл в 6 часах и 5 сек? погрешность без применения кварцевого резонатора будет больше...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Ср авг 21, 2013 07:40:57 
Открыл глаза

Зарегистрирован: Пн апр 08, 2013 07:56:28
Сообщений: 51
Рейтинг сообщения: 0
Изменить нужно -убрать внутри контроллера по выходу логический элемент "И", и сделать переключение между портом RA1 и портами RB0-RB1-RB2-RB3-RB4-RB5-RB6-RB7-RA0-RA6 напрямую без потери формы и вида сигнала который приходит на порт RA1 от внешнего устройства.
Насчет пункта 4) - верно....Без кварца получится большой разброс.
Тогда необходимо сделать еще один выход в контроллере,который после истечении установленного времени включался на 5 секунд, отключался, и после него уже происходило отключение порт RA3 и переключение выходов RB0-RB1-RB2-RB3-RB4-RB5-RB6-RB7-RA0-RA6.
Нюанс еще такой , что выходы должны отключаться от RA1 не подключаясь к лог. "0"


Последний раз редактировалось lucifern Ср авг 21, 2013 07:44:22, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Ср авг 21, 2013 07:42:59 
Друг Кота

Карма: 33
Рейтинг сообщений: 213
Зарегистрирован: Ср окт 14, 2009 10:37:49
Сообщений: 3956
Откуда: Украина
Рейтинг сообщения: 0
lucifern писал(а):
...Причем выходы у контроллера необходимо отключать как от логического "0" так и от "1".

А это как понимать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Ср авг 21, 2013 07:48:13 
Открыл глаза

Зарегистрирован: Пн апр 08, 2013 07:56:28
Сообщений: 51
Рейтинг сообщения: 0
выходы должны отключаться от RA1 не подключаясь к лог. "0" (если это возможно,если нет, то садить на "0")


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Ср авг 21, 2013 07:53:28 
Друг Кота

Карма: 33
Рейтинг сообщений: 213
Зарегистрирован: Ср окт 14, 2009 10:37:49
Сообщений: 3956
Откуда: Украина
Рейтинг сообщения: 0
lucifern писал(а):
Изменить нужно -убрать внутри контроллера по выходу логический элемент "И", и сделать переключение между портом RA1 и портами RB0-RB1-RB2-RB3-RB4-RB5-RB6-RB7-RA0-RA6 напрямую без потери формы и вида сигнала который приходит на порт RA1 от внешнего устройства.

А чем Вам не нравится элемент И? Он ведь выполняет то, о чем Вы пишете. Что значит без "потери формы"? С чего ей теряться, это цифровой сигнал или 1 или 0. Устройство на данном этапе в этой части работает именно так, как Вы описываете. Что в этом вопросе надо изменить я не понимаю.
lucifern писал(а):
Тогда необходимо сделать еще один выход в контроллере,который после истечении установленного времени включался на 5 секунд, отключался, и после него уже происходило отключение порт RA3 и переключение выходов RB0-RB1-RB2-RB3-RB4-RB5-RB6-RB7-RA0-RA6.

То есть, отсчитали 6 часов, на 5 сек на дополнительном выходе устанавливается 1, затем, через эти 5 сек отключается RA3, переключаются выходы и еще через 5 сек включается RA3?
lucifern писал(а):
выходы должны отключаться от RA1 не подключаясь к лог. "0" (если это возможно,если нет, то садить на "0")

То есть в 3-е состояние? Или логическая 1 или 3-е состояние? А как же "без потери формы"?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Ср авг 21, 2013 07:55:52 
Открыл глаза

Зарегистрирован: Пн апр 08, 2013 07:56:28
Сообщений: 51
Рейтинг сообщения: 0
Soir писал(а):
lucifern писал(а):
Алгоритм:

...Все так и сделано в последней прошивке...

У Вас по выходу работает логический элемент "И" 1 1 =1, 1 0=0, вот его и надо убрать, чтобы просто соединять последовательно один порт с 10-тью выходами с помощью контроллера.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Ср авг 21, 2013 08:00:54 
Друг Кота

Карма: 33
Рейтинг сообщений: 213
Зарегистрирован: Ср окт 14, 2009 10:37:49
Сообщений: 3956
Откуда: Украина
Рейтинг сообщения: 0
lucifern писал(а):
чтобы просто соединять последовательно один порт с 10-тью выходами с помощью контроллера.

Так все и происходит. Когда на RA1 1, на активном выходе 1, когда 0 то 0. Что не так?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Ср авг 21, 2013 08:05:20 
Открыл глаза

Зарегистрирован: Пн апр 08, 2013 07:56:28
Сообщений: 51
Рейтинг сообщения: 0
Цитата:
А чем Вам не нравится элемент И? Он ведь выполняет то, о чем Вы пишете. Что значит без "потери формы"? С чего ей теряться, это цифровой сигнал или 1 или 0. Устройство на данном этапе в этой части работает именно так, как Вы описываете. Что в этом вопросе надо изменить я не понимаю.


По этому порту идут данные от внешнего устройства, вот эти данные и нужно подать без потерь с порта RA1 на 10 выходов последовательно,переключаясь между ними через установленное время. Логические 1 и 0 тут уже не нужны. Отпадает и логический элемент "И". Нужно сделать просто шлюз между портами,который бы переключался с одного на другой.

Цитата:
То есть, отсчитали 6 часов, на 5 сек на дополнительном выходе устанавливается 1, затем, через эти 5 сек отключается RA3, переключаются выходы и еще через 5 сек включается RA3?


Отсчитали 6 часов(к примеру), на 5 сек на дополнительном выходе устанавливается 1, затем, через эти 5 сек на дополнительном выходе устанавливается 0 ,отключается RA3, переключаются выходы и еще через 5 сек включается RA3

Цитата:
То есть в 3-е состояние? Или логическая 1 или 3-е состояние? А как же "без потери формы"?

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Ср авг 21, 2013 08:13:33 
Открыл глаза

Зарегистрирован: Пн апр 08, 2013 07:56:28
Сообщений: 51
Рейтинг сообщения: 0
В общем идея такая :)
Нужно с исполнительного устройства перенести данные без потерь на 10 других устройств.
Контроллер производит переключение между этими 10-ю устройствами по одному порту данных.Чтобы исполнительное устройство не зависло, его мы перезагружаем, переключаемся с первого приемного устройства на второе и последующие устройства. Дополнительный выход нужен для того, чтобы сэмитировать автосохранение данных на первом устройстве перед перезагрузкой исполнительного. Таким образом, мы исключаем возможность потери данных за период сохранения информации от 1 до 15 часов. Вот как то так в двух словах


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Нужна программа на таймер переключения нагрузки.
СообщениеДобавлено: Ср авг 21, 2013 08:54:39 
Друг Кота

Карма: 27
Рейтинг сообщений: 1283
Зарегистрирован: Ср фев 11, 2009 20:35:58
Сообщений: 7853
Рейтинг сообщения: 0
lucifern
Нарисуйте временную диаграмму и всем станет понятно.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 52 ]  1, ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y