LCD5110 vs NRF24L01

Vitaly
Offline
Зарегистрирован: 12.09.2011

Добрый день. Есть непонятная проблема.

Подключил к одной ардуино дисплей 5110 и приёмопередатчик  NRF24. Все пины разные! Сразу было подозрение, что работать не будет - так и есть. Оба устройства используют SPI. Однако, библиотека для дисплея использует не "железные" пины SPI, а свои. Получается так:

по отдельности - библиотеки работают.

в одном скетче - экран работает а радиомодуль нет.

Попытался сделать "правильно"- посадил дисплей на железный SPI. В итоге - не работает ни то ни другое. Прочитал, что это может быть из за высокой скорости железного SPI, но как в таком случае работать с обоими этими устроиствам одновременно?

Код не выкладываю, т.к.  это стандартные примеры.  Как посоветуйте решить проблему?

sadko2000
sadko2000 аватар
Offline
Зарегистрирован: 05.03.2014

Смотрите, как сделано у меня (Arduino Mini Pro 328P 3.3V, NRF24, LCD5110 и DHT22).

http://uaimage.com/t/3800829_d6e89715.jpg

 

 

 

 

 

Вот часть инициализации:

#include <LCD5110_Graph.h>
#include "DHT.h"
#include "LowPower.h"
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
 
LCD5110 myGLCD(6,5,4,2,3);

#define DHTPIN             7
#define DHTTYPE            DHT22
#define PIN_NRF24_CE       9
#define PIN_NRF24_CSN      8

RF24 radio(PIN_NRF24_CE,PIN_NRF24_CSN);

Работает, как часики.

Vitaly
Offline
Зарегистрирован: 12.09.2011

Спасибо большое)

Дело было именно в библиотеке. C LCD5110.Graph всё работает отлично! Но я в первый раз использовал библиотеку от Adafruit и вот именно с ней все зависало после первой же отправки.

И всё-таки, как я понимаю, это не самое грамотное решение. Получается, что на одном и том же контроллере реализовано сразу два SPI. Думал, что можно прикрутить и дисплей и передатчик на одни и те же пины и разделить только CS.

 

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

Vitaly пишет:

Думал, что можно прикрутить и дисплей и передатчик на одни и те же пины и разделить только CS.

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

dJuchok
Offline
Зарегистрирован: 14.03.2016

Констатирую рабочую связку LCD5110_Graph.h и RF24.h

А вот сейчас так же подключаю LCD5110_Graph_SPI.h и RF24.h оба устройства на SPI так вот работать им не дает DHT.h и все что с ним связано. Если кто знает ответ буду благодарен за наводки.

#include <LCD5110_Graph_SPI.h>
#include <SPI.h>
#include <RF24Network.h>
#include <RF24.h>
RF24 radio(3, 4); // CE, CSN
LCD5110 myGLCD(5,6,7);
//#include <DHT.h>