Написал программу, пока кнопка на втором пине не нажата он должен ехать прямо, при нажатии должно уйти в rasvorot и повернуть но сие действие не выполняется. Не могу понять в чём причина
#define IN1 7
#define IN2 6
#define IN3 5
#define IN4 3
#define enA 10
#define enB 9
volatile uint32_t atime;
void setup()
{
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(2, INPUT_PULLUP);
attachInterrupt(0, rasvorot, FALLING);
}
void loop()
{
analogWrite(enA, 70);
analogWrite(enB, 73);
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
digitalWrite(IN3, 1);
digitalWrite(IN4, 0);
}
void rasvorot()
{
if (millis() - atime > 230)
{
atime = millis();
analogWrite(enA, 70);
analogWrite(enB, 73);
digitalWrite(IN1, 0);
digitalWrite(IN2, 1);
digitalWrite(IN3, 0);
digitalWrite(IN4, 1);
}
if (millis() - atime > 360)
{
atime = millis();
analogWrite(enA, 70);
analogWrite(enB, 73);
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
digitalWrite(IN3, 0);
digitalWrite(IN4, 1);
}
}
#define IN1 7
#define IN2 6
#define IN3 5
#define IN4 3
#define enA 10
#define enB 9
volatile uint32_t atime;
void setup()
{
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(2, INPUT_PULLUP);
attachInterrupt(0, rasvorot, FALLING);
}
void loop()
{
analogWrite(enA, 70);
analogWrite(enB, 73);
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
digitalWrite(IN3, 1);
digitalWrite(IN4, 0);
}
void rasvorot()
{
if (millis() - atime > 230)
{
atime = millis();
analogWrite(enA, 70);
analogWrite(enB, 73);
digitalWrite(IN1, 0);
digitalWrite(IN2, 1);
digitalWrite(IN3, 0);
digitalWrite(IN4, 1);
}
if (millis() - atime > 360)
{
atime = millis();
analogWrite(enA, 70);
analogWrite(enB, 73);
digitalWrite(IN1, 1);
digitalWrite(IN2, 0);
digitalWrite(IN3, 0);
digitalWrite(IN4, 1);
}
}