dak писал(а):Все разобрался! Тока теперь еще больше вопросов!
- С машинами я договорился, машин не будет! (с) из анекдота
Автор, свои мысли Вы изложили достаточно сумбурно... Вы что - хотите на каждый датчик собственный МК поставить? А смысл?
Например
dak писал(а):третье будет датчик температуры и 2 ацп
Датчик температуры температура - величина достаточно инерционная, её вряд ли есть смысл измерять чаще, чем раз в секунду...
АЦП - сигнал с какого именно устройства будет подан на АЦП?
dak писал(а):второе которое будет снимать данные с hc-sr04
hc-sr04 - где именно стоит? Если коптер, это одно, если радиоуправляемый танк - совсем другое. От скорости объекта зависит требуемая частота опроса hc-sr04. И вполне возможно, что все задачи (температура, АЦП и hc-sr04) получится возложить на один МК.
Вообще, обмен данными между МК по какой среде должен осуществляться? Радиоканал - это одно, связь по проводам - совсем другое.
Что касается обмена данными - лучше сразу разработать какой-то общий протокол обмена.
Например, пакет ответа состоят из девяти байт.
1-й байт - адрес МК, 2-й байт - код команды, 3-й - байт статуса МК, 4-й и 5-й байты - расстояние, измеренное hc-sr04, 6-й и 7-й байты - измеренная температура, 8-й и 9-й байты - CRC.
При этом в 3-ем байте статуса МК, допустим, 0-й и 1-й биты - это состояние пары кнопок (лог.1 - нажаты, лог.0 - отпущены), 3-й бит указывает на актуальность данных, измеренных hc-sr04 - если бит в состоянии лог.0, то с момента последнего запроса не получено нового результата измерения, игнорировать значения 4-го и 5-го байт пакета, если же 3-й бит в сост. лог.1, то есть новые результаты замера расстояния, данные в 4-ом и 5-ом байтах актуальны. Бит 4 в байте статуса аналогично указывает на актуальность значения температуры в 6-ом и 7-ом байтах пакета.
Ну и так далее. Лучше стандартизовать все пакеты хотя бы по длине, байт команды однозначно указывает на тип данных в пакете.
Например, если код команды 0х01, то это ответ на запрос расстояния и температуры, при этом биты байта статуса имеют значения, указанные выше, а если код команды равен 0х02, то это ответ на команду получения данных от АЦП и в байте статуса 0-й и 1-й биты определяют актуальность данных от обоих АЦП, остальные биты не используются. Соответственно, в пакете в этом случае в 4-ом и 5-ом байтах хранится результат оцифровки первого АЦП, а в 6-ом и 7-ом байтах - результат от второго АЦП.
То есть, после получения пакета и проверки его на корректность по коду команды однозначно определяется, как следует интерпретировать данные пакета.
Ну, для начала все. "Переварите" пока это, попробуйте продумать структуру сети устройств Какие датчики к какому МК подключены и т.д.