Добрый день! Только начинаю разбираться с arduino. Я планирую собрать небольшой девайс, который обращается в инете к сайту, а потом в зависимости от полученной информации воспроизводит тот или иной mp3 файл. Из аннотации к Enternet Shield и mp3 Shield прочитал, что они оба задействуют 10 пин, а следовательно вступают в конфликт. Как поступить в таком случае или есть возможность на время воспроизведения отключать Ethernet Shield и наоборот?
Павел, здравствуйте! И Ethernet и Music Shield используют SPI-шину для коммуникации. Т.е. данные идут на Arduino Uno по пинам с 11-го по 13-й. Понятно, что на шине одновременно не могут гулять данные для нескольких устройств, поэтому им нужно работать по очереди. Чья сейчас очередь определяется ещё одним проводом SPI, называемым chip select (CS). Так вот проблема в том, что и Ethernet и Music выбрали 10-й в качестве такового. Поэтому, когда программа решит, что сейчас очередь Ethernet, Music тоже "подумает", что очередь его и получится конфликт. Единственный выход -- хардварный. На одном из шилдов откусить или просто отогнуть 10-й пин и проводком, через верхние колодки перекинуть на любой из свободных. Затем изменить код библиотеки заменив CS со значения 10 на тот пин, куда вы его перекинули.
Понял, спасибо, хороший вариант. А если еще повесить схемное решение (найти не проблема), например, который будет управлять селектором? Т.е. я работаю с музыкой я подключаю один выход, работаю с сетью - другой. Чтобы в перспективе еще один конфликтный шилд прикрутить?. Будет ли такое решение работоспособно?
Я не очень представляю как оно могло бы выглядеть. Т.е. нужно, чтобы 10-е ноги были электрически не соединены. А у них там пины. Если ставить шилды отдельно, то это уже не будет аккуратным бутербродом. Но в этом случае, да, будет достаточно раскидать соединения проводками.