@PiratFox,
Чет не хочет никак, все что не изменяет было удалено из скетча. Так же вращает 1 движок 1 джойстиком, второй не реагирует..
Скетч Передатчика(пульта):
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 9
#define CSN_PIN 10
#define JOYSTICK_1_Y A1
#define JOYSTICK_2_Y A4
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(CE_PIN, CSN_PIN);
int joystick[9];
void setup()
{
radio.begin();
delay(2);
radio.setChannel(9);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_HIGH);
radio.openWritingPipe(pipe);
}
void loop()
{
joystick[1] = analogRead(JOYSTICK_1_Y);
joystick[3] = analogRead(JOYSTICK_2_Y);
radio.write( joystick, sizeof(joystick) );
}
Скетч Приёмника:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>
#define CE_PIN 2
#define CSN_PIN 9
int pwm = 0;
int pwm2 = 0;
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(CE_PIN, CSN_PIN);
int joystick[9];
//unsigned long time;
void setup()
{
delay(50);
radio.begin();
radio.setChannel(9);
radio.setDataRate(RF24_250KBPS);
radio.setPALevel(RF24_PA_HIGH);
radio.openReadingPipe(1,pipe);
radio.startListening();
}
void loop()
{
if ( radio.available() )
{
bool done = false;
while (!done)
{
done = radio.read( joystick, sizeof(joystick) );
if(joystick[1]>500 && joystick[1]<524)
{ digitalWrite(A2,LOW);
digitalWrite(A3,LOW);
}
if(joystick[1]>524)
{ pwm = map(joystick[1], 524,1024,0,255);
analogWrite(5,pwm);
digitalWrite(A2,LOW);
digitalWrite(A3,HIGH);
}
if(joystick[1]<500)
{ pwm = map(joystick[1],500,0,0,255);
analogWrite(5,pwm);
digitalWrite(A2,HIGH);
digitalWrite(A3,LOW);
}
if(joystick[3]>500 && joystick[3]<524)
{ digitalWrite(A4,LOW);
digitalWrite(A5,LOW);
}
if(joystick[3]>524)
{ pwm2 = map(joystick[3], 524,1024,0,255);
analogWrite(6,pwm2);
digitalWrite(A4,LOW);
digitalWrite(A5,HIGH);
}
if(joystick[3]<500)
{ pwm2 = map(joystick[3],500,0,0,255);
analogWrite(6,pwm2);
digitalWrite(A4,HIGH);
digitalWrite(A5,LOW);
}
}
}
else
{
}
}