помогите пожалуйста разобраться

Статус
В этой теме нельзя размещать новые ответы.

JesterKing

✩✩✩✩✩✩✩
22 Фев 2021
14
0
Заголовок темы должен отражать содержимое. Отредактируй или ветка будет удалена
Проблема такая: пытаюсь соединить джойстик и два двигателя через нрф24. Никак не могу понять как написать код для MX1805 чтобы двигатели вращались вперед назад при управлении джойстиком. Подскажите где про это можно прочитать и в чём тут проблема?
C++:
//ПЕРЕДАТЧИК
#include<SPI.h>
#include "RF24.h"
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int massiv[2];
void setup(void){
radio.begin();
radio.openWritingPipe(pipe);
}
void loop() {

massiv[0] = map (analogRead(A1),0,1023,0,255);
massiv[1] = map (analogRead(A2),0,1023,0,255);
radio.write(&massiv, sizeof(massiv));

}
//ПРИЕМНИК
#include <Servo.h>
#include<SPI.h>
#include "RF24.h"
Servo servo1;
RF24 radio(9,10);
const uint64_t pipe = 0xE8E8F0F0E1LL;
int massiv[2];
int in1 = A1;
int in2 = A2;
int in3 = A3;
int in4 = A4;
byte spd = 250;
void setup(){
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
servo1.attach(3);
delay(50);
radio.begin();
radio.openReadingPipe(1,pipe);
radio.startListening();
}
void loop(){
if (radio.available()){
  radio.read(&massiv,sizeof (massiv));}
servo1.write(map(massiv[0], 90, 180, 0,255));

if (massiv[1]<110)

  digitalWrite(in1,0);
  digitalWrite(in2,spd);
  digitalWrite(in3,0);
  digitalWrite(in4,spd);
if (massiv[1]>140)

  digitalWrite(in1,spd);
  digitalWrite(in2,0);
  digitalWrite(in3,spd);
  digitalWrite(in4,0);
if (massiv[1]>110&& massiv[0]<140)
 
   digitalWrite(in1,0);
   digitalWrite(in2,0);
   digitalWrite(in3,0);
   digitalWrite(in4,0);
}
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,272
1,303
Москва
В этом коде по условию выполниться только 1-ая строка, остальные будут выполняться безусловно. Аналогичных блоков 3 шт.
C++:
 if (massiv[1] < 110)
    digitalWrite(in1, 0);
  digitalWrite(in2, spd);
  digitalWrite(in3, 0);
  digitalWrite(in4, spd);
И в последнем блоке будет всегда выполняться этот фрагмент:
digitalWrite(in2, 0);
digitalWrite(in3, 0);
digitalWrite(in4, 0);
 
  • Лойс +1
Реакции: andyparker
Статус
В этой теме нельзя размещать новые ответы.