Стоит задача: используя в качестве датчика тройка-модуль "Компас" в связке с малогабаритными платформами Ардуино NANO или MICRO, передавать значения угла посредством интерфейса RS485 на другой такой же комплект. Пространство установки датчика ограничено, поэтому микро и нано. Вопросы: 1. Схема подключения модулей к платформе? Есть ли какие тонкости? 2. Будет ли работать такая связка, если установить несколько экземпляров с датчиками и их опрашивать в цикле? 3. Хватит ли памяти у MICRO и NANO для программы обработки и трансляции данных?
По компасу, там все просто, не плохое описание тут - http://wiki.amperka.ru/продукты:troyka-compass. Единственный нюанс, что на nano I2C на ножках A4 (SDA) и A5 (SCL), а на micro 2 (SDA) и 3 (SCL). Про RS-485 модуль/микросхему Вы не чего не сказали. Я использую такие Подключение таких, тут - http://adatum.ru/podklyuchenie-konvertera-rs-485-v-ttl-k-arduino.html. Другие не особо отличаются. На контролер идут 2 провода на Serial (1 если, только передача) и 1 провод управления (его можно не использовать, посадить на землю или плюс, если не нужна 2-х сторонняя передача). Не очень понятен вопрос, если подключить еще какие-то датчики, то нужно понимать какие. В общем случае да, но бывают нюансы, в зависимости от скорости опроса и самих датчиков. Если речь об этом То безусловно хватит.
Я имел ввиду на один комплект NANO посадить(например) Компас + Анемометр + температуры и влажности + барометр. Вот таких комплектов будет несколько. Все они должны объединиться в сеть и ведущая Ардуино будет последовательно их все опрашивать. Компас и анемометр опрашивать часто, а температуру и давление не так критично, можно и раз в минуту и даже реже. Беспокоит вопрос как ведущий узнает с какого комплекта пришли данные, каким образом идентифицировать комплекты или датчики?
Теперь появляется понимание задачи. По подключению для RS-485 2 пина TX, RX на ардуине и 1 управляющий на ней. Параметр часто, не самый лучший. Лучше кол-во опросов, к примеру 10 в секунду и т.д. Каждому подчиненному устройству присваивается адрес, когда идет команда от ведущего, все клиенты читают пакет данных, в пакете есть адрес, если адрес совпадает читаем дальше, если нет перестаем читать. Можно сделать свой, протокол. Но лучше воспользоваться существующими. Примеры можно посмотреть тут - http://playground.arduino.cc/Main/InterfacingWithHardware#Communication, смотрите на этой страницы Modbus RTU Master/Slave, ModbusMaster, SimpleModbus, Modbusino. UPD. Если решите делать свой протокол, чего я настоятельно не рекомендую. Могу дать отличную базу для AVR на Си, поддерживает и nano и micro, останется дописать адресацию и переключение. Она будет полезна, если обычные библиотеки не будут устраивать.
С железяками более-менее понятно. С программной частью - попробую, после появятся вопросы. С собственным протоколом еще рано, нужно с библиотеками поиграться... Спасибо за помощь!