нужно сделать 2 сервопривода двигаться без проводов - PullRequest
0 голосов
/ 18 декабря 2018

Я использую 2 модуля Arduino Uno и 433 МГц. Я пытаюсь переместить два серводвигателя по отдельности, изменяя значение потенциометра.

Но мой код перемещает сервомоторы вместе.Я хочу, чтобы при первом изменении значения сервопривода я изменил значение первого потенциометра, а при втором изменении хода второго сервопривода.

Это мой код передатчика:

//Transmitter Code
#include <RCSwitch.h>

RCSwitch myswitch = RCSwitch();

int pot = A0;
int pot1 = A1;

void setup() {
    Serial.begin(9600);

    myswitch.enableTransmit(10);

}

void loop() {

    int pott = analogRead(pot);
    int pott1 = analogRead(pot1);

    int servo= map(pott,0,1024,1,180);
    int servo1= map(pott1,0,1024,1,180);

    myswitch.send(servo, 10);
    delay(200);
    myswitch.send(servo1, 10);
    delay(200);

}

.......................................................................

А это мой код получателя

//Receiver Code:
#include <RCSwitch.h>
#include <Servo.h>

int pos = 0;

Servo myservo;
Servo myservo1;

RCSwitch myswitch = RCSwitch();


void setup() {
    myservo.attach(10);
    myservo1.attach(11);

    Serial.begin(9600);

    myswitch.enableReceive(0);

}

void loop() {
    if (myswitch.available()){
        int angle = myswitch.getReceivedValue();
        int angle1 = myswitch.getReceivedValue();

        myservo.write(angle);
        delay(200);
        myservo1.write(angle1);
        delay(200);
    }
}

1 Ответ

0 голосов
/ 19 декабря 2018

Отправьте два значения, поскольку они могут быть различимы, как в передатчике,

myswitch.send(servo, 10);
delay(200);
myswitch.send(servo1 + 1000, 10);

, а затем измените приемник

if (myswitch.available()){
    int value = myswitch.getReceivedValue();

    if(value > 1000) 
        myservo1.write(value - 1000);
    else 
        myservo.write(value);

    delay(200);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...