zapalanie LED - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: zapalanie LED (/watek-zapalanie-led) Strony:
1
2
|
RE: zapalanie LED - raczzeek - 09-12-2018 OK, właśnie analizuje Twój kod i próbuję go przerobić na moje potrzeby. Mam drobne pytanie - używasz Kod: pinMode(buzzer,OUTPUT); Dla mnie to trochę irracjonalne, ponieważ na samym początku kodu dodaję bibliotekę do wyświetlacza i używam komendy, gdzie deklaruję pin DataIn (jako12): Kod: LedControl lc=LedControl(12,11,10,1); RE: zapalanie LED - kaczakat - 09-12-2018 Jak to jest coś bardzo nowego to poćwicz na ledach. Ten kod to tylko przykładowa funkcja z "własną pamięcią". Chodzi o to, że jest uruchamiana milion razy/s (choć tylko po wciśnięciu przycisku/aktywacji alarmu w inny sposób, a po zakończeniu znowu znika z loop) i tylko sprawdza czy ma zmienić stan pinu czy jeszcze nie. Żeby zamigać kilka razy led/buzerem po prostu nie trzeba blokować procesora na 10s poleceniami "zapal, czekaj, zgaś, czekaj, zapal...". I ten przykład wcale nie jest najlepszy, może najprostszy w Arduino do zrozumienia. Swoje urządzenie ustawiasz tak jak powinno być ustawione, po prostu chodzi o to, że gadasz do niego i każesz mu coś zrobić w określonych interwałach czasu. W ten sam sposób można czekać na odpowiedź (jeśli akurat to będziesz używać w programie). Jak chcesz by program był reponsywny, a nie dostawał dziwnej czkawki i zwieszek to tak można podejść do tematu. Jak będzie takich funkcji więcej w programie to lepiej mieć jednego operatora (funkcję) bębna, który będzie wybijać rytm ms, s, minut, za to zapisywanych w prostszych 8 bitowych liczbach, wtedy funkcje też będą mogły korzystać z liczb 8 bitowych zamiast za każdym razem każda sprawdzać i porównywać 32 bitowe z millis(), co jest bardzo długie w procesorach 8 bitowych ( bo jak coś ma się wydarzyć co 2 minuty to nie sprawdzasz czy upłynęło 120000ms tylko czy zmienna minut jest >=2) i zje więcej RAM. |