• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
zapalanie LED
#11
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);
tą komendą ustawiasz sobie buzzeer jako wyjście. Jeśli zamiast buzzera używam tego mojego MAX7219 (oraz matrycy) to muszę PIN DataIn ustawić analogicznie?
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);
 
Odpowiedź
#12
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.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości