#1 2015-11-06 12:45:52

Karavay
Учасник
Зареєстрований: 2015-11-04
Повідомлень: 0

Пульт ДУ для самолета (Летающее крыло)

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

Неактивний

#2 2015-11-07 23:04:50

BlockThor
Учасник
З Одесса
Зареєстрований: 2014-12-03
Повідомлень: 11
Сайт

Re: Пульт ДУ для самолета (Летающее крыло)

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

Неактивний

#3 2015-11-10 11:21:24

Karavay
Учасник
Зареєстрований: 2015-11-04
Повідомлень: 0

Re: Пульт ДУ для самолета (Летающее крыло)

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

Неактивний

#4 2015-11-10 13:26:18

vvr
Учасник
Зареєстрований: 2015-04-12
Повідомлень: 876

Re: Пульт ДУ для самолета (Летающее крыло)

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

Неактивний

#5 2015-11-10 23:57:16

Karavay
Учасник
Зареєстрований: 2015-11-04
Повідомлень: 0

Re: Пульт ДУ для самолета (Летающее крыло)

ПОЛУЧИЛОСЬ  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);
  }

} 

Неактивний

Швидке повідомлення

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

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