Задержки в Arduino
Re: Задержки в Arduino
О... Протеус. Ну-ну. Очень интересно на нем работает например такой код.
Включить светодиод.
Задержка пол секунды.
Выключить светодиод.
Задержка пол секунды.
И самое главное не нужно удивляться если программа идеально работающая в протеусе почему-то не заработает в железе.
Из личного опыта протеус это самый кривой отладчик и интерпретатор электрических схем.
Включить светодиод.
Задержка пол секунды.
Выключить светодиод.
Задержка пол секунды.
И самое главное не нужно удивляться если программа идеально работающая в протеусе почему-то не заработает в железе.

Из личного опыта протеус это самый кривой отладчик и интерпретатор электрических схем.
Если долго мучиться, может быть получится.
Re: Задержки в Arduino
Да, я все это читал на форумах про него, а еще у большей половины он вообще не работал или частично что то не работало. Думаю, для моих задач, он пойдет. Ибо остальное все, что я попробовал, вообще не работает. Какие альтернативы? Бумажка с карандашиком?
А с кодом как поступить? Оставить как есть?
А с кодом как поступить? Оставить как есть?
Re: Задержки в Arduino
Код можно оставить как есть. Единственное нужно убрать точку с запятой тут void Parkuem (void){; и в делеях прописать жестко время задержки, а то из-за переменной, функция может сыграть злую шутку.
И еще. В одном из ифов нужно обязательно в условии поставить либо <=, либо >=, а то может зависнуть в промежутке.
И еще. В одном из ифов нужно обязательно в условии поставить либо <=, либо >=, а то может зависнуть в промежутке.
Если долго мучиться, может быть получится.
Re: Задержки в Arduino
Я бы даже вот так изобразил бы.
Код: Выделить всё
//P = 20 милисек
//pos = в диапазоне от 0 до 100 где то будет в момент нажатия кнопки. В 99% всех случаев наступления события в //крайних точках.
//gorizont = 55 градусов
//key1 нужен для фиксации события, нажатие кнопки, или снятия этого события.
void Parkuem (void)
{ // из любого положения поворачивает серву в горизонтальную плоскость.
if (pos <= gorizont)
{
for ( pos; pos < gorizont; pos++ )
{
myservo.write(pos); // процесс перемещения
delay(P); // ждём 20ms пока серва займёт новое положение
}
}
else
{
for ( pos; pos > gorizont; pos-- )
{
myservo.write(pos); // процесс перемещения
delay(P); // ждём 20ms пока серва займёт новое положение
}
}
key1 = 1;
}
Если долго мучиться, может быть получится.
Re: Задержки в Arduino
Принял на вооружение. Спасибо.
Логику зависания не понимаю.
if (50<50) ответ может быть только "нет", другого я не представляю...
и if (50>50) так же ответ только "нет".

Причина в компиляторе или м/с ?либо <=, либо >=, а то может зависнуть в промежутке.
Логику зависания не понимаю.
if (50<50) ответ может быть только "нет", другого я не представляю...
и if (50>50) так же ответ только "нет".
Re: Задержки в Arduino
Это если 50 не нужно. Как в алгебре круглая скобка не включает точку, а квадратная включает, при поиске корней.
Если долго мучиться, может быть получится.