Здравствуйте, у меня две платы Arduino Uno, подключенный к одному компьютеру, хочу настроить связь между ними через nRF24L01. На передатчике ввожу символ, на приемнике его получаю. Проблема в том, что первый символ передается хорошо, а дальше данные теряются, но когда начинаю "спамить" в передатчик на приемнике, условно через раз, данные начинают появляться. Подскажите, в чем проблема?
КОД ПЕРЕДАТЧИКА
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
RF24 radio(9, 10);
byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"};
void setup() {
Serial.begin(9600);
radio.begin();
radio.setAutoAck(0);
radio.setRetries(0, 15);
radio.enableAckPayload();
radio.setPayloadSize(32);
radio.openWritingPipe(address[0]);
radio.setChannel(0x60);
radio.setPALevel (RF24_PA_MAX);
radio.setDataRate (RF24_250KBPS);
radio.powerUp();
radio.stopListening();
}
void loop() {
if (Serial.available() > 0){
char counter = Serial.read();
radio.write(&counter, sizeof(counter));
Serial.print("Sent: ");
Serial.println(counter);
}
}
КОД ПРИЕМНИКА
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
RF24 radio(9, 10);
//RF24 radio(9,53);
byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб
void setup() {
Serial.begin(9600);
radio.begin();
radio.setAutoAck(0);
radio.setRetries(0, 15);
radio.enableAckPayload();
radio.setPayloadSize(32);
radio.openReadingPipe(1, address[0]);
radio.setChannel(0x60);
radio.setPALevel (RF24_PA_MAX);
radio.setDataRate (RF24_250KBPS);
radio.powerUp();
radio.startListening();
}
void loop() {
byte pipeNo;
char gotByte;
while (radio.available(&pipeNo)) {
radio.read(&gotByte, sizeof(gotByte));
Serial.print("Recieved: ");
Serial.println(gotByte);
}
}
Не получается настроить связь через nRF24L01
Вернуться в «Программирование Ардуино»
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей