Szopka bożonarodzeniowa :) - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Programowanie w Arduino (https://forum.arduinopolska.pl/dzial-programowanie-w-arduino) +--- Wątek: Szopka bożonarodzeniowa :) (/watek-szopka-bo%C5%BConarodzeniowa) |
Szopka bożonarodzeniowa :) - wieslaw3 - 07-05-2018 Witam. Poniższy projekt ma za zadanie sterowaniem odtwarzaczem dźwięku, przekaźnikiem włączającym oświetlenie oraz trzema serwomechanizmami. Całość to szopka bożonarodzeniowa do kościoła w mojej parafii (nie śmiejcie się, wiem że to dziwna pora na robienie szopki ale robię ją w wolnym czasie a tego wolnego czasu mam niewiele i mam nadzieję że do grudnia zdążę).
Krótki opis wejść i wyjść.
Wejście jest tylko jedno - A1
Wyjście dla odtwarzacza dźwięku - D2
Wyjście dla przekaźnika oświetlenia – D3
Wyjście dla serwomechanizmu 1 – D4
Wyjście dla serwomechanizmu 2 – D5
Wyjście dla serwomechanizmu 3 – D6
Prośba.
W tej chwili program działa tak, że zmiana na wejściu A1 powoduje kolejno
1. podanie stanu wysokiego na D2 na określony czas i przejście w stan niski
2. podanie stanu wysokiego na D3
3. sterowanie kolejno serwomechanizmami 1, 2 i 3 według określonych parametrów.
4. podanie stanu niskiego na D3
Chciałbym żeby niezależnie od tego czy program się już w całości wykonał czy nie, punk 1 (czyli podanie stanu wysokiego na odtwarzacz dźwięku i jego wyłączenie) wykonywał się zawsze gdy na A1 nastąpi zmiana.
Czyli zawsze po tym jak w podłączonej do A1 bramce fotooptycznej pojawi się przeszkoda zostanie podany stan wysoki dla odtwarzacza dźwięku niezależnie czy program jest w wykonywania zadań z punktu 2, 3, 4.
Bardzo byłbym wdzięczny za pomoc gdyż syn który pisał mi ten kod mówi że nie ma możliwości żeby tak to działało. Oto mój kod: Kod: const int czasbogzaplac=8000; RE: Szopka bożonarodzeniowa :) - es2 - 07-05-2018 (07-05-2018, 14:59)wieslaw3 napisał(a): Bardzo byłbym wdzięczny za pomoc gdyż syn który pisał mi ten kod mówi że nie ma możliwości żeby tak to działało.Jest możliwość, trzeba wywalić delay użyć millis(). |