Skocz do zawartości

Piny nie zmieniają swoich stanów, a zmienna bool zwraca wartości inne niż 1 lub 0


Mateo

Pomocna odpowiedź

Witam stworzyłem klasę, dzięki której teoretycznie można dodawać kolejne(obiekty) diody i od razu określać ich czas świecenia oraz czasu wyłączenia, problem polega na tym iż tylko pierwsza dioda(obiekt) działa prawidłowo(gaśnie i zaświeca się w określonym czasie), a reszta po prostu świeci, a wartość bool zwraca dziwne wartości typu 39, 10,82 itd;

Oto kod

class Dioda
{
public: 
unsigned long czas_akt,czas_wla,czas;
int pin_diody; // jaki pin
bool on_off; //stan pinu
Dioda(unsigned long c_w, int p_d) //konstruktor
  {
  pin_diody=p_d;
  czas_wla=c_w;  
  }
 void flash()
 {
 czas=millis();
 if(czas-czas_akt>=czas_wla)
    {
     on_off=!on_off; //zmiana stau diody
     Serial.println(on_off);
     digitalWrite(pin_diody,on_off);
     czas_akt=czas;
  } 
 }
};

void setup()
{
Serial.begin(19200);
pinMode(13,OUTPUT);
pinMode(12,OUTPUT);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);  
}
void loop ()
{
//diody
Dioda dioda13(2000,13); // tylko ta dioda dziala prawidłowo 
dioda13.flash();

Dioda dioda12(5000,12);
dioda12.flash();

Dioda dioda11(4000,11);
dioda11.flash();

Dioda dioda10(1000,10);
dioda10.flash();
}

 

Link do komentarza
Share on other sites

(edytowany)

Serial.printem sprawdzałem wartoś bool i zamiast 0 lub 1 wyświetlały się losowe liczby

Cytat

Poza tym inicjalizację robisz raz w setup a nie 1000 razy na sekundę w loop

No tak tu było błąd 😕

Po przeniesieni inicjalizacji na gorę pomogło, teraz wszystko działa jak należy, wartości bool także są poprawne, dzięki!

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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.