Заголовок темы должен отражать содержимое. Исправь или тема будет удалена
Привет. Дело такое: у меня две нрф24, соответственно одна стоит на пульте другая на приемнике. На пульте джойстик, на приёмнике L298N. Не могу сделать так, чтобы двигатель крутился в одну и в другую сторону. Помогите ,пожалуйста, направьте в нужную сторону
C++:
//ПРИЁМНИК
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#include <Servo.h>
int in1 = 3;
int in2 = 4;
int motor;
RF24 radio(9, 10);
byte recieved_data[3];
Servo myservo;
byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"};
void setup() {
Serial.begin(9600); /
myservo.attach(2);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
motor = recieved_data[1] ;
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]);
if(motor < 126){
digitalWrite(in1 , 1);
digitalWrite(in2 , 0);}
if(motor > 130){
digitalWrite(in1 , 0);
digitalWrite(in2 , 1);}
if (motor > 126 && motor < 130){
digitalWrite(in1 , 0);
digitalWrite(in2 , 0);}
}}
//ПЕРЕДАТЧИК
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
RF24 radio(9, 10);
byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб
byte potent = 0;
byte motor = 1;
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() {
transmit_data[0] = map(analogRead(potent), 0, 1023, 0, 180);
transmit_data[1]= map(analogRead(motor),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();
}
}