BMP085 + Mega2560 + W5100
- Войдите на сайт для отправки комментариев
Пт, 21/11/2014 - 11:11
Простите за глупый вопрос, но...
А связка BMP085 + Mega2560 + W5100 работает? Не конфликтует?
Простите за глупый вопрос, но...
А связка BMP085 + Mega2560 + W5100 работает? Не конфликтует?
А чего ей конфликтовать ??
Работает, не конфиктует.
Странная тогда у меня чепуха выходит:
Приемник 433MHz подключаю без W5100 - работает (пин11). Ставлю W5100, подключаю приемник на пин8, правлю скетч, заливаю и всё.
Вот скетч:
//Adruino Mega2560 //красный - питание | синий - земля //желтый - дата | зеленый - дата цифровая //Ethernet Shield W5100 (pin:4,10,11,12,13,50,51,52) //433Mhz приемник (pin7) //радио модуль NRF24L01+ //датчик температуры и давления BMP085 (pinSDA(20), pinSCL(21)) // //Описание блока: //* считывает информацию с WeatherStation (при помощи 433Mhz приемника) //* измеряет температуру и давление в помещении (датчик BMP085) //* общение (прием и передача данных) при помощи модуля NRF24L01+ с Relay модулями (состояния модулей должны запоминаться) ///////////////////////////////////// #include <VirtualWire.h> #include <EasyTransferVirtualWire.h> //create object EasyTransferVirtualWire ET; //наша структура данных. она должна быть определена одинаково на приёмнике и передатчике кроме того, размер структуры не должен превышать 26 байт (ограничение VirtualWire) struct SEND_DATA_STRUCTURE{ byte ID; int temperature; int humidity; int rain; }; //переменная с данными нашей структуры SEND_DATA_STRUCTURE mydata; void setup(){ ET.begin(details(mydata)); Serial.begin(9600); vw_set_ptt_inverted(true); // Required for DR3100 vw_setup(2000); // Bits per sec vw_set_tx_pin(7); Serial.println("Avalon Project Server Started"); delay(1000); Serial.println("Welcome!"); vw_rx_start(); // Start the receiver PLL running pinMode(13, OUTPUT); } void loop(){ //check and see if a data packet has come in. if(ET.receiveData()){ digitalWrite(13, HIGH); // включаем светодиод для отображения процесса передачи Serial.println(""); Serial.print("ID: "); Serial.print(mydata.ID); Serial.print(" | Temperature: "); Serial.print(mydata.temperature); Serial.print("*C | Humidity: "); Serial.print(mydata.humidity); Serial.print("% | Rain: "); Serial.print(mydata.rain); Serial.println(""); digitalWrite(13, LOW); // включаем светодиод для отображения процесса передачи } }Это я дурак или где?
У Вас в коде упоминается NRF24, так может проблема между w5100 и NRF24? Оба используют SPI.
NRF, как видите, не подключен
NRF24 Вообще не мешает w5100, если код правельно написан..
Предпочитаю NRF24 выносить на SoftSPI.
Ну на любителя... но м/к один фиг только одно действие выполняет в один момент.. Если только езернет или нрф по прерыванию что-то отправляют..