Как связать несколько Arduino вместе через SPI/I2C?

p.vladi
Offline
Зарегистрирован: 07.01.2015

Доброе время суток!

Разрабатываю прототип для интересного проекта, есть отдельные Arduino которые выполняют функции DMX контролера, Инфракрасного пульта управления, и контролера вентиляторов (ШИМ и сенсор работы)

Хотелось бы сделать из одного из них «мастера» который бы управлял остальными двумя через SPI или I2C – но не знаю с чего начать, буду крайне признателен любым советам!

Итоговая идея – компьютер (через RS232, MAX232 - не USB) управляет «системой» которая в свою очередь управляет устройствами через ИК, управляет вентиляторами, и следит за их работой, и управляет светом через DMX.

Заранее спасибо! 

p.vladi
Offline
Зарегистрирован: 07.01.2015

Неужто никак?

kisoft
kisoft аватар
Offline
Зарегистрирован: 13.11.2012

Посмотреть в гугле, почитать про упомянутые протоколы, определить, достаточно ли скоростей и принципа обмена по этим протоколам. Можно ли подключить несколько устройств и каким образом.

std
Offline
Зарегистрирован: 05.01.2012

Вам нужна библиотека Easytransfer. Есть в playground.arduino.cc

Поддерживает связь через iic, сериал и программный сериал. SPI нету, придётся писать самому. Или мне такая либа не попадалась, возможно есть.

axill
Offline
Зарегистрирован: 05.09.2011

p.vladi пишет:

Хотелось бы сделать из одного из них «мастера» который бы управлял остальными двумя через SPI или I2C – но не знаю с чего начать, буду крайне признателен любым советам!

эти протоколы межблочные и внутрисистемные, не предназначены для моединения разных устройств. На практике можно соединить, но только на очень короткие расстояния.

У вас расстояния какие? Межблочно лучше RS485 как физический уровень, в прграмным может быть обычный Serial если задача простая и не нужна обратная связь

p.vladi
Offline
Зарегистрирован: 07.01.2015

Ура, спасибо большое за Easytransfer!
https://github.com/madsci1016/Arduino-EasyTransfer
Это как раз то, чего я искал! работает с I2C - все что мне нужно!

P.S. все чипы будут на одной плате, следовательно, RS485 не нужен, UART мне нужен на чипах, для "наружного мира" - и как раз портов не хватало. А если я свяжу несколько чипов через I2C - всего хватит!

Еще раз спасибо!

p.vladi
Offline
Зарегистрирован: 07.01.2015

Вот еще нашел - вдруг кому пригодиться http://greenoakst.blogspot.co.uk/2012/06/arduino-spi.html