Управление и передача данных по UART

Всем привет уважаемые! Возник у меня вопрос по управлению и чтению информации с одного устройства и вывода этой инфы на экран другим устройством по UART. В начале об устройстве первом: Автомат аэрации воды. Из скважины на атмеге8 и датчиках уровня воды поплавковых. Следит за уровнем воды в первой емкости, как воду разобрали, накачивает скважный насос, по окончанию включает насос циркуляционный и гоняет воду по кругу через эжектор Вентури по таймеру, для аэрации. После отстаивание воды по таймеру и подача воды во вторую емкость для разбора воды в дом на хоз.нужды.
2ое устройтво, атмега328 и экран с 3 кнопками, HC-12.
По факту хочу читать/писать 2ым устройством:

  • сколько времени прошло по таймерам в процессе выполнения задачи и вывод времени и статусов выполнения на экран
  • задавать пороги по времени работы задач на первом.
    Связь по UART с применением HC-12. Вопрос есть ли что то готовое, библиотека какая, посмотрел в сторону Modbus RTU возможно слишком круто для моих задач, нужен ваш совет.

ИМХО, всё специфическое нужно писать самому.
Из библиотек тут только UART, наверное, пригодится.

Кстати, а от 1 устройства до 2 какое расстояние?

Ну не более 6-7 метром, из цокольного этажа на 1 этаж. И у меня сейчас реализована передача данных по радиомодулю syn115, передача статусов и времени работы, но нет управления и задания временных параметров. Для увеличения времени работы приходится перепрошивать мегу8. UART то я подниму без проблем, а вот сложить все это в какой то протокол, представляю и есть наметки простенькие, нужно же наверное crc проверить… Вообщем думал существует что то готовое, с минимальным допилом!?

А смысл? Радиосвязь ежели уже работает.

какой-нить Wireless UART with Arduino and 433MHz or 434MHz module
в статье как раз HC-12 используется

1 лайк

Так я ж пишу нет обратной связи, задать изменить настройки работы, приходится перепрошивать. Или липить к первому еще приемник, но уже нет ног свободных!!! ко второму передатчик!

Главное чтоб он на прерываниях работал! ну или допишу, где то я видел подобное на старом форуме может

Я так и не понял в чем суть вопроса, если честно.

зачем?
Не знаю вашего уровня программирования, но вообще когда новички начинают говорить “мне нужны прерывания” - это почти всегда неправда.

Нужно совет от форумчан как сделать лучше при вводных которве я дал или же указать на библиотеку которая по вашему мнению подойдет лучше, свои советы ит. д. ит. п. Мега8 к примеру может вообще убраться из проекта, а встать на еë место мега328я.
Так же возник из прочитаной мной инфы, Modbus rtu вообще работет без преобразователей rs485?

Ну в основном цикле крутятся другие процессы, опрос датчиков примеру… Насчет неправды, я не совсем понял))

вы подтверждаете мою догадку про новичков…
Вам нужны прерывания, потому что вы не умеете отслеживать в программе более одного процесса одновременно?

я бы написал свой собственный простенький протокол. C заголовком и контрольной суммой… а можно и без нее.

Ну так я и пишу в разделе про/для новичков, что логично! Не понимаю вашего напирания… Вы уж скажите к чему клоните? Мои несколько процессов одновременно, работают по таймеру и флагам, пока зайдествован один таймер0.

ок, не буду напирать
Почитайте что-нибудь про миллис

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

1 лайк

Вот это поворот😄 т. е. Таймер по переполнению настроенный на период 1мс, хуже чем миллис?

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

Примерно так миллис и тикает )))

1 лайк

А в чем разница? Миллис этот тот же таймер по перполнению на те же самые 1мс
Просто через миллис проще подключить хоть 20 процессов к одному таймеру, чем непосредственно через прерывание таймера

Вот это поворот! :smiley: