Последовательная связь между двумя arduino ( nano и uno )

sergiu920
Offline
Зарегистрирован: 27.12.2014

Доброго времени суток! Я студент и не очень шарю в области радиоэлектроники.  В общем, мне надо сделать один проект который состоит из базы(плата FPGA) и пару плат arduino, соединены последовательно.  
Этот проект я делаю вместе с коллегой, он занимается базой(плата FPGA), а я с платами arduino.
К каждой плате arduino будет соединен какой не будь датчик(например на одной датчик температуры, на второй датчик для измерения влажности и.т.д )
Эта база должна отправлять пакет с данными который состоит из номер платы arduino, команды для этой платы и номер ножки к которому подключен датчик. Обратно она должна получить данные  от датчика.

Например, база запрашивает данные от датчика температуры который подключен, например, ко второй  плате arduino, к 8-мой ножке.
Плата 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. Питание идет от компьютера.

Ссылка на изображение:
1. http://hostingkartinok.com/show-image.php?id=96e93f235c8d36e7f03cdbc0e04...

Можете помочь, как это реализовать ?  Более подробно если можно.

Я теорию читал, написал пару простых программ и в общем понял как рабтает последовательная связь, а вот как сделать этот проект пока что не знаю как.

Извиняюсь за мой русский.
Спасибо заранее.

Жду Ваших ответов!

 

sergiu920
Offline
Зарегистрирован: 27.12.2014

Да насколько я понял сигнал от датчиков подключается к аналоговому входу 0 ( A0 ).

mihtm
Offline
Зарегистрирован: 02.09.2014

1.FPGA - база как присоеденина к ардуинам? наверно тоже по СОМ?

2.СОМ - порты вообще-то 1 к 1 обычно идут а в uno и nano аппаратный COM- один второй придется делать софтовый - (аппаратный вообще-то через USB к компьетору присоеденен- но и так как ты соеденил конечно работать будет- но я бы вообще COM не использовал) прочти про другие шины самый удобный в данном случае I2C - он позволяет соеденить все устройства параллельно- и выбирать их по адресу (по 2-м проводам) или 1 Wire- вообще по одному- а так я вообще не вижу проблем заходишь http://arduino.ru/Reference/Serial/Available и смотришь пример и там все расжевано.Написать тебе всю твою задачу не проблема- но хочется что бы ты сам разобрался.