Как подключить nRF24 к Mega2560 когда сверху установлен дисплей.

alexvs
Offline
Зарегистрирован: 22.07.2014

Это тема не вопрос, а обмен опытом, может кому полезно будет.

Пришло время приделать к погодной станции дисплейный модуль. Для этого я использовал следующие компоненты: Mega 2560,  TFT Expansion Board, 3.2" TFT Display, nRF24L01+.

Вроде ничего особенного, но как подключить радимодуль так что бы провода не висели, когда дисплей перекрывает все контакты контроллера? Наверное час я крутил в руках весь этот бутерброд - и нашел решение!

Радиомодуль припаял к небольшой макетной плате, у разъема предназначенного для втыкания в Мегу согнул контакты:

Так выглядит модуль вставленный в Мегу:

Вид сбоку:

С установленной платой адаптером дисплея:

Все в сборе:

alexvs
Offline
Зарегистрирован: 22.07.2014

А вот в рабочем состоянии:

toc
Offline
Зарегистрирован: 09.02.2013

Корасиво. Может покажите обществу исходники и бом ?

Radjah
Offline
Зарегистрирован: 06.08.2014

У тебя же у USB-порта колодка разведена, вот на нее и заводи.

alexvs
Offline
Зарегистрирован: 22.07.2014

Radjah пишет:

У тебя же у USB-порта колодка разведена, вот на нее и заводи.

Дисплей перекрывает эту колодку. Поэтому я сделал по другому.

alexvs
Offline
Зарегистрирован: 22.07.2014

toc пишет:
Корасиво. Может покажите обществу исходники и бом ?

Ну наверное выкладывать исходники всего пректа не имеет смысла? Может достаточно кода орисовки экрана? А что такое бом? 

step962
Offline
Зарегистрирован: 23.05.2011

alexvs пишет:

 А что такое бом? 

Рискну предположить - билл оф материэлз

alexvs
Offline
Зарегистрирован: 22.07.2014

Хм, в контексте данного топика понятнее не стало...., может туплю.....

Radjah
Offline
Зарегистрирован: 06.08.2014

alexvs пишет:

Radjah пишет:

У тебя же у USB-порта колодка разведена, вот на нее и заводи.

Дисплей перекрывает эту колодку. Поэтому я сделал по другому.

Тогда паяльником подсосись к nRF24 или к дисплею сверху. Но CS или CE, ну который за включение чипа отвечает, всё равно придется в другое место заводить.

alexvs
Offline
Зарегистрирован: 22.07.2014

ээээээ... я чет не пойму, я же уже нашел решение, и оно работает. Вы просто прелагаете альтернативные варианты или что?

ustisha
Offline
Зарегистрирован: 30.05.2014

Автор подскажи пожалуйста для NRF24 нужны контакты SPI: 50 (MISO), 51 (MOSI), 52 (SCK) а они заняты шилдом. 

1. Нельзя подключить NRF24 к этим пинам на дисплей шилде? Я пробовал у меня в NRF валится постоянно всякий хлам.

2. По фото у тебя NRF24 вообще подключено к PWM выводам. Можно как-то переназначить 50 (MISO), 51 (MOSI), 52 (SCK) ?

Radjah
Offline
Зарегистрирован: 06.08.2014

MOSI, MISO, SCK у всех устройств общие. У каждого устройства есть свой пин SS (Slave Select).

Высокий уровень - устройство не выбрано.

Низкий уровень - устройство выбрано и будет обрабатывать сигналы по MISO/MOSI.

alexvs
Offline
Зарегистрирован: 22.07.2014

Есть библиотека SOFTSPI, которая входит в пакет DigitalIO, с их помощью создается программынй SPI практически на любых цифровых выводах контроллера, вот на него (программынй SPI) я и подключаю радиомодуль.

В коде это выглядит так:

#include <DigitalIO.h>
#include <RF24.h>
#include <RF24Network.h>
/////////////////////////////////////
const int _ce = 10;
const int _csn = 8;
SoftSPI<SOFT_SPI_MISO_PIN, SOFT_SPI_MOSI_PIN, SOFT_SPI_SCK_PIN, SPI_MODE> spi;
/////////////////////////////////////
RF24 radio(_ce,_csn);
RF24Network network(radio);

В файле RF24_config.h я прописываю:

#define SOFTSPI   // Requires library from https://github.com/greiman/DigitalIO

///////////////////////////////////////////////	  

// Mega2560 + Дисплей
      
const uint8_t SOFT_SPI_MISO_PIN = 12; 
      
const uint8_t SOFT_SPI_MOSI_PIN = 9; 
      
const uint8_t SOFT_SPI_SCK_PIN = 11;  

Библиотеку для NRF брал отсюда https://github.com/tmrh20/RF24

А DigitalIO отсюда https://github.com/greiman/DigitalIO
Так что дерзайте!