не удаётся передать температуру по nRF24L01+
- Войдите на сайт для отправки комментариев
Втр, 11/10/2016 - 16:36
Добрый день. Возникла проблемма, нужно мерить температуру датчиком 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);
}
Ура, справился сам)))))
Вот что форум волшебный делает! :)
Теперь возникла другая проблема. Как вычислять потерянные пакеты...
Теперь возникла другая проблема. Как вычислять потерянные пакеты...
35 строку замените на
if(radio.write(tempC, tempPin))
Serial.println("квитанция получена);
else
Serial.println("квитанция не получена);
Теперь возникла другая проблема. Как вычислять потерянные пакеты...
Спасибо, справился.