Есть две ардунки с nrf 24 . Один модуль на пульте с джойстиком , второй стоит с L298N. Проблема в том, что мотор не реагирует на джойстик. Помогите , пожалуйста разобраться...
TX
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#define JOY1 A0
#define JOY2 A1
RF24 radio(9, 10);
byte address[x][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб
byte transmit_data[3];
byte latest_data[3];
boolean flag;
void setup() {
Serial.begin(9600);
radio.begin();
radio.setAutoAck(1);
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() {
Serial.println(analogRead(JOY2));
transmit_data[0] = map(analogRead(JOY1), 0, 1023, 0, 180);
transmit_data[1]= map(analogRead(JOY2),0,1023,0,255);
for (int i = 0; i < 3; i++) {
if (transmit_data[i] != latest_data[i]) {
flag = 1;
latest_data[i] = transmit_data[i];
}
}
if (flag == 1) {
radio.powerUp();
radio.write(&transmit_data, sizeof(transmit_data));
flag = 0;
radio.powerDown();
}
}
RX
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include <Servo.h>
#define IN1 6
#define IN2 7
#define ENA 8
RF24 radio(9, 10);
byte recieved_data[3];
int pwm;
int motor;
Servo myservo;
byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"};
void setup() {
Serial.begin(9600);
myservo.attach(2);
motor = recieved_data[1];
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(ENA, OUTPUT);
radio.begin();
radio.setAutoAck(1);
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() {
Serial.println(recieved_data[1]);
byte pipeNo;
while ( radio.available(&pipeNo)) {
radio.read( &recieved_data, sizeof(recieved_data) );
myservo.write(recieved_data[0]);
valX = recieved_data[1];
if(valX > 126 && valX < 130){
digitalWrite(IN1, 0);
digitalWrite(IN2, 0);
analogWrite(ENA, 0 );}
if(valX > 130) {
valX = map(valX, 130, 255, 0, 255)
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
analogWrite(ENA, valX );}
if(valX < 126) {
valX = map(valX, 126, 0, 0, 255);
digitalWrite(IN1, 0);
digitalWrite(IN2, 1);
analogWrite(ENA, valX ); }}}