Помогите разобраться с кодом

Proger_xxx
Offline
Зарегистрирован: 01.03.2016

Не могу понять почему не работает на Протеусе. Вроде все правильно. Компилятор не ругает. Логика совпадает

int LedR = 1;
int LedG = 3;
int LedB = 5;
int Motor = 9;
int Button = 2;
int SigTime1 = 300;
int SigTime2 = 500;
int SigTime3 = 700;
int LowTime = 1000;
int flag = 0;
int regim = 0;

void setup()
{
pinMode(LedR, OUTPUT);
pinMode(LedG, OUTPUT);
pinMode(LedB, OUTPUT);
pinMode(Motor, OUTPUT);
}

void loop()
{
if(digitalRead(Button) == HIGH && flag == 0)
{
regim ++;
flag = 1;

if(regim > 4)
{
regim = 0;
}
}

if(digitalRead(Button) == LOW && flag == 1)
{
flag = 0;
}

if(regim == 0)
{
digitalWrite(LedR, LOW);
digitalWrite(LedG, LOW);
digitalWrite(LedB, LOW);
digitalWrite(Motor, LOW);
}

if(regim == 1)
{
digitalWrite(LedR, HIGH);
digitalWrite(Motor, HIGH);
delay(SigTime1);
digitalWrite(Motor, LOW);
digitalWrite(LedR, LOW);
}

if(regim == 2)
{
digitalWrite(LedG, HIGH);
digitalWrite(Motor, HIGH);
delay(SigTime2);
digitalWrite(Motor, LOW);
digitalWrite(LedG, LOW);
}

if(regim == 3)
{
digitalWrite(LedB, HIGH);
digitalWrite(Motor, HIGH);
delay(SigTime3);
digitalWrite(Motor, LOW);
digitalWrite(LedB, LOW);
}
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Proger_xxx пишет:

Логика совпадает

С чем?

Вы реально думаете, что все знают что именно Вы хотели сделать, чего Вы ожидаете от этого кода и что Вас в нём не устраивает?

DIVGENY
Offline
Зарегистрирован: 23.08.2016

 грабли


if(regim > 4)
{
regim = 0;
}

 

 

b707
Offline
Зарегистрирован: 26.05.2017

Proger_xxx пишет:

Не могу понять почему не работает на Протеусе.

как именно не работает?

DIVGENY
Offline
Зарегистрирован: 23.08.2016

опрос кнопки без задержки

я не уверн, но pinMode(Button, INPUT);

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

DIVGENY пишет:

опрос кнопки без задержки

я не уверн, но pinMode(Button, INPUT);

#403 #409

T.Rook
Offline
Зарегистрирован: 05.03.2016

Просто уточняю: при regim=4 ничего не делаем, пустой прогон и при новом loop если digitalRead(Button)=1: regim ++? 

UPD. Наверное DIVGENY  в #2  обращал внимание на тоже самое.