Официальный сайт компании Arduino по адресу arduino.cc
нужна помощь
- Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии
Пт, 19/04/2019 - 21:14
добрый вечер .что исправить в коде приемника ?при потери связи остается работать последния задача ,а хотелось бы чтоб прекрощалась выполнение кода ? -------------------------приемник ------------------ #include <SPI.h> #include "nRF24L01.h" #include "RF24.h" #include <Servo.h> RF24 radio(9, 10); // "создать" модуль на пинах 9 и 10 Для Уно //RF24 radio(9,53); // для Меги byte recieved_data[12]; // массив принятых данных byte relay61 = 6; byte relay51 = 5; byte relay = 2; byte relay1= 4; byte relay3 = 7; byte mosfet = 8; byte relay4 = 14; byte relay5 = 15; byte relay6 = 16; byte relay2 = 17; byte relay7 = 18; byte relay8 = 19; byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб void setup() { Serial.begin(9600); //открываем порт для связи с ПК pinMode(relay, OUTPUT); // настроить пин реле как выход pinMode(mosfet, OUTPUT); // настроить пин мосфета как выход pinMode(relay1, OUTPUT); pinMode(relay2, OUTPUT); pinMode(relay3, OUTPUT); pinMode(relay4, OUTPUT); pinMode(relay5, OUTPUT); pinMode(relay6, OUTPUT); pinMode(relay7, OUTPUT); pinMode(relay8, OUTPUT); pinMode(relay61, OUTPUT); pinMode(relay51, OUTPUT); radio.begin(); //активировать модуль radio.setAutoAck(1); //режим подтверждения приёма, 1 вкл 0 выкл radio.setRetries(0, 15); //(время между попыткой достучаться, число попыток) radio.enableAckPayload(); //разрешить отсылку данных в ответ на входящий сигнал radio.setPayloadSize(32); //размер пакета, в байтах radio.openReadingPipe(1, address[0]); //хотим слушать трубу 0 radio.setChannel(0x60); //выбираем канал (в котором нет шумов!) radio.setPALevel (RF24_PA_MAX); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX radio.setDataRate (RF24_250KBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS //должна быть одинакова на приёмнике и передатчике! //при самой низкой скорости имеем самую высокую чувствительность и дальность!! radio.powerUp(); //начать работу radio.startListening(); //начинаем слушать эфир, мы приёмный модуль } void loop() { byte pipeNo; while ( radio.available(&pipeNo)) { // слушаем эфир со всех труб radio.read( &recieved_data, sizeof(recieved_data) ); // чиатем входящий сигнал analogWrite(relay, recieved_data[0]); //то бишь 0 или 1 analogWrite(relay3, recieved_data[1]); analogWrite(mosfet, recieved_data[2]); analogWrite(relay1, recieved_data[3]); analogWrite(relay5, recieved_data[4]); analogWrite(relay4, recieved_data[5]); analogWrite(relay6, recieved_data[6]); analogWrite(relay2, recieved_data[7]); analogWrite(relay7, recieved_data[8]); analogWrite(relay8, recieved_data[9]); digitalWrite(relay51, recieved_data[11]); analogWrite(relay61, recieved_data[10]); } }
Код Ваш?
Вы его полностью понимаете?
код мой !пару функций строк не понимаю не понима
radio.setRetries(0, 15);
//(время между попыткой достучаться, число попыток)
46
radio.enableAckPayload()
Так Вы сами писали или Вы не понимаете? Это несовместимо.
взял аснову из( примера - radio-head master - nrf24) и перепесал на свой лад ,все работает хотелось бы только чтоб при потери связи приемник не продолжал выполнять последнюю задачу
подскажи какая функциия этих строк ,
radio.setRetries(0, 15);
//(время между попыткой достучаться, число попыток)
46
radio.enableAckPayload()
Уважаемый, ну я уж не знаю за что вам гугл обрубили, но вот. Хотя Вы не первый, и я думаю, что не последний... Парнухи надо меньше качать!
ты хоть сам читал
https://maniacbug.github.io/RF24/classRF24.html
ты хоть сам читал
Да, был неправ, тогда только сюда
сылка не работает
Моя для STM32, а так работает
мля не магу найти за что зацепится
Set the number and delay of retries upon failed submit.
Enable custom payloads on the acknowledge packets.
Ack payloads are a handy way to return data back to senders without manually changing the radio modes on both units.