Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

Karavay
2015-11-10 23:57:16

ПОЛУЧИЛОСЬ  big_smile big_smile big_smile

Если есть советы как упростить.... Приму всё во внимание.... Либо есть совет как смягчить поворот серво, потому что немного жестковато поворачивает, пожалуйста, известите... ))) Надо было немного все таки включить голову... Конечно же не без помощи разобрался, спс одному человеку который направил на правильный путь...


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

} 
vvr
2015-11-10 13:26:18

если вы написали код и с ним какие то вопросы-помочь святое дело
а писать код за вас как то не правильно...

Karavay
2015-11-10 11:21:24

Оно как бы так. Это крайний выход. Но хочется по правильному. А еще и научиться этому. Мне удобно чтоб я видел готовый код, потом я его разбираю по частям и так учусь... Поэтому если есть возможность помочь в написании правильно кода, то пожалуйста помогите...

BlockThor
2015-11-07 23:04:50

А если по диагонали , то как сервы двигаться должны?
Например вверх и вправо?

Karavay
2015-11-06 12:45:52

Всем день добрый. Мучался около недели, потом психанул и все удалил. Но детали куплены и все равно муляет меня. Пожалуйста помогите. Использую Ардуину Нано, 2 сервы и джойстик. По поводу передачи сигнала по радиосигналу я разобрался. Но вот написать скетч чтоб при оттягивании влево-вправо джойстика у меня сервы двигались в разные стороны, а при вверх-вниз в одну сторону, ну никак не получается... Прилагаю фоты как это должно быть. Помогите....Dvizhenie-servov_4.jpgDvizhenie-servov_3.jpgDvizhenie-servov_2.jpgDvizhenie-servov_1.jpg

Підвал форуму