NRF24L01 Связь
Всем доброе утро. Я только недавно присоединился к этому сайту после проблем на форуме Arduino со входом в систему. Я делаю проект с радиоуправляемой машиной с Arduino Nano и модулями NRF24L01. Прошлой ночью я не спал поздно, укорачивая провода, обжимая и обрезая их, чтобы они подходили к NRF24L01. На прошлой неделе я также припаял конденсатор для уменьшения шума, как продолжение упомянутого выше метода. Я использовал следующие коды для передатчика и приемника. Получатель выдает мне это сообщение об ошибке: «недействительное значение не игнорируется, как должно быть». Я не эксперт в кодировании, хотя я взял два курса для этого. Пожалуйста, помогите мне исправить эти коды. Вот коды:
Передатчик '''//Кодировка передатчика для радиоприемопередатчика nrf24L01. //пример привет мир // https://www.electroniclinic.com/
/* штифты соединения
- vcc 3.3
- земля земля
- пин9
- CSN pin8
- sck pin13
- Mosi pin11
- мисо pin12
*/
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 9
#define CSN_PIN 8
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(CE_PIN, CSN_PIN);
char data[] = "Hello World, Electronic Clinic";
void setup()
{
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(pipe);
}
void loop()
{
radio.write( data, sizeof(data) );
}
Получатель
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(9, 8); // CE, CSN
const byte address[6] = "00001";
void setup() {
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MIN);
radio.startListening();
}
void loop() {
if (radio.available()) {
char text[32] = "";
radio.read(&text, sizeof(text));
Serial.println(text);
}
}
@Gizmo8 , 👍-1
Обсуждение1 ответ
Это может быть полезно.
https://www.deviceplus.com/arduino/nrf24l01-rf-module-tutorial/
Я думаю, вам нужно использовать один и тот же адрес канала для модулей чтения/записи. В вашем примере вы пишете на один адрес канала (0xE8E8F0F0E1LL;), но затем получаете на другой адрес ("00001").
Я бы посоветовал вам сначала использовать один из примеров скетча Arduino, а затем начать работать с основами. Это поможет проверить вашу проводку и конфигурацию. После этого приступайте к настройке программного обеспечения в соответствии со своими потребностями.
Я часто обнаруживаю, что использование "доверенных" пример приложения сначала, я помогаю устранить неуверенность в программном обеспечении, которое помогает мне решить проблемы с проводкой и питанием.
Надеюсь, это поможет вам
Хорошо, извините за это, я перепутал порты. По иронии судьбы, я как раз изучал радиочасти кода, а вы только что упомянули трубы. Я просто смотрел на это. Код загрузился, но я не вижу текста. Я попробую эти основные скетчи снова. Я думаю, что они не работали раньше из-за аппаратной проблемы. Спасибо., @Gizmo8
Итак, как мне узнать, какой адрес использовать? Извините, я новичок в радиотрансиверах и приемниках. Это как-то связано с шестнадцатеричным преобразованием? Он преобразуется в 1000340517089. Означает ли это что-то для константного байтового адреса?, @Gizmo8
Итак, должны ли первые 5 бит преобразованного шестнадцатеричного числа быть в константном битовом адресе получателя? Я пытаюсь понять жаргон сейчас в учебнике, который вы предоставили. Я буду читать дальше., @Gizmo8
Я просто что-то запутался в константном байтовом адресе [6], в соответствии с uint64_t, на приемнике. Я читал статью об использовании двух младших значащих битов из шестнадцатеричной системы счисления. В этом случае должен ли постоянный байтовый адрес [6] = 00001, скажем, постоянный байтовый адрес [6] = E1/000E1 или 0x000E1?, @Gizmo8
Итак, скетч «Начало работы» сработал. Проблема была в том, что я ничего не мог прочитать из-за скорости передачи данных. Я заметил, что моя скорость передачи всегда должна превышать 115200. Поэтому я меняю скорость передачи на ту, что в последовательном мониторе. Однако потребовалось немного времени, чтобы показать все буквы для передачи. Тем не менее, я продолжал получать сообщение «Ошибка передачи или время ожидания истекло» на стороне передатчика. Затем на стороне приемника я продолжал получать «Радиооборудование не отвечает». Я думаю, это потому, что мои провода недостаточно плотно обжаты на конце гнездового разъема. Он передает после того, как я шевелю провод., @Gizmo8
- Загрузка Arduino Nano дает ошибку: avrdude: stk500_recv(): programmer is not responding
- как быстро loop() работает в Arduino
- Использовать Arduino Nano V3 для программирования другого Arduino (Pro Mini)?
- Как прочитать значение PIN PWM-выхода?
- Как мигать светодиодом и одновременно запускать другой код?
- Подключение Arduino Nano к Raspberry Pi Zero
- Как автоматически сбросить модуль NRF24L01
- Программа Nano Every с использованием порта UPDI
это сайт вопросов и ответов ... это не чат-форум ... пожалуйста, воздержитесь от включения не относящейся к делу информации в свой пост ... проблемы с форумом arduino, длительность обжима проводов и время пайки конденсаторов не имеют отношения к проблема ... пожалуйста, задайте конкретный вопрос, а также соответствующую информацию, например, где припаян конденсатор, @jsotola
Ладно, извини за это. Что мне сделать, чтобы мой код заработал? Я включил код ошибки, поэтому решил, что мне нужна помощь с кодом., @Gizmo8
Ладно, извините за это, ребята, я перепутал порты. По иронии судьбы, я как раз изучал радиочасти кода, и кто-то только что упомянул трубы. Код загрузился, но я не вижу текста., @Gizmo8