byte IncreaseDrink(byte old_d) // тут проверка на положение в парковке!
{
if (drinks_array[0].Position != servo.read()) return;
(old_d >= max_Drink ) ? old_d = min_Drink : old_d++;
return old_d;
};
//------------------------------------------------------//
byte DecreaseDrink(byte old_d)
{
if (drinks_array[0].Position != servo.read()) return; // тут проверка на положение в парковке!
(old_d <= min_Drink ) ? old_d = max_Drink : old_d--;
return old_d;
};
byte IncreaseDrink(byte old_d) // тут проверка на положение в парковке!
{
if (drinks_array[0].Position != servo.read()) return old_d;
old_d+=2;
if (old_d > max_Drink ) old_d = min_Drink;
return old_d;
};
byte DecreaseDrink(byte old_d)
{
if (drinks_array[0].Position != servo.read()) return old_d;
old_d-=2;
if (old_d < min_Drink ) old_d = max_Drink;
return old_d;
};
#define STEP_TIME 15 // свободное время между дрыгами сервы, чем больше время, тем проше играть энкодером во время движения, но и серва будет работать медленне
#define SERVO_DELAY 25 // время необходимое серве для завершения 1-го шага движения.
Менял там, не помогло, краник дергается все равно ((Лучше этого не делать, но если оч. надо, то можно попробовать менять вот эти параметры.
1-ый параметр это время, которое отдается на все остальные действия в промежутках между шагами сервы, его надо уменьшить. до 10 точно можно.C++:#define STEP_TIME 15 // свободное время между дрыгами сервы, чем больше время, тем проше играть энкодером во время движения, но и серва будет работать медленне #define SERVO_DELAY 25 // время необходимое серве для завершения 1-го шага движения.
2-ой это время, которое необходимо серве для выполнения одного шага. У моей сервы время было 23 мс, 25-с запасом. если 25 мс не хватает, то могут быть артефакты.
// новое вычисление скорости
if (abs(Delta) > 15) speed_k = speed_k + 0.2; else speed_k = speed_k - 0.3;
if (speed_k > 3) speed_k = 3;
if (speed_k < 1) speed_k = 1;
Step = Step * speed_k;
// старое вычисление скорости
/*
if (abs(Delta) > 20) Step = Step * 3;
if (abs(Delta) > 5) Step = Step * 2;*/
Была подобная проблема с некорректной работой в другом проекте. Решил подачей +5v на конденсатор C7, при этом пин 5v на плате не задействован.Как выяснилось на некоторых платах вот такой разводки (задняя сторона) не получилось толком запустить работу с MP3 плеером. Плеер работал только при подключении по USB . Замена платы решило проблему. При этом тестовый пример работает. Т.к. платы у меня такой нет, то понять в чем проблема не получилось.
Посмотреть вложение 12399
ЗЫ, Добавлена пара новых тостов.
Приветствую. Подскажите где можно скачать эту библиотеку. Похоже ссылка не рабочая.DIO2 - для более быстрого доступа к цифровым пинам.