andrews napisał(a):
Zakładam, że chcesz zrobić tak:
- światło włącza się, gdy z detektora ruchu otrzyma stan wysoki na pinie PB2 i świeci się przez ustalony czas,
- jeśli w tym czasie ponownie pojawi się lub będzie się utrzymywał stan wysoki na pinie PB2, to czas powinien zacząć się odliczać od nowa.
Możesz spróbować tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
W ten sposób światło powinno zgasnąć zadaną ilość czasu po zaniku sygnału z detektora ruchu.
Dzięki wielkie za pomoc, jednak nie do końca o to mi chodziło, pewnie przez to, że napisałem trochę to wszystko zagmatwanie.
Przedstawię od początku jak wygląda sytuacja:
Stan wysoki na Pinie PB2 otrzymuję poprzez poprowadzenie przewodu z pinu na ATMedze8, który odpowiada za sterowanie sygnałem jednego stopnia ledowego. Tak więc, gdy detektory wykryją ruch na schodach, zapalą się wszystkie stopnie za pośrednictwem ATMega8, wtedy pojawi się stan wysoki na PB2 na ATTiny13A - co wiąże się z tym, że rozpocznie się odliczanie czasu w ATTiny13A.
Teraz przejdę do tego, co chciałem otrzymać:
Gdy drugi detektor wykryje ruch, czyli gdy osoba wejdzie na piętro, rozpoczyna się sekwencja wygaszania stopni LED za pośrednictwem ATMega8. I teraz, gdy stopnie LED są wygaszone, program cały czas odlicza zadany czas, a chciałbym, żeby przerwał odliczanie i był w stanie gotowości, by zaczął odliczanie, gdy ponownie ktoś będzie chciał wejść na górę/zejść na dół.
Możesz zadać sobie pytanie "a po co mi te odliczanie, skoro stopnie same się gaszą, gdy drugi detektor wykryje ruch?". Dlatego chciałbym zastosować takie odliczanie, ponieważ czasami gdy nikt nie wchodzi po schodach, stopnie się same zapalają - wynika to z tego, że czasami wystarczy podmuch cieplejszego wiatru, by detektor uznał to za ruch. Dlatego też, gdyby tak się stało, chciałbym by ATTiny13A po odliczeniu czasu, podał stan wysoki na PB4, który będzie odpowiadał za natychmiastowe wygaszenie wszystkich stopni (PB4 jest za pomocą przewodu zwarte z pinem na ATMega8, także gdy ATMega8 otrzyma stan wysoki od PB4, automatycznie wyłącza schody).
Mam nadzieję, że mimo zagmatwania jakoś jasno przedstawiłem o co mi chodzi.