Обмен данными между Arduino
- Войдите на сайт для отправки комментариев
Ср, 16/03/2011 - 00:23
Можно ли как-то организовать обмен данными между двумя Ардуино? Проводной или беспроводной не имеет значения.
Можно ли как-то организовать обмен данными между двумя Ардуино? Проводной или беспроводной не имеет значения.
На Arduino есть UART порт, который по факту пин 0 и 1, соединив между собой эти порты на , можно передавать данные также как ты бы передавал их на компьютер. Рекомендую почитать - библиотека Serial. На английском можно еще вот это почитать
Тут надо упомянуть, а то я с этим когда-то намучулся, что соединять надо перекрестно, т.е. пин 0 (RX) первой платы подсоединять к пину 1 (TX) на другой плате и в перекрест - 1(TX) первой к 0(RX) второй.
0(RX)----------1(TX)
1(TX) ---------0(RX)
Для беспроводной передачи, есть вот такой модуль http://www.sparkfun.com/products/8945 передача посредством UART, то бишь все той же Serial библиотекой, дальность более 100м. Но у нас по-моему не продаются, можно заказать.
Спасибо. Буду пробовать.
Кстати, еще добавлю, что если надо много данных передавать, то лучше использовать SPI на выходах 10, 11, 12, 13, на Меге другие.
Ну или I2C - пины 5 и 6.
Кстати, если делать связь через I2C, то питание и земля обоих плат должны быть общие.
Еще можно посмотреть в сторону xBee
Ребят подскажите как формировать пакеты с данными для передачи по радио модулям в одностороннем порядке?
Чтобы надежность была. Как я представляю это так:
1) несколько "1" например 2 или 3 шт.
2) Адрес ардуины (приемников ведь может быть несколько)
3) Собственно команда
4) ЧекСумма
------------------
Хватит ли этого для передачи без потерь!
Или эти все 4 пакета передать несколько раз (3-4 раза) чтобы точно хоть какой то пакет правильно приемник уловил... Ведь обратки нет! С ней было бы проще!
Есть такой метод (не помню как называется), когда передаваемый бит трижды дублируется то есть вместо "1101" вы будете передавать "111111000111". в итоге получается что если какой бит профукался, то на основе двух других можно сделать вывод, какое именно значение имел передаваемый бит.
то есть например если получено "1х1х0011х" (х - это профуканый бит), значит передавалось сообщение "101".
Погуглите, наверняка все уже придумано до вас, незачем изобретать велосипеды.
Успехов!
http://bigbarrel.ru/arduino_serial_uart_net/
Помогите связать две Ардуино Нано радиомодулем RFM12BR - 868.