bool test7 = true;
bool test6 = true;
bool test5 = true;
bool test4 = true;
bool test3 = true;
int smer;
int pocetkrokov;
void step(int smer)
{
if(smer == 1)
{
PORTB |= 1<<0;
PORTB |= 1<<1;
delay(20);
PORTB &= ~(1<<1);
}
else if(smer == 2)
{
PORTB &= ~(1<<0);
PORTB |= 1<<1;
delay(20);
PORTB &= ~(1<<1);
}
}
void setup() {
for (int i = 3; i < 8; i++)
{
DDRD &= (1<<i);
PORTD |= 1<<i;
}
DDRB |= 1<<0;
DDRB |= 1<<1;
randomSeed(analogRead(A0));
Serial.begin(9600);
}
void loop()
{
//Vpravo
if((PIND& (1<<7)) == 0 && test7 == true )
{
test7 = false;
pocetkrokov++;
step(1);
Serial.println(pocetkrokov);
}
else if((PIND& (1<<7)) != 0 && test7 != true )
{
test7 = true;
}
//Vlavo
if((PIND& (1<<6)) == 0 && test6 == true )
{
test6 = false;
pocetkrokov--;
step(2);
Serial.println(pocetkrokov);
}
else if((PIND& (1<<6)) != 0 && test6 != true )
{
test6 = true;
}
//6 krokov random smer
if((PIND& (1<<5)) == 0 && test5 == true )
{
test5 = false;
int krok = random(1,3);
for(int j = 0; j < 6; j++)
{
step(krok);
if(krok == 1)
{pocetkrokov++;}
else if(krok == 2)
{pocetkrokov--;}
}
Serial.println(pocetkrokov);
}
else if((PIND& (1<<5)) != 0 && test5 != true )
{
test5 = true;
}
//Random pocet krokov od (1-5) do prava
if((PIND& (1<<4)) == 0 && test4 == true )
{
test4 = false;
int pocet = random(1,6);
for(int k = 0; k < pocet; k++)
{
step(1);
pocetkrokov++;
}
Serial.println(pocetkrokov);
}
else if((PIND& (1<<4)) != 0 && test4 != true )
{
test4 = true;
}
//Reset
if((PIND& (1<<3)) == 0 && test3 == true )
{
test3 = false;
while(pocetkrokov > 0)
{
for(int g = 0; g < pocetkrokov; g++)
{
step(2);
pocetkrokov--;
}
}
while(pocetkrokov < 0)
{
for(int h = 0; h > pocetkrokov; h--)
{
step(1);
pocetkrokov++;
}
}
Serial.println(pocetkrokov);
}
else if((PIND& (1<<3)) != 0 && test3 != true )
{
test3 = true;
}
}