20-05-2018, 18:37
Witam wszystkich
Robię zasłony okienne sterowane przez silnik krokowy ale nie działa mi wyjście z pętli for.
Układ po włączeniu zasilania za każdym razem ma za zadanie ustawić zasłony w pozycji zerowej czyli kręcić silnikiem krokowym w jedna stronę aż do krańcówki,niestety pętla wykonuje się do spełnienia warunku a nie do załączenia krańcówki gdzie powinno opuścić pętle for ? Program wychodzi z pętli tylko jak krańcówka jest załączona jeszcze przed zasileniem układu ?
Robię zasłony okienne sterowane przez silnik krokowy ale nie działa mi wyjście z pętli for.
Układ po włączeniu zasilania za każdym razem ma za zadanie ustawić zasłony w pozycji zerowej czyli kręcić silnikiem krokowym w jedna stronę aż do krańcówki,niestety pętla wykonuje się do spełnienia warunku a nie do załączenia krańcówki gdzie powinno opuścić pętle for ? Program wychodzi z pętli tylko jak krańcówka jest załączona jeszcze przed zasileniem układu ?
Kod:
void setup() {
int kroki = 5; // na przykład
kroki = ilosc_obrotow * 200;
if(krancowkaState == LOW) //przycisk
{
for(int x = 0; x < kroki; x++){ // robi pięć obrotów
digitalWrite(stepPin,HIGH);
delay(predkosc);
digitalWrite(stepPin,LOW);
delay(predkosc);
if(krancowkaState == HIGH) // tu pętla nie raguje na załączenie przycisku
// chyba że wciśniety przed zasileniem ukladu
{
Serial.println("Wyjscie z petli");
break; //próbowałem tez kroki=6; i tez nie wychodzi z petli
}
}
}
}