Witam
Otóż zabrałem, się teraz za budowę pewnego układu gdzie energooszczędność jest najwyższym priorytetem. I teraz tak, w założeniach projektu użytkownik za pomocą zworki będzie mógł ustalić jeden z kilku trybów pracy. Nie jest to switch więc zworka zostanie tam na stałe.
Co ważne: Sprawdzenie warunków (gdzie jest zwora) odbędzie się tylko raz na początku programu (przed while(1) ) , więc potem najlepiej było by wystawić na tych pinach zero żeby pin gdzie jest zwora nie pobierała prądu.
I teraz tak, mógłbym po prostu podciągnąć piny procka do Vcc i z drugiej strony goldpiny podłączyć do GND. Ale wtedy prąd będzie non stop płynął. Mały bo mały (~1mA), ale jak dla tego projektu jest on ciągle za duży.
A więc wpadłem na pomysł żeby po sprawdzeniu warunku wystawić na wszystkich pinach (gdzie są zwory) zero.
I było by to dobre rozwiązanie, gdyby nie to, że z moich obserwacji wynika że nie zawsze na pinie jest 0V. Więc jak widać to napięcie delikatnie pływa, a połączenie takiego pinu do GND będzie niezbyt dobrym pomysłem.
I tutaj dochodzimy do sedna tego postu, ponieważ wymyśliłem pewne rozwiązanie, ale nie wiem czy jest ono poprawne.
Najpierw schemat (rysowany w paincie za co serdecznie przepraszam, ale na obecnym komputerze nie mam jeszcze Eagle)

A więc, na początku programu pin A podciągnięty do Vcc, a na resztę (B...E) wystawione zero. Po sprawdzeniu gdzie jest zwora (sprawdzenie warunków if(napiecie_na_pinie)), wszędzie wystawiam zera (A...E). Piny te nie będą już potrzebne. rezystor R1=10k jest po to, żeby w momencie pojawienia się na którymś pinie napięcia o którym pisałem wcześniej, prąd był jak najmniejszy. Mam nadzieję że jasno opisałem swój koncept.
Jak uważacie, czy jest to dobry pomysł? uC to ATtiny48 zasilany napięciem 3V
Pozdrawiam