void setup() {
//nastavenie STEP
DDRB |= 1<<0;
DDRB |= 1<<1;
PORTB |= 1<<0;
//nastavenie but
DDRB &= ~(1<<2);
DDRB &= ~(1<<3);
DDRB &= ~(1<<4);
PORTB |= 1<<2; //high
PORTB |= 1<<3;
PORTB |= 1<<4;
//nastavenie RGB
DDRD |= 1<<5; //blue
DDRD |= 1<<6; //green
DDRD |= 1<<7; //red
Serial.begin(9600);
Serial.println("ahoj rebecca");
//otocenie step o 2
for(int i = 0; i < 2; i++)
{
PORTB |= 1<<1;
PORTB &= ~(1<<1);
}
}
int loadCount = 0;
int arr[] = {};
bool corrPin = false;
bool fBut = false;
bool sBut = false;
bool tBut = false;
int a = 0;
String inn[] = {"f","d","a"};
String pin[] = {"1","2","3"};
//na docasny zapis
int jeden = 0;
int dva = 0;
int tri = 0;
void loop() {
if( (PINB&(1<<2)) == 0 && fBut == false)
{
fBut = true;
Serial.println("prvy");
inn[loadCount] = "1";
loadCount++;
}
if( (PINB&(1<<3)) == 0 && sBut == false)
{
sBut = true;
Serial.println("druhy");
inn[loadCount] = "2";
loadCount++;
}
if( (PINB&(1<<4)) == 0 && tBut == false)
{
tBut = true;
Serial.println("treti");
inn[loadCount] = "3";
loadCount++;
}
//testovanie ak sa vsetky tri tlacidla stlacia
if(tBut == true && sBut == true && tBut == true)
{
fBut = false;
sBut = false;
tBut = false;
Serial.println(inn[0]);
Serial.println(inn[1]);
Serial.println(inn[2]);
for(int i = 0; i < 3; i++)
{
if(inn[i] == pin[i]) a++;
}
if(a == 3)
{
Serial.println("zadal si spravny kod");
//zasvietenie na zeleno
PORTD |= 1<<5;
PORTD |= 1<<7;
for(int a = 0; a < 90; a++)
{
PORTB |= 1<<1;
delay(20);
PORTB &= ~(1<<1);
delay(20);
}
delay(1000);
PORTB &= ~(1<<0); //otocenie smeru dolava
for(int b = 0; b < 90; b++)
{
PORTB |= 1<<1;
delay(20);
PORTB &= ~(1<<1);
delay(20);
}
PORTD &= ~(1<<5);
PORTD &= ~(1<<7);
PORTB |= 1<<0; //nastavenie meru do povodeho stavu
}
else
{
Serial.println("zadal si nesravny kod");
PORTD |= 1<<5;
PORTD |= 1<<6;
delay(1000);
PORTD &= ~(1<<5);
PORTD &= ~(1<<6);
}
a = 0;
loadCount = 0;
delay(100);
}
/*if(loadCount < 3)
{
if( (PINB&(1<<2)) == 0 && fBut == false) //prvy btn
{
arr[loadCount] = 1;
Serial.println(arr[loadCount]);
jeden = 1;
loadCount++;
fBut= true;
Serial.println("som v prvom");
Serial.print("AKTUALNY LC: ");
Serial.println(loadCount);
}
if( (PINB&(1<<3)) == 0 && sBut == false) //druhy btn
{
arr[loadCount] = 2;
Serial.println(arr[loadCount]);
dva = 2;
loadCount+1;
sBut = true;
Serial.println("som v druhom");
Serial.print("AKTUALNY LC: ");
Serial.println(loadCount);
}
if( (PINB&(1<<4)) == 0 && tBut == false)
{
arr[loadCount] = 3;
Serial.println(arr[loadCount]);
tri = 3;
loadCount++;
tBut = true;
Serial.println("som v tretom");
Serial.print("AKTUALNY LC: ");
Serial.println(loadCount);
}
}
if(loadCount == 3) {
//overenie spravnosti inputu
for(int i = 0; i < 3; i++)
{
if(arr[i] == pin[i]) a++;
}
if(a == 3) corrPin = true;
fBut = false;
sBut = false;
tBut = false;
}
if(corrPin)
{
Serial.println("velmi dobre");
corrPin = false;
loadCount = 0;
delay(100);
}
/* if(loadCount == 3)
{
for(int i = 0; i < 3; i++)
{
if(arr[i] == pin[i]) a++;
}
if(a == 3) corrPin = true;
}
if(a == 3)
{
//otocenie step
// PORTB |= 1<<1;
//delay(10);
//PORTB &= ~(1<<1);
//delay(10);
Serial.println("no jes");
}*/
}