void setup() {
//nastavanie ledky
DDRD |= 1<<5;
DDRD |= 1<<6;
DDRD |= 1<<7;
//nastavene buttona
DDRB &= ~(1<<2);
PORTD |= 1<<2;
//nastavenie A49
DDRB |= 1<<2;
DDRB |= 1<<3;
PORTB |= 1<<2; //nastavenie smeru doprava
Serial.begin(9600);
Serial.println("Start");
}
String tmp = "";
bool green = true;
int curStep = 0;
void loop() {
if(green)
{
PORTB |= 1<<2; //nastavenie smeru doprava
//nastavenie ledky na zeleno
PORTD |= 1<<5;
PORTD &= ~(1<<6);
PORTD |= 1<<7;
if(Serial.available() > 0)
{
tmp = Serial.readStringUntil("\n");
if(tmp.length() == 2)
{
//posunutie step motora
PORTB |= 1<<3;
delay(100);
PORTB &= ~(1<<3);
delay(100);
curStep++; //pripocitanie do aktualnej pozicie
Serial.println(curStep);
}
}
if( (PIND&(1<<2)) == 0) //stlacenie tlacidla
{
green = false;
}
}
if(!green)
{
//nastavenie ledky na cerveno
PORTD |= 1<<5;
PORTD |= 1<<6;
PORTD &= ~(1<<7);
//zmenenie smeru step
PORTB &= ~(1<<2);
while(curStep > 0)
{
PORTB |= 1<<3;
delay(100);
PORTB &= ~(1<<3);
delay(100);
curStep--;
}
green = true;
}
}