я вам несколько раз сказал про прием какого-то левого массива, сами-то не видите? Или вы в этом коде ничего не понимаете?Я так понял в коде есть мусор? Покажите.
GMotor motorR(DRIVER3WIRE, 2, 4, 7, (LOW/HIGH) );
что сделать?если вы знаете, как это сделать вперед_ bort707
//*********************************************************************************
// Пульт
//*********************************************************************************
/*
RF24 radio(9,10); // CE, CSN
A0_Джойстик A (М1)
A1_Джойстик B (М2)
A2_Джойстик C (Серво1)
A3_Джойстик D (Серво2)
D2_кнопка (Реле)
*/
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
RF24 radio(9,10); // CE, CSN
byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб
char xyData[32] = "";
int joystick[6];
int potpin_1 = A2;//Серво 1 на A2
int val_1;
int potpin_2 = A3;// Серво 2 на A3
int val_2;
int button1 = 2;// Кнопка 1 на D2
void setup() {
Serial.begin(9600);
pinMode(button1, INPUT_PULLUP);
radio.begin();
radio.setAutoAck(1); //режим подтверждения приёма, 1 вкл 0 выкл
radio.setRetries(0, 15); //(время между попыткой достучаться, число попыток)
radio.enableAckPayload(); //разрешить отсылку данных в ответ на входящий сигнал
radio.setPayloadSize(32); //размер пакета, в байтах
radio.openWritingPipe(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.stopListening(); //не слушаем радиоэфир, мы передатчик
}
void loop() {
val_1 = analogRead(potpin_1),val_1 = map(val_1, 0, 1023, 0, 127);// Серво 1
val_2 = analogRead(potpin_2),val_2 = map(val_2, 0, 1023, 0, 180);// Серво 2
int signalX = 255 - analogRead(0) / 2; // Джойстик на А0
int signalY = 255 - analogRead(1) / 2; // Джойстик на А1
joystick[0] = signalX ;
joystick[1] = signalY ;
joystick[2] = val_1 ;
joystick[3] = val_2 ;
joystick[4] = !digitalRead(button1);
radio.write( joystick, sizeof(joystick) ); // Читаем сигнал
}
//*********************************************************************************
// Машинка
//*********************************************************************************
/* https://community.alexgyver.ru/threads/arduino-nrf24l01-mashinka.5463/
RF24 radio(9,10); // CE, CSN
D2 D3__ DriwerA (плавно вперед назад один канал,
Тут есть функцыя СТОП мотор при пропадании сигнала с передатчика)
D5 D6__ DriwerB (плавно вперед назад второй канал)
D7 ____Серво 1
D8 ____Серво 2
D4 ____Реле (фара)
*/
#include <Servo.h>
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include "GyverMotor.h"
GMotor motorR(DRIVER2WIRE, 2, 3, HIGH);
GMotor motorL(DRIVER2WIRE, 5, 6, HIGH);
RF24 radio(9, 10);
byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб
char recieved_data[32] = "" ;
int xAxis, yAxis;
int joystick[6];
int signalY = 0 ;
int signalX = 0 ;
int relay1 = 4;
Servo servo1;
Servo servo2;
int timeout = 500;
int lastTime = 0;
void setup() {
pinMode(relay1, OUTPUT);
servo1.attach(7);
servo2.attach(8);
motorR.setMode(FORWARD);
motorL.setMode(FORWARD);
Serial.begin(9600);
radio.begin();
///_________________________________________________________________///
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() {
if (radio.available()) {
lastTime = millis();
radio.read( joystick, sizeof(joystick) );
signalY = joystick[0];
signalX = joystick[1];
Serial.println(signalY);
Serial.println(signalX);
int dutyR = signalY;
int dutyL = signalX;
motorR.setSpeed(dutyR);
motorL.setSpeed(dutyL);
servo1.write(joystick[2]);
servo2.write(joystick[3]);
digitalWrite(relay1, joystick[4]);
}
int dt = millis() - lastTime;
if (dt >= timeout) {
motorR.setSpeed(0);
}
}
так - не будет, почему - я писал в начале обсуждениябудет два радиоканала одновременно принимать или нет.