// на реальном оборудовании работает
int key1 = 6;
int key1_st;
int on_off;
int key2 = 8;
int key2_st;
int key2_mode = 0;
int ledZ = 3;
int ledK = 5;
unsigned long ttek = 0; // текущее время
unsigned long tpred = 0; // предыдущее время
unsigned long delta;
void setup() {
// put your setup code here, to run once:
pinMode(key1, INPUT_PULLUP);
pinMode(key2, INPUT_PULLUP);
pinMode(ledZ, OUTPUT);
pinMode(ledK, OUTPUT);
//Serial.begin(9600);
}
void loop() {
ttek = millis();
delta = ttek-tpred;
key1_st = digitalRead(key1);
key2_st = digitalRead(key2);
if (key1_st == 0)
{
if (on_off == 1)
{on_off = 0;}
else { on_off = 1;}
}
if ((key2_st == 0) and (key2_mode == 0))
{key2_mode = 1;}
else if (key2_st == 0 and key2_mode == 1)
{key2_mode = 2;}
else if (key2_st == 0 and key2_mode == 2)
{key2_mode = 3;}
else if (key2_st == 0 and key2_mode == 3)
{key2_mode = 0;}
if ((on_off == 1) and (key2_mode == 0))
{digitalWrite(ledK,0);
digitalWrite(ledZ,0);}
if ((on_off == 1) and (key2_mode == 1))
{ if (delta>0 && delta < 230 )
{ digitalWrite(ledK,1);}
if (delta>=230 && delta < 800 )
{ digitalWrite(ledK,0);} }
if ((on_off == 1) and (key2_mode == 2))
{if (delta>0 && delta < 400)
{ digitalWrite(ledZ,0);}
if ((delta>=400) && (delta < 1600))
{ digitalWrite(ledZ,1);}}
if ((on_off == 1) and (key2_mode == 3))
{ if (delta>0 && delta < 230 )
{ digitalWrite(ledK,1);}
if (delta>=230 && delta < 800 )
{ digitalWrite(ledK,0);}
if (delta>0 && delta < 400)
{ digitalWrite(ledZ,0);}
if ((delta>=400) && (delta < 1600))
{ digitalWrite(ledZ,1);}
}
/*if (on_off == 1)
{
if (delta>0 && delta < 230 )
{ digitalWrite(ledK,1);}
if (delta>=230 && delta < 800 )
{ digitalWrite(ledK,0);}
if (delta>0 && delta < 400)
{ digitalWrite(ledZ,0);}
if ((delta>=400) && (delta < 1600))
{ digitalWrite(ledZ,1);}
}
else
{digitalWrite(ledK,0);
digitalWrite(ledZ,0);
}*/
// digitalWrite(ledZ,0);
if (delta>1600 )
{ tpred = millis();}
/*
Serial.print("key1_st ");
Serial.print(key1_st);
Serial.print(" on_off ");
Serial.print(on_off);
Serial.print(" key2_st ");
Serial.print(key2_st);
Serial.print(" key2_mode ");
Serial.println(key2_mode);
*/
}