Topic: Дерганье серво при отсутствии действий.
Сделал небольшой проект по управлению 4-х серво.
3 сервы управляются с джойстика. Последняя двумя кнопками.
Не пойму что не так. даже если в проекте вообще ничего не делать, а только прописать наличие серво-приводов в скейче, они постоянно дергаются на месте.
Использую Nano на сенсоршилде, Bluetoth HC-05, Servo SG90.
Проект сперва писал сам в IDE, потом решил попробовать написать в FLProg (вдруг ошибки). Даже добавить график на всякий случай, вдруг переменная угла меняется... Все чисто. Когда управляю джойстиком, серво крутится, но в тоже время продолжает дергаться...
Это проблема с блютузом или какие-то помехи от библиотеки ремоут-икс-игрек?
#define REMOTEXY_MODE__SOFTSERIAL
#include <SoftwareSerial.h>
#include <RemoteXY.h>
#include <Servo.h>
Servo _SM1;
#define REMOTEXY_SERIAL_RX 10
#define REMOTEXY_SERIAL_TX 11
#define REMOTEXY_SERIAL_SPEED 9600
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] = {4, 4, 66, 0, 8, 16, 0, 5, 32, 1, 29, 34, 34, 201, 16, 31, 1, 1, 56, 46, 40, 13, 1, 31, 208, 158, 209, 130, 208, 191, 209, 131, 209, 129, 209, 130, 208, 184, 209, 130, 209, 140, 0, 1, 1, 56, 27, 40, 13, 134, 31, 208, 146, 208, 183, 209, 143, 209, 130, 209, 140, 0, 68, 17, 1, 2, 97, 22, 8, 36};
struct {
signed char joystick_1_x;
signed char joystick_1_y;
unsigned char btn_dismiss;
unsigned char btn_catch;
float onlineGraph_1;
unsigned char connect_flag;
} RemoteXY;
#pragma pack(pop)
int _gtv1;
bool _changeNumber1_Out = 0;
int _changeNumber1_OLV;
void setup()
{
RemoteXY_Init ();
_SM1.attach(5);
}
void loop()
{ int _tempVariable_int;
RemoteXY_Handler ();
//Плата:1
RemoteXY.onlineGraph_1 = _gtv1;
_gtv1 = (map(((RemoteXY.joystick_1_x)), (-100), (100), (0), (180)));
if (_changeNumber1_Out) {
_changeNumber1_Out = 0;
} else {
_tempVariable_int = (map(((RemoteXY.joystick_1_x)), (-100), (100), (0), (180)));
if (_tempVariable_int != _changeNumber1_OLV) {
_changeNumber1_OLV = _tempVariable_int;
_changeNumber1_Out = 1;
}
}
if (_changeNumber1_Out) {
_SM1.write ((map(((RemoteXY.joystick_1_x)), (-100), (100), (0), (180))));
}
}