Aktywne Wpisy
_gabriel +21
Ostatnio w Internecie czytałem o przypadku kolesia, który zamordował ponad 600 osób. Nie rozumiem, dlaczego Bóg np. nie zabił go piorunem po pierwszych trzech zabójstwach i pozwolił mu zabijać, aż do nabicia takiej liczby? Ofiary to były głównie dzieci... Ja wiem, że to przecież nie Bóg zabijał tylko ten człowiek, ale no mógł przecież zainterweniować i go zabić, jednocześnie nie wpływając zbytnio na naszą wolną wolę.
Pytanie do osób wierzących -
Pytanie do osób wierzących -
kopek +959
5.55 stoję pierwszy pod piekarnia po chleb. Podchodzi 3 emerytów i mówi że oni byli tu już o 5.00 więc są pierwsi xd
A ja mówię - Wie Pan co ja tu już byłem wczoraj o 22.00 xd
Co jest z tymi ludźmi?
#xd
A ja mówię - Wie Pan co ja tu już byłem wczoraj o 22.00 xd
Co jest z tymi ludźmi?
#xd
Witajcie ostatnio bawię się arduino i kilka razy napotykam na problem z używaniem w szkicu kilkukrotnie funkcji z różnymi parametrami gdy muszą one przechowywać poprzednie wartości. Np gdy funkcje mają powodować mruganie różnych diod z różnymi długościami i przerwami. Przykładowy szkic nie działa bo kolejne wywołanie funkcji kasuje parametry poprzednich.
Na razie sobie radośnie obchodzę problem po prostu zmieniając nazwy kolejnych funkcji i wklejając kolejne ich powtórzenia pod pętlę loop.
Chciał bym zrobić to tak żeby funkcję wpisać raz i móc ją potem wielokrotnie wykorzystywać.
To moje pierwsze ever podejście do programowania a w kursach i poradnikach takiego przykładu nie znalazłem.
Poradźcie jakieś rozwiązanie, albo miejsce gdzie można znaleźć odpowiedź.
Pozdrawiam.
kod
unsigned long czas;
void loop()
{
miganie(2, 1000, 400); // parametry to nr wyjscia, czas swiecenia, czas przerwy
miganie(3, 100, 100);
miganie(4, 400, 600);
miganie(5, 700, 300);
czas = millis();
}
void miganie( int led, unsigned long dlugosc, unsigned long przerwa)
{
static unsigned long czasZapalenia;
static unsigned long czasZgaszenia;
if(czas == czasZapalenia)
{
czasZgaszenia = czas + dlugosc;
}
if(czas >= czasZapalenia && czas <= czasZgaszenia )
{
digitalWrite (led, HIGH);
}
if(czas == czasZgaszenia)
{
czasZapalenia = czas + przerwa;
}
if(czas >= czasZgaszenia && czas <= czasZapalenia)
{
digitalWrite(led, LOW);
}
}
kod
#arduino #15k
Robisz błąd logiczny w programie, tak na pierwszy rzut oka. Konfigurujesz jedno wejście a za chwilę zmieniasz nastawienia. Musisz zrobić sobie klasę, w której będziesz przechowywał czas świecenia i czas przerwy oraz wyjście dla każdej diody. Wtedy ustawisz sobie zdarzenie/przerwanie co 1ms i będziesz sprawdzał w pętli, czy i jeśli tak to stan którego wyjścia zmienić.
To