не удаётся передать температуру по nRF24L01+

Бородишка
Offline
Зарегистрирован: 12.05.2016

Добрый день. Возникла проблемма, нужно мерить температуру датчиком LM35 установленном на Arduino nano Atmega 168 и передавать при помощи датчика nRF24L01+. Принимать информацию должна Arduino uno, тем же nRF24L01+. В итоге, температура мериется, в порту отображается, но до порта Uno ничего не доходит... Подскажите, что делаю не так.

код передачи температуры

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>

RF24 radio(9,10); //номера каналов приема и передачи
const uint64_t pipe = 0xE8E8F0F0E1LL; // адрес канала передачи

int temp1_val=0;        //переменная для хранения значения сенсор 1

int tempC;
int reading;
int tempPin = 1;


void setup()
{
  radio.begin();
  radio.openWritingPipe(pipe); // Открываем канал передачи
  radio.openReadingPipe(1,pipe); //открываем один из 6-ти каналов приема
  radio.startListening();  //начинаем слушать эфир
  
analogReference(INTERNAL);
Serial.begin(9600);
}

void loop()
{
reading = analogRead(tempPin);
tempC = reading / 9,31;

Serial.println(tempC);

delay(1000);
radio.write(tempC, tempPin);

}

код приёмника

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <RF24_config.h>

RF24 radio(9,10); //номера каналов приема и передачи
const uint64_t pipe = 0xE8E8F0F0E1LL; // адрес канала передачи
int temp_out;
int param;
int done;
void setup(void)
{
  radio.begin();
  radio.openReadingPipe(1,pipe); //открываем один из 6-ти каналов приема
  radio.startListening();  //начинаем слушать эфир
  Serial.begin(9600);
  }
void loop(void)
{ 
 //слушаем, что передает вторая ардуина первой..
// if (radio.available()) 
// {
//   bool done = false;
//   while (done);
//   {
    radio.read(temp_out, param);
//   }
// }
  Serial.println(temp_out);
  Serial.println(param);
 delay(1000);
 }

 

Бородишка
Offline
Зарегистрирован: 12.05.2016

Ура, справился сам)))))

a5021
Offline
Зарегистрирован: 07.07.2013

Вот что форум волшебный делает! :)

Бородишка
Offline
Зарегистрирован: 12.05.2016

Теперь возникла другая проблема. Как вычислять потерянные пакеты...

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

Бородишка пишет:

Теперь возникла другая проблема. Как вычислять потерянные пакеты...

35 строку замените на

if(radio.write(tempC, tempPin))
Serial.println("квитанция получена);
else
Serial.println("квитанция не получена);

Бородишка
Offline
Зарегистрирован: 12.05.2016

toc пишет:
Бородишка пишет:

Теперь возникла другая проблема. Как вычислять потерянные пакеты...

35 строку замените на if(radio.write(tempC, tempPin)) Serial.println("квитанция получена); else Serial.println("квитанция не получена);

Спасибо, справился.