Skocz do zawartości

Dlaczego wartości liczb zaczynają się od 129


Witon

Pomocna odpowiedź

void loop() {
  int kolor; // jeśli tutaj napiszę np int kolor=0; to program zawsze zwróci wartość 1 
  if(digitalRead(4)==LOW) //przycisk odpowiadający za kolory 
  {
 //   if(kolor<3)         	// sprawdzenie wart kolor
    {  
      kolor+=1;        // mozliwości 1+1=2, 2+1=3 
      delay(150);
      Serial.println(kolor);
    }
/*   else					// jeśli kolor=3 to ustawia wart na 1 
   {
      kolor=1;						
      delay(150);
      Serial.println(kolor);
   }*/
  }

Witam
Dlaczgo aktualny program (pomijając komentarze) po naciśnięciu przycisku zwraca wartości 129,130,131 itd?
Jeśli cały program bedzie aktywny to działa logicznie bo kolor(129+)<3 więc wychodzi wynik 1. Da się w jakiś sposób naprawić by domyślne liczby to były np 0,1,2... czy lepiej zmienić warunki na liczby powyżej 129?

Edit: nawet tak zmieniony else wyprowadza wynik 1

   else
   {
      kolor=129;
      delay(150);
      Serial.println(kolor);
   }
  }
Edytowano przez Witon
  • Lubię! 1
Link do komentarza
Share on other sites

Bo używasz zmiennej lokalnej której niczym nie inicjujesz, stąd w niej może być wartość losowa, tzw. "śmieci" 

void loop() {
 static int kolor = 0;
  if(digitalRead(4)==LOW) 
  {
      kolor+=1;   
      delay(150);
      Serial.println(kolor);
    }
 }
   
     

Spróbuj teraz...

Edytowano przez farmaceuta
  • Lubię! 1
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.