28-02-2017, 11:12
Witam,
proszęo pomoc, mam problem z komunikacją pomiędzy nadajnikiem i odbiornikiem z modułami nrf24L01. Przesyłam aktualną temperaturę czyli jedną liczbę. Problem polega na tym, że co 0,3s powinienem otrzymać informację o temeraturze, niestety informacje docierają w różnych odstępach czasu (0,3s 1s 2s 0,5s...). Używam arduino NANO. Pomiędzy 3V3 i GND nrf24L011 wstawiłem kondensator 4u7, ale nie pomogło. Poniżej wstawiam kod nadajnika i odbiornika:
proszęo pomoc, mam problem z komunikacją pomiędzy nadajnikiem i odbiornikiem z modułami nrf24L01. Przesyłam aktualną temperaturę czyli jedną liczbę. Problem polega na tym, że co 0,3s powinienem otrzymać informację o temeraturze, niestety informacje docierają w różnych odstępach czasu (0,3s 1s 2s 0,5s...). Używam arduino NANO. Pomiędzy 3V3 i GND nrf24L011 wstawiłem kondensator 4u7, ale nie pomogło. Poniżej wstawiam kod nadajnika i odbiornika:
Kod:
//Nadajnik
#include <OneWire.h>
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS 3
RF24 radio(9, 10);
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
const uint64_t rfAddr = 0xE8E8F0F0E1LL;
void setup()
{
Serial.begin(9600);
sensors.begin();
radio.begin();
radio.setChannel(80);
radio.setPALevel(RF24_PA_MAX);
radio.setRetries(2,15);
radio.stopListening();
radio.openWritingPipe(rfAddr);
}
void loop()
{
int c=0;
int cislo[1];
sensors.requestTemperatures();
c=(sensors.getTempCByIndex(0)*100);
c=c/10;
cislo[0]=c;
radio.write(&cislo, sizeof(cislo));
Serial.print("Teplota: ");
Serial.print(cislo[0]);
Serial.println("_C");
delay(300);
}
Kod:
//Odbiornik
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 10);
const uint64_t rfAddr = 0xE8E8F0F0E1LL;
void setup()
{
while (!Serial);
Serial.begin(9600);
radio.begin();
radio.setChannel(80);
radio.setPALevel(RF24_PA_MAX);
radio.setRetries(2,15);
radio.openReadingPipe(1, rfAddr);
radio.startListening();
}
void loop()
{
if (radio.available())
{
int cislo[1] = {0};
radio.read(&cislo, sizeof(cislo));
Serial.println(cislo[0]);
}
}