Aktywne Wpisy
stanislaw-kania +25
Właśnie wyciągnąłem z giry opitego grubego kleszcza. Zostało czerwone. Ja prdl jeszcze tego brakowało.
źródło: temp_file9138086309214547110
Pobierz
LukasUK +235
Skopiuj link
Skopiuj link
źródło: temp_file9138086309214547110
Pobierz
Wykop.pl
bool przycisk=0;
void setup() {
// put your setup code here, to run once:
for(int i=1;i<=4;i++)
{
pinMode(i,OUTPUT);
}
pinMode(5,INPUT_PULLUP);
}
void loop()
{
// put your main code here, to run repeatedly:
if(digitalRead(5)==LOW)
{
przycisk=!przycisk;
delay(500);
}
else if(digitalRead(5)==LOW && przycisk!=0)
{
przycisk=0;
delay(500);
}
while(przycisk!=0)
{
for(int i=1;i<=4;i++)
{
if(i==2 || i==3 || i==4)
{
digitalWrite(i,HIGH);
digitalWrite(i-1,LOW);
delay(1000);
}
else
{
digitalWrite(1,HIGH);
digitalWrite(4,LOW);
delay(1000);
}
}
}
}
Może mi ktoś wyjaśnić w którym miejscu zrobiłem błąd? Będę wdzięczny. #programowanie #informatyka
Po pierwsze - warunki w if jest zawsze prawdziwy, kiedy warunek w else if jest prawdziwy, więc do else ifa nigdy nie wejdzie.
Po drugie - w pętli while(przycisk != 0) nigdy nie zmieniasz zmiennej przycisk, więc jak raz tam wejdziesz to kręcisz się tam w nieskończoność.
Po trzecie - chyba nie bardzo rozumiesz jak program się ma wykonać:) Narysuj sobię tabelkę:
nr_kroku; nr linijki; wartość zmiennej