Помогите объединить два скетча приемников у самого не получается. Сразу скажу скетчи писал не я а нашел в интернете по отдельности они рабочие. Скетчи передатчиков получилось объединить так что их не выкладываю 1 скетч Код (C++): #define led 8 #include <SPI.h> #include "RF24.h" RF24 radio(15,16); const uint64_t pipe = 0xE8E8F0F0E1LL; //int msg[1]; int msg[1]; int msh[1]; boolean ledOn = false; boolean lastBut = HIGH; long time = 0; long debounce = 300; int data; int data1; int pos; int fspeed; // движение вперед int bspeed; // движение назад int steer; const int in1 = 7; // direction pin 1 const int in2 = 6; // direction pin 2 const int in3 = 4; // direction pin 1 const int in4 = 2; // direction pin 2 const int ena = 5; // PWM pin to change speed const int enb = 3; byte IsConnect; void setup() { pinMode(led, OUTPUT); Serial.begin(9600); pinMode(in1, OUTPUT); // connection to L298n pinMode(in2, OUTPUT); // connection to L298n pinMode(ena, OUTPUT); // connection to L298n pinMode(in3, OUTPUT); // connection to L298n pinMode(in4, OUTPUT); // connection to L298n pinMode(enb, OUTPUT); // connection to L298n //servo1.attach(3); // delay(10); radio.begin(); radio.openReadingPipe(1,pipe); // radio.openReadingPipe(pipe); radio.startListening(); } int MotoL, MotoR; int ValStickX, ValStickY; void loop() { if (radio.available()){ radio.read(msg, 1); IsConnect = HIGH; } else{ IsConnect = LOW; } if (msh[1] == 255 && lastBut == HIGH && millis() - time > debounce) { ledOn = !ledOn; lastBut = HIGH; time = millis(); } else // Иначе, { lastBut = digitalRead(lastBut); } digitalWrite(led, ledOn); Serial.println(msh[1]); if (msg[0] <128 && msg[0] >-1){ data = msg[0]; ValStickX = map(data, 0, 127, -255, 254); } if (msg[0] < 254 && msg[0] > 127){ data = msg[0]; ValStickY = map(data, 128, 255, -255, 254); } if(abs(ValStickX) < 20){ ValStickX = 0; } if(abs(ValStickY) < 20){ ValStickY = 0; } MotoL = ValStickX - (ValStickY /1.2); MotoR = ValStickX + (ValStickY /1.2); if(IsConnect==LOW){ MotoL=0; } if(IsConnect==LOW){ MotoR=0; } // Serial.println("ML: "+String(MotoL)+", MR: "+String(MotoR)); if(MotoL > 255){ MotoL = 255; } if(MotoR > 255){ MotoR = 255; } if(MotoL < -255){ MotoL = -255; } if(MotoR < -255){ MotoR = -255; } Control4WD(MotoL, MotoR); } void Control4WD(int mLeft, int mRight){ // Serial.println("ML: "+String(mLeft)+", MR: "+String(mRight)); bool directionL, directionR; // направление вращение для L298N byte valueL, valueR; // значение ШИМ M1, M2 (0-255) if(mLeft > 0){ valueL = mLeft; directionL = 0; } else if(mLeft < 0){ valueL = abs(mLeft); directionL = 1; } else{ directionL = 0; valueL = 0; } if(mRight > 0){ valueR = mRight; directionR = 0; } else if(mRight < 0){ valueR = abs(mRight); directionR = 1; } else { directionR = 0; valueR = 0; } digitalWrite(in1, directionL); digitalWrite(in2, !directionL); digitalWrite(in3, directionR); digitalWrite(in4, !directionR); analogWrite(ena, valueL); analogWrite(enb, valueR); } 2 скетч Код (C++): #include <Servo.h> #include <SPI.h> #include "RF24.h" Servo myservo; // create servo object to control a servo RF24 radio(15,16); const uint64_t pipe = 0xE8E8F0F0E1LL; // адрес канала int msg[1]; void setup() { // Serial.begin(9600); myservo.attach(9); // attaches the servo on pin 9 to the servo object radio.begin(); radio.openReadingPipe(1,pipe); // Открываем один из 6-ти каналов приема radio.startListening(); // Начинаем слушать эфир } void loop() { if (radio.available()){ bool done = false; while (!done){ done = radio.read(msg, 1); myservo.write (msg[0]); //Serial.println(msg[0]); } } }
Сори первый скетч это я пробовал объединять все исправил на нужный. Ну а объединить нужно двигатели с сервоприводом первый и второй скетч.