1

Topic: Помогите пожалуста. Как сделать плавный поворот серво?

Здравствуйте, никак не могу заставить серво вращаться плавно.
Написал вот такой код:


#include <Servo.h>

/*
   -- New project1 --
   
   This source code of graphical user interface
   has been generated automatically by RemoteXY editor.
   To compile this code using RemoteXY library 3.1.13 or later version
   download by link http://remotexy.com/en/library/
   To connect using RemoteXY mobile app by link http://remotexy.com/en/download/                   
     - for ANDROID 4.13.13 or later version;
     - for iOS 1.10.3 or later version;
   
   This source code is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.   
*/

//////////////////////////////////////////////
//        RemoteXY include library          //
//////////////////////////////////////////////

// можете включить вывод отладочной информации в Serial на 115200
//#define REMOTEXY__DEBUGLOG   

// определение режима соединения и подключение библиотеки RemoteXY
#define REMOTEXY_MODE__HARDSERIAL


// настройки соединения
#define REMOTEXY_SERIAL Serial
#define REMOTEXY_SERIAL_SPEED 9600


#include <RemoteXY.h>

// конфигурация интерфейса RemoteXY 
#pragma pack(push, 1) 
uint8_t RemoteXY_CONF[] =   // 45 bytes
  { 255,2,0,0,0,38,0,17,0,0,0,13,2,106,200,200,84,1,1,2,
  0,4,16,22,27,81,17,53,78,14,176,94,26,4,18,152,73,24,150,2,
  17,71,0,37,26 };
 
// структура определяет все переменные и события вашего интерфейса управления
struct {

    // input variables
  int8_t slider_01; // oт -100 до 100
  int8_t slider_02; // oт 0 до 100

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0

} RemoteXY;   
#pragma pack(pop)

/////////////////////////////////////////////
//           END RemoteXY include          //
/////////////////////////////////////////////

Servo myservo;
Servo motor1;
void setup()
{
  RemoteXY_Init ();
  myservo.attach(3);
  motor1.attach(2);
  motor1.writeMicroseconds(1500);
  delay(2000);
  motor1.writeMicroseconds(800);
  delay(6000);



  // TODO you setup code
 
}

void loop()
{
  RemoteXY_Handler ();
 
  for (int x = map(RemoteXY.slider_01, -100, 100, 0, 180); x <= 180; x++){
    myservo.write(x);
    RemoteXY_delay(10);
  }
  for (int x = map(RemoteXY.slider_01, -100, 100, 0, 180); x >= 0; x--){
    myservo.write(x);
    RemoteXY_delay(10);}

 
 
  // TODO you loop code
  // используйте структуру RemoteXY для передачи данных
  // не используйте функцию delay(), вместо нее используйте RemoteXY_delay()
  //int x = map(RemoteXY.slider_01, -100, 100, 0, 180);
  //myservo.write(x);
  //RemoteXY_delay(1);
 
  int val = map(RemoteXY.slider_02, 0, 100, 800, 1500);
  motor1.writeMicroseconds(val);

}
Но с таким кодом серво поварачивается самопроизвольно. Помогите исправить код или подскажите новый пожалуйста.