Ви не увійшли.
Всем привет
Два дня воюю и все не удается подружиться с радио. Думал сделать RC систему используя данные модули. Имеем два модуля две nano (CH340). Питание на модули подаю через AMS1117-3.3, использую стандартную библиотеку
nrf24master. Подключено , как я думаю, все правильно т.к. пример из библиотеки nrf24scan, эфир сканирует, а вот дальше ни чего не выходит. Пример GettingStarted пишет, что пакеты не доставлены. Пробовал пример
http://arduinoprojects.ru/2014/04/%D0%B … %BE%D0%B4/
та же фигня. Подскажите, что делаю не так?
Неактивний
такого чипа у меня не было
но если не запускается пример, я бы сделал простейший клиент - сервер
https://github.com/stanleyseow/RF24
и проверял бы терминалкой
Неактивний
так в том то и прикол, пример кода сканера эфир сканирует все работает, а вот пример где один модуль посылает, второй принимает не работает. Говорят что надо куда то припаять емкость но куда?
Неактивний
сканировать - не ет pair
сделайте прием и передачу
а в вашем примере где серво , я не увидел заголовка, если рассинхронизация то может и неправильно работать
для начала пошлите привет и словите его на другой стороне
мне помогает если что то сложное не запускается сразу, т.е. я с привета, как обычно начинаю работу над новой железякой )
Неактивний
так в том то и прикол, пример кода сканера эфир сканирует все работает, а вот пример где один модуль посылает, второй принимает не работает. Говорят что надо куда то припаять емкость но куда?
Конденсатор 10 мкф прямо на модуле на пины питания.
Пробовал в работе этот модуль. Плох. Растояние 3 м через стену в полтора кирпича капец.
Неактивний
Посмотрите. Может поможет. Я долго ковырялся. Туеву кучу примеров перепробовал. У меня задача была передать данные датчика DHT22 из подвала. Оказалось жилище чукчи фигвам называется (проблема с сигналом).
сенсор:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <stdint.h>
#include <DHT.h>
#include <Wire.h>
#define DHTPIN_out 3
#define DHTPIN_base 4 o
#define DHTTYPE DHT22 // DHT 22 (AM2302)
DHT dht_out(DHTPIN_out, DHTTYPE);
DHT dht_base(DHTPIN_base, DHTTYPE);
const uint64_t readingPipe = 0xE8E8F0F0ABLL;
//const uint64_t writingPipe = 0xE8E8F0F0ACLL;
RF24 radio(9, 10); // Для Pro mini
//RF24 radio(48,53);// Для Меги
struct MESSAGE {
float h_out;
float t_out;
float h_base;
float t_base;
};
struct MESSAGE message;
int n = 0;
void setup() {
pinMode(2, OUTPUT);
digitalWrite(2, LOW);
SPI.begin();
Serial.begin(9600);
/************************* Модуль NRF24 **********************/
delay(2000); // Пусть зарядится конденсатор
radio.begin(); // Включение модуля;
radio.setChannel(03); // Установка канала вещания;
radio.setRetries(15,15); // Установка интервала и количества попыток "дозвона" до приемника;
radio.setDataRate(RF24_250KBPS); // Установка минимальной скорости;
radio.setPALevel(RF24_PA_MAX); // Установка максимальной мощности;
radio.enableAckPayload(); // Включение буфера автоответа
radio.setAutoAck(1); // Установка режима подтверждения приема;
//radio.openWritingPipe(writingPipe); // Активация данных для отправки
radio.openReadingPipe(1,readingPipe); // Активация данных для чтения
radio.startListening(); // Слушаем эфир.
}
void loop() {
int dataIn;
//digitalWrite(2, LOW);
delay(1000);
Serial.println(n);
n = ++n;
if (n >= 30) {
n = 11;
}
message.h_out = dht_out.readHumidity();
message.t_out = dht_out.readTemperature();
message.h_base = dht_base.readHumidity();
message.t_base = dht_base.readTemperature();
Serial.print(message.h_out,2);
Serial.print(" ");
Serial.println(message.t_out,2);
Serial.print(message.h_base,2);
Serial.print(" ");
Serial.println(message.t_base,2);
//Serial.println(h_out,2);
radio.writeAckPayload( 1,&message, sizeof(message));
if (radio.available())
{ bool done =false;
while (!done){
done = radio.read(&dataIn, sizeof(dataIn));
Serial.println(dataIn);
if (dataIn == 555){
digitalWrite(2, HIGH);
n = 0;
}
else {
digitalWrite(2, LOW);
}
//radio.stopListening(); // Слушаем эфир.
//radio.startListening(); // Слушаем эфир.
}
//digitalWrite(2, LOW);
}
if (n >= 10) {
digitalWrite(2, LOW);
}
}
ресивер
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <stdint.h>
//const uint64_t readingPipe = 0xE8E8F0F0ABLL;
const uint64_t writingPipe = 0xE8E8F0F0ABLL;
//RF24 radio(9, 10); // Для Pro mini
RF24 radio(48,53);// Для Меги
struct MESSAGE {
float h_out;
float t_out;
};
struct MESSAGE message;
void setup() {
//pinMode(13, OUTPUT);
//digitalWrite(13, LOW);
SPI.begin();
Serial.begin(9600);
/************************* Модуль NRF24 **********************/
delay(2000); // Пусть зарядится конденсатор
radio.begin(); // Включение модуля;
radio.setChannel(79); // Установка канала вещания;
radio.setRetries(15,15); // Установка интервала и количества попыток "дозвона" до приемника;
radio.setDataRate(RF24_250KBPS); // Установка минимальной скорости;
radio.setPALevel(RF24_PA_MAX); // Установка максимальной мощности;
radio.enableAckPayload(); // Включение буфера автоответа
radio.setAutoAck(1); // Установка режима подтверждения приема;
radio.openWritingPipe(writingPipe); // Активация данных для отправки
//radio.openReadingPipe(1,readingPipe); // Активация данных для чтения
//radio.startListening(); // Слушаем эфир.
}
void loop() {
radio.startListening(); // Слушаем эфир.
radio.stopListening(); // Слушаем эфир.
delay(2000);
int command = 555;
//float message;
radio.write(&command, sizeof(message));
if (radio.isAckPayloadAvailable())
{radio.read(&message, sizeof(message));
}
//Serial.println(message,2);
Serial.print(" Temperature: ");
Serial.print(message.t_out,2);
Serial.print(" Hinidity: ");
Serial.println(message.h_out,2);
}
Если не ошибаюсь помнится прилепил на датчик светодиод наличия связи с базой (ресивером). Надо вникнуть в эти трубы .
Давно это было
Остання редакція Nefreemen (2016-07-20 00:32:59)
Неактивний
Тоже схожая проблема! Кондеры припаял и всё заработало. Однако обнаружилась другая проблема... Система работает как радиоуправление самолётом, одна ардуинка стоит в самом самолёте и питается от регулятора оборотов безколлекторного двигателя и с ней проблем нет, а вот другая стоит в пульте и питается от кроны, она тоже работала нормально, но вот я решил заменить уже изрядно подсевшую батарейку на новую и обнаружил, что радиомодуль с ней не запускается... От подсевшей или от usb полет нормальный а с новой нет. Замер напряжения показал, что при напряжении питания Ардуино Уно выше 8 Вольт радиомодуль не запускается, хотя на самом модуле ровно 3.3 Вольта (модуль подключен через переходник, который питается от 5 Вольт и имеет на борту стабилизатор на 3.3 Вольта). Запускается радиомодуль при напряжении питания самого модуля 3.2 - 3.27 Вольта. Смена номиналов конденсаторов результата не дало, замена модулей местами тоже... Может подкинете ещё какие-нибудь идеи?
... Может подкинете ещё какие-нибудь идеи?
Купите хорошую батарейку.