Добрый день. У меня возникла проблема с управлением серво по цифровому входу. Согласно приложенной схеме привод должен включаться с задержкой по таймеру (TON) через 5 секунд и поворачиваться (константа 90 градусов) однако при включении схемы серво начинает вращаться сразу.. Что яделаю не так?
Код сгенерированный FLprog
#include <Servo.h>
Servo _SM1;
bool _tim1I = 0;
bool _tim1O = 0;
unsigned long _tim1P = 0UL;
void setup()
{
_SM1.attach(11);
}
void loop()
{
if (1)
{ if (_tim1I) { if (_isTimer(_tim1P, 5000)) {_tim1O = 1;}} else {_tim1I =1; _tim1P = millis();}} else {_tim1O = 0; _tim1I = 0;}
if (_tim1O) {_SM1.write (90);}
}
bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}