Помогите разобраться.

JesterKING
Offline
Зарегистрирован: 09.03.2021

Привет. Дело такое: у меня две нрф24, соответственно одна стоит на пульте другая на приемнике. На пульте джойстик, на приёмнике L298N. Не могу сделать так, чтобы двигатель крутился в одну и в другую сторону. Помогите ,пожалуйста, направьте в нужную сторону

//ПРИЁМНИК

#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();
  }

}

 

b707
Онлайн
Зарегистрирован: 26.05.2017

JesterKING - что непонятно из того, что я вам уже ответил у Гайвера?

В приемнике строка 25 - вы правда думаете,  что достаточно приравнять motor элементу массива один раз и переменная будет обновляться сама?

Подумайте над ответами сначала, прежде чем новые вопросы задавать.

 

b707
Онлайн
Зарегистрирован: 26.05.2017

ой мама... посмотрел в поиске - да ТС уже который раз приходит с этим кодом. Поменяет пару операторов, подождет два-три месяца - и снова с тем же вопросом, авось прокатит.

JesterKING - вы за это время весь учебник Си наизусть могли бы выучить... не то что скетч написать

 

b707
Онлайн
Зарегистрирован: 26.05.2017

опять я злой?

"это не мы злые, это жисть такая!" (с)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

b707 пишет:

опять я злой?

"это не мы злые, это жисть такая!" (с)

Велосипеда-то поди нету?