Приветствую Вас! Скажу сразу, что я студент и не очень шарю в области радиоэлектроники. В общем, мне надо сделать один проект который состоит из базы(плата FPGA) и пару плат arduino, соединены последовательно через UART.
Этот проект я делаю вместе с коллегой, он занимается базой(плата FPGA), а я с платами arduino.
К каждой плате arduino будет соединен какой не будь датчик(например на одной датчик температуры, на второй датчик для измерения влажности и.т.д )
Эта база должна отправлять пакет с данными который состоит из номер платы arduino, команды для этой платы и номер ножки к которому подключен датчик. Обратно она должна получить данные от датчика. Как я понял сигнал от датчиков подключается к аналоговому входу 0 ( A0 ).
Например, база запрашивает данные от датчика температуры, который подключен, например, ко второй плате arduino, к ножке A0.
Плата arduino должна определить, если этот пакет данных отправлен ей, следующим образом:
База отправляет пакет данных в котором указано номер платы(В нашем случае 2), это значить что этот пакет отправлен для второй платы arduino. Первая плата получает пакет данных от базы, берет номер платы из пакета и декрементирует его на 1, если результат равен нулю, значит, этот пакет отправлен ей, в противном случае она должна его отправить дальше к следующей плате arduino, но уже с декрементированным номером. Считаем 2 – 1 = 1. Видим что результат декрементирования является число 1, а не 0. Значит, берем это число 1 засовываем ее обратно в пакет и отправляем к следующей плате arduino. Вторая плата получает пакет с данными и также берет из пакета номер платы и декрементирует его. В пакете сейчас находится число 1, значит 1 – 1 = 0. Результат декрементирования равен нулю, значит, что пакет отправлен именно для второй платы.
Далее берем данные от датчика температуры, засовываем эти данные в пакет и отправляем обратно на базу. В пакете уже будет содержатся номер платы с которой отправили данные и сами данные от датчика.
Пока что нету рядом этой базы FPGA (но скора будет) и я хочу, чтобы вместо этой платы FPGA был мой ПК. И с ПК отправить пакет с данным для определенной платы arduino. Коллега уже занимается тем чтобы база отправила и получила пакет данных.
На всех платах arduino должна быть загружена одна и та же программа. Сколько будет таких плат, нам неизвестно, то есть программа сама должна определить.
---------------------------------------------------------------------------
Для начало, чтобы было понятнее, я хотел бы только зажечь светодиод на 2-ой плате. Потом вместо светодиода, подключить датчик и реализовать то, что описал выше.
Я сделал фотку, в которой показано как я соединил две платы (nano и uno) и светодиод.
GND к GND, TX - RX, RX - TX. Питание для обоих плат идет от компьютера.
Проблема в том, что я не знаю, как реализовать этот проект. Я теорию читал, написал пару простых программ и в общем понял как работает последовательная связь, а вот как сделать этот проект пока что не знаю как.
Поэтому обращаюсь к Вам с просьбой помочь мне реализовать данный проект.
Жду Ваших ответов!
#arduino #uart #ПоследовательнаяСвязь
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Комментарии 1