Технические форумы > Arduino

Антенный комутатор на Arduino

<< < (3/3)

Груженый:
COM-порт (и не обязательно он, может и USB-TTL конвертер) будет подключен в любом случае - рулить дистанционно ж надо. Блокировать надо для защиты от непосредственного переключения, когда оператора нет дома, а мышка может мимо пробежать, да хвостиком и махнуть.

В идеале еще бы от трансивера инфу получать, с разъема CAT, в зависимости от диапазона подключать ту или иную антенну (есть такая фишка Band Data). Но это уже опции. Тут хотя бы базовый функционал реализовать.

Sam:
Для начала нужна блок-схема и алгоритм.

Груженый:
Прошло два месяца...
Основной функционал прошивки написан, остался небольшой вопрос с реализацией сохранения состояния переключателя (какая антенна была включена последней) после выключения питания.
Базовая схема выглядит так:


Управляющая программа на C#, в принципе, написана, необходимо доработать напильником необработанные исключения (чтоб не молча падала, а говорила об ошибке)
Подробнее почитать тут: https://unlis.ru/?p=1944


Прошел еще месяц...
По подсказкам знающих людей была добавлена прием/передача данных по USART с контрольными суммами CRC, реализован ответ от контроллера на команды от ПК, сделана попытка сохранять данные только при потере питания программно-аппаратным способом.
Схема чуть изменилась:


Управляющую программу еще не переписывал, так как писать на C# в среде WinForms для меня оказалось сложнее, чем на C под AVR.
Подробнее почитать тут: https://unlis.ru/?p=1984


В планах:

* Нормально проработать вопрос сохранения состояния переключателя в EEPROM
* Подумать (реализовать?) над механизмом защиты от включения двух реле одновременно (по USART можно послать такую команду)
* Придумать как питать реле напряжением 24 в без геморроя
* ...anything else
* Ну и, конечно же, собрать все в железе.
* ...выкинуть и поставить галетник ;D

Груженый:
Приехало обновление - версия прошивки 1.4

Схему чуть изменил:




* В EEPROM теперь пишется каждый раз, когда происходит переключение антенны. Пишется по кольцу, предыдущее затирается FF, адресации нет, адрес ячейки с нужными данными определяется при старте программы путем перебора на значение != 0xFF, далее при работе программы инкрементится.
* Естественно, выкинут супервизор и остальная головная боль
* Применена микросхема драйвера для реле вместо транзисторных ключей
* Питание всей схемы осуществляется от встроенного БП (на схеме не показан)
* Черт с ней, с оптронной развязкой. В R-Quad нет, а че я - хуже что ли?
Но все равно что-то в коде мне не нравится....

Навигация

[0] Главная страница сообщений

[*] Предыдущая страница

Перейти к полной версии