Доброго времени суток! Использую arduino nano. Провел кучу безуспешных попыток завести вот такой SD модуль http://iarduino.ru/shop/Expansion-p...botaet-s-oficialnymi-programmami-arduino.html И nRF24L01+ (подключенный через модуль питания, который шел с ним) По отдельности все работает замечательно, но если зацепить SD модуля miso/mosi, то происходит магия. И работает только SD модуль. У обоих модулей SS пин разный. Проводя эксперименты для выявления проблемы заметил еще одну штуку. Плата ардуины располагается на макетке. Располагал относительно проводов miso/mosi радиомодуля те же провода модуля карты. Если расположить ближе к пинам ардуино проводки от модуля карты, то в функции вывода информации о радиомодуле (radio.printDetails() выводило все нули. Если перед то выводило магические числа. А если без проводов модуля карты то все норм. Не знаю есть ли прилагать код тк я взял рабочий код с примера для радиомодуля, и модуля карты и просто вписал под себя данные для теста. Собственно вопросы: 1) Можно ли как то это все исправить?). 2) Можно ли в качестве пинов miso/mosi назначить пины цифровые скажем 5 и 6 (в библиотеке SD.h в карте пинов видел что можно вроде как заменить пины но не помогло). Вот код приемника. Повторюсь, без SD модуля ног miso/mosi все работает. Код (C++): #include <SPI.h> #include <Wire.h> #include <SD.h> #include "nRF24L01.h" #include "RF24.h" RF24 radio(8, 9); const uint32_t pipe = 123456789; byte massiv[4]; File file; void setup() { Serial.begin(9600); radio.begin(); radio.setChannel(55); radio.setDataRate(RF24_1MBPS); radio.setPALevel(RF24_PA_MIN); radio.openReadingPipe(1, pipe); radio.startListening(); if (!SD.begin()) { Serial.println("initialization failed!"); } else { Serial.println("init!"); file = SD.open("test.txt", FILE_WRITE); file.println(F("blablabla")); file.close(); } } void loop() { if (radio.available()) { radio.read(massiv, 1); Serial.println(massiv[0]); } } Так же пробывал через digitalWrite менять на LOW радиомодуль а карту на HIGH и наоборот. Безуспешно..
Когда-то сталкивался с такими картами, которые не отпускают MISO. Попробуйте подключать этот вывод к дуньке не напрямую, а через резистор в 1-2 килоома.
Огромное спасибо!!! Не знаю как выразить благодарность словами) Мучался часов 12 Воткнул 1,2кОм на пути miso как вы и сказали и все заработало!
В общем перестало работать все с 1,2кОм через пару дней. Не знаю почему. Посоветовался с http://forum.amperka.ru/members/sslobodyan.10892/ В итоге был поставлен на 750 оМ резистор вместо 1200 и все зажило прекрасно