Ви не увійшли.
Всем день добрый. Мучался около недели, потом психанул и все удалил. Но детали куплены и все равно муляет меня. Пожалуйста помогите. Использую Ардуину Нано, 2 сервы и джойстик. По поводу передачи сигнала по радиосигналу я разобрался. Но вот написать скетч чтоб при оттягивании влево-вправо джойстика у меня сервы двигались в разные стороны, а при вверх-вниз в одну сторону, ну никак не получается... Прилагаю фоты как это должно быть. Помогите....
Неактивний
Оно как бы так. Это крайний выход. Но хочется по правильному. А еще и научиться этому. Мне удобно чтоб я видел готовый код, потом я его разбираю по частям и так учусь... Поэтому если есть возможность помочь в написании правильно кода, то пожалуйста помогите...
Неактивний
ПОЛУЧИЛОСЬ
Если есть советы как упростить.... Приму всё во внимание.... Либо есть совет как смягчить поворот серво, потому что немного жестковато поворачивает, пожалуйста, известите... ))) Надо было немного все таки включить голову... Конечно же не без помощи разобрался, спс одному человеку который направил на правильный путь...
#include <Servo.h>
Servo myservo;
Servo servo1;
Servo servo2;
int pot_x_pin = 0;
int pot_y_pin = 1;
int pot_x_val;
int pot_y_val;
int val;
void setup()
{
Serial.begin (9600);
servo1.attach(5);
servo2.attach(7);
}
void loop()
{
pot_x_val = analogRead(pot_x_pin); // считываем значение с потенциометра
pot_y_val = analogRead(pot_y_pin);
/*
Serial.print ("X=");
Serial.println (pot_x_val);
Serial.print ("Y=");
Serial.println (pot_y_val);
delay (800);
*/
//-------------------------------------------------------------------------------------------------------
if(pot_x_val > 518)// если джойстик смещён вправо
{
// переводим в градусы смещения сервомашинки: от 0 до 90 градусов относительно среднего положения
val = map(pot_x_val - 518, 0, 506, 0, 90);
// смещение серв в разные стороны
servo1.write(90 + val);
servo2.write(90 - val);
}
if(pot_x_val < 515)// если джойстик смещён вправо
{
// переводим в градусы смещения сервомашинки: от 0 до 90 градусов относительно среднего положения
val = map(pot_x_val, 513, 1024, 0, 90);
// смещение серв в разные стороны
servo1.write(90 + val);
servo2.write(90 - val);
}
//-------------------------------------------------------------------------------------------------------------
if(pot_y_val > 488)// если джойстик смещён вправо
{
// переводим в градусы смещения сервомашинки: от 0 до 90 градусов относительно среднего положения
val = map(pot_y_val - 488, 0, 536, 0, 90);
// смещение серв в разные стороны
servo1.write(90 + val);
servo2.write(90 + val);
}
if(pot_y_val < 484)// если джойстик смещён вправо
{
// переводим в градусы смещения сервомашинки: от 0 до 90 градусов относительно среднего положения
val = map(pot_y_val, 486, 1024, 0, 90);
// смещение серв в разные стороны
servo1.write(90 + val);
servo2.write(90 + val);
}
}
Неактивний