Ethernet шилд и радио модуль одновременно

oldxaker
Offline
Зарегистрирован: 23.07.2018

Привет всем! Подскажите, как одновременно подключить радиомодуль и инетернет шилд к одной ардуино?

Arduino UNO

Модуль NRF24L01

Шилд w5500

 

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Шилд надо воткнуть в UNO, а модуль подключить проводами. Не пробовал?

oldxaker
Offline
Зарегистрирован: 23.07.2018

Это не совсем шилд, это отдельный Ethernet модуль. Писали что он лучше 5100 купил, вот теперь ковыряю

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

Тогда оба проводами соединяй. Можно через макетку.

oldxaker
Offline
Зарегистрирован: 23.07.2018

Пробовал. Именно через макетку, вместе не работают, если один модуль отключаю- работают. 

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

oldxaker пишет:

Пробовал. Именно через макетку, вместе не работают, если один модуль отключаю- работают. 

догадываетесь какой вопрос будет следующим ?

oldxaker
Offline
Зарегистрирован: 23.07.2018

Стоит ли продолжать майнить?)) нет, в данном случае для меня это сложно. Если знаете ответ, буду признателен (уровень новичок в ардуино)

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

хорошо, обойдемся без вопросов.

значится так, в 36 строке у вас ошибка и синий провод подсоеденен не туда.

oldxaker
Offline
Зарегистрирован: 23.07.2018

Да. Значит догадка все же была) 

Приведу все в читабельный вид. Спасибо за терпение))

JonHappy1
Offline
Зарегистрирован: 11.06.2018

для Шилд w5500 надо использовать библиотеку Ethernet2

и надо подключать все выводы  (питание 5 или 3.3)

oldxaker
Offline
Зарегистрирован: 23.07.2018

Да, она и используется

 

JonHappy1
Offline
Зарегистрирован: 11.06.2018

oldxaker пишет:

Да, она и используется

значит надо более тонко подходить к коду. мне пришлось править WebSocketClient.cpp пока он не перестал конфликтовать с Wire.h. просто комментировал куски кода , пока не заработало. - после локализации проблемы - исправил не работающий кусок...

oldxaker
Offline
Зарегистрирован: 23.07.2018

подключение

w5500:

SCS - 10

MISO - 12

SCLK - 13

MOSI - 11

3,3V

Радио модуль

CE - 9

CSN - 10

CSK - 13

MOSI - 11

MISO - 12

5V

 

Тестовая страничка и массив данных (данные передаются на другую ардуину)

Задача - чтобы и страница и массив работали ( то есть два модуля) чтобы можно было двигаться дальше

отдельно работают, как подключаю оба - ардуино просто зависает

 

Код тестовый:

 

 

 
#include <SPI.h>
#include <Ethernet2.h>
 
#include <EEPROM.h>
#include <SPI.h>                           
#include <nRF24L01.h>                       
#include <RF24.h>   
 
RF24 radio(9, 10);                         
byte address[][6] = {"1Node","2Node","3Node","4Node","5Node","6Node"};  
 
byte transmitt_data[21]; 
 
byte value;
 
#include <EtherCard.h>
 
byte mac[] = {
  0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED
};
IPAddress ip(192, 168, 178, 221);
 
EthernetServer server(80);
 
String readString; 
 
void setup() {
 
  radio.begin(); 
  radio.setAutoAck(1);         
  radio.setRetries(0,15);    
  radio.enableAckPayload();    
  radio.setPayloadSize(32);     
 
  radio.openWritingPipe(address[0]);      
  
  radio.setChannel(0x60);  
 
  radio.setPALevel (RF24_PA_MAX); 
  radio.setDataRate (RF24_250KBPS); 
  
  radio.powerUp();
  radio.stopListening();  
 
 
 
 
  pinMode (pin, OUTPUT);
  // Open serial communications and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
 
}
 
 
void loop() {
 
  transmitt_data[0] = 21; 
  transmitt_data[1] = 55;
  transmitt_data[2] = 23;
  transmitt_data[3] = 55;
  transmitt_data[4] = 1;
  transmitt_data[5] = 1;
 
  transmitt_data[6] = 0;
  transmitt_data[7] = 0;
  transmitt_data[8] = 0;
 
  transmitt_data[9] = 0;
  transmitt_data[10] = 0;
  transmitt_data[11] = 0;
  transmitt_data[12] = 0;
  transmitt_data[13] = 0;
  transmitt_data[14] = 0;
  transmitt_data[15] = 0;
  transmitt_data[16] = 0;
  transmitt_data[17] = 0;
  transmitt_data[18] = 0;
  transmitt_data[19] = 0;
  transmitt_data[20] = 0;
  
 
  radio.write(&transmitt_data, sizeof(transmitt_data));
 
  
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
 
        char c = client.read();
        Serial.write(c);
        
        if (c == '\n' && currentLineIsBlank) 
        {
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  
 
          client.println("<?xml version= 1.0 encoding= UTF-8 ?>");
          client.println("<!DOCTYPE html PUBLIC ");
          
          client.println();
 
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");
          client.println("  <br>");
 
  client.println(" <b> <center> TEST <center> </b>");
  client.println(" <hr align= center  width= 300  size= 3 color= #0000dd  /> ");
  client.println("<br>");
 
  client.println("</select>");
  client.println("<p><input type= submit  value= SEND  ></p>");
  client.println("</html>");
          break;       }
       
      }
    }
   
    delay(1);
    client.stop();
    Serial.println("client disconnected");
  }
 
  
}
 

 

 

JonHappy1
Offline
Зарегистрирован: 11.06.2018

у w5500 надо подключать все выводы

sadman41
Offline
Зарегистрирован: 19.10.2016

Вам нужно под выход CS каждого модуля выделить отдельный вывод на адруине, а не сажать их все на D10.

oldxaker
Offline
Зарегистрирован: 23.07.2018

Странички отдельно работают при этом подключении. Подскажите как что куда? Гугл давал только эти варианты

oldxaker
Offline
Зарегистрирован: 23.07.2018

SCS и CNS ?

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

у RF

CSN - 10 заменить на 8

ну и RF24 radio(9, 8);  

sadman41
Offline
Зарегистрирован: 19.10.2016

NRF24L01, назначение выводов:

SCK (Serial ClocK) — тактирование (синхронизация).
MOSI / MI (Master Out Slave In) — вход данных.
MISO / MO (Master In Slave Out) — выход данных.
CE/SS - Выбор ведомого на шине SPI из нескольких устройств.
...

Вот этот CE, он же SS, он же CS должен висеть не на том же самом входе ардуины, что и CS сетевого модуля. В противном случае они работают не по очереди, а "параллельно".

svm
Offline
Зарегистрирован: 06.11.2016

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

oldxaker
Offline
Зарегистрирован: 23.07.2018

Получилось!!!! Дошло!

Огромное всем спасибо!!!! А то мне насоветовали вторую ардуино цеплять к этой!!

Благодарю!