Я использую 2 модуля arduino uno и 433 МГц Rf. Я пытаюсь переместить два серводвигателя отдельно, изменяя значение потенциометра.
Но мой код перемещает сервоприводы вместе. Я хочу, чтобы когда я изменял первое значение потенциометра, первое движение сервопривода, а когда я изменяю второе - второе движение сервопривода.
Это мой код передатчика:
//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» или «2», затем отправьте данные для этого сервопривода. В приемнике проверьте один из этих символов, и тогда вы узнаете, что данные после них предназначены для этого конкретного сервопривода.
Можете ли вы показать мне пример этого
Отправьте два значения, поскольку они могут быть различимы, как в передатчике,
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);
}
Он продолжает вращать первый двигатель, он нестабилен
попробуйте убрать задержку (200); выписка из кода получателя и модифицирующая задержка (200); указание в передатчике кода задержки (500);
Я получаю правильное значение, а затем оно изменилось, а затем вернулось ... Как два значения, смешанные в одном сервоприводе
Вы должны отправить идентификатор сервопривода вместе со значением, таким образом, когда вы получите данные, которые вы знаете, о каком сервоприводе вы говорите.