Pytanie:
Obwód timera odliczającego 6 miesięcy
Vincent Conlon
2010-10-12 19:28:48 UTC
view on stackexchange narkive permalink

Muszę zaprojektować obwód czasowy. Po 6 miesiącach musi się zaświecić dioda LED. Następnie diodę LED można wyłączyć jednym naciśnięciem przycisku i odliczanie 6 miesięcy musi się rozpocząć od nowa. Czy ktoś ma pomysł, od czego mógłbym zacząć? Czy zegar 555 jest w stanie zrobić coś przez ten czas, czy potrzebowałbym czegoś innego? Każda pomoc byłaby bardzo mile widziana.

[dodano] będzie to przypomnienie o konieczności wymiany filtra wody, więc powinno być wyłączone z małej baterii. Coś małego, łatwego w konfiguracji i posiadającego przydałby się również niski pobór prądu ... każda pomoc doceniona ... dzięki za poprzednie dane ...

Czy to musi być przenośne, czy też będzie podłączone do źródła prądu przemiennego? Jeśli tak, możesz policzyć przejścia 60 (lub 50) Hz, które są bardzo dokładne na dłuższą metę.
Nie próbuj używać zasilacza sieciowego - nie możesz liczyć na to, że zasilanie pozostanie włączone przez 6 miesięcy bez podjęcia nadzwyczajnych środków.
Widziałem tę aplikację używaną w filtrach do wody, aby ostrzegać, kiedy filtr wymaga wymiany. Mogą działać przez wiele lat bez konieczności wymiany baterii, więc zakładam, że są w stanie to zrobić bardzo łatwo.
@Vincent Conlon: Jakiej precyzji potrzebujesz? W przykładzie z filtrem do wody jestem pewien, że precyzja jest okropna, ale nie sądzę, aby ktokolwiek przejmował się tym, czy zostaniesz ostrzeżony tydzień wcześniej czy późno.
Sześć odpowiedzi:
pingswept
2010-10-12 19:52:33 UTC
view on stackexchange narkive permalink

Na podstawie tej odpowiedzi myślę, że 555 nie zadziała. Potrzebowałbyś masywnego kondensatora i ogromnego rezystora, a dokładność byłaby straszna.

Poleciłbym użycie najprostszego z 8-bitowych mikrokontrolerów. Musiałbyś ostrożnie obchodzić się z liczbami, ale PIC16F84A (lub Arduino lub wiele innych podobnych urządzeń) może to zrobić. Mógłbym ustawić 1-sekundowy licznik czasu, a następnie policzyć 15778463 wygaśnięcia licznika, przechowując liczbę w zmiennej 32-bitowej. (Dla 32-bitowych zmiennych Arduino, patrz http://www.arduino.cc/en/Reference/Double)

Um ... „podwójne”? Źle. Masz na myśli „long”, a najlepiej „int32_t”.
AH, masz rację. Niegrzeczne, ale racja.
Um ... int32_t? Źle. Masz na myśli uint32_t, chyba że spodziewasz się, że czas się cofnie.
To prawda, możesz podwoić swój zasięg, używając typów bez znaku, ale należy tego unikać, jeśli to możliwe. Arytmetyka z typami bez znaku może powodować irytujące błędy związane z promocją typu, którą robi C.
@Nick, chociaż technicznie prawda, większość implementacji C na 8-bitowych mikrokontrolerach nie jest zgodna z promocją typu zdefiniowanego przez ansi. Często używają po prostu największego typu w instrukcji.
Pamiętaj, że bez RTC lub zewnętrznego oscylatora dokładność będzie tutaj dość okropna, szczególnie w tak długim okresie. I nie zapomnij okresowo zapisywać bieżącej liczby do EEPROM!
Toby Jaffey
2010-10-12 20:30:51 UTC
view on stackexchange narkive permalink

Podobnie jak pingswept, poleciłbym tani mikrokontroler. TI Launchpad MSP430 jest dostarczany z kryształem 32,768 kHz i obsługuje bardzo niskie zużycie energii.

Ten projekt nie jest daleko od tego, czego chcesz: http://kennethfinnegan.blogspot.com/2010/08 /msp430-bicolor-led-clock.html

user1307
2010-10-13 06:59:28 UTC
view on stackexchange narkive permalink

Arduino (lub inny mikrokontroler) z DS3231 super dokładny układ scalony zegara czasu rzeczywistego. Po naciśnięciu przycisku czas i data są przechowywane w pamięci - MCU może zapętlić sprawdzanie daty i godziny i wyłączyć się, gdy będzie gotowe; lub po naciśnięciu przycisku uruchamia się ponownie itp.

+1 RTC na pewno. DS3234, jeśli wolisz używać SPI zamiast I2C.
To świetny chip. Pozwól mu śledzić wszystkie żmudne liczenie i odmierzanie czasu. O wiele łatwiejsze niż liczenie impulsów i wykonywanie wszystkich konwersji w czasie rzeczywistym.
2 ppm na pewno jest fajne, ale przesada. Tutaj wystarczy standardowy kryształ 20 ppm: nie sądzę, aby dokładna minuta wymiany filtra wody była ważna (o ile nie jest to w środku nocy).
stevenvh
2011-08-09 15:50:04 UTC
view on stackexchange narkive permalink

Po pierwsze, to interesujący mały projekt, ale tak naprawdę używasz złego narzędzia. To jest coś, co było rozwiązywane od wieków za pomocą narzędzia zwanego programem.

agenda

Zróbmy to mimo wszystko elektronicznie, dla przyjemności. Wydaje się, że nie potrzebujesz bardzo dużej dokładności; nie ma znaczenia, czy filtr zostanie wymieniony dzień wcześniej czy później (dzień za 6 miesięcy to 0,5% dokładności). Zanotowałem, że musi rozładowywać się z baterii, więc musi być naprawdę niski.

Zacznę od zmiany wymagań . Potrzebujesz diody LED jako wskaźnika, ale Twoje urządzenie musiałoby być raczej widoczne w salonie, jeśli chcesz mieć pewność, że świeci się dioda LED, nawet gdy miga. (Zwróćmy uwagę, że flashowanie może być konieczne, aby uniknąć wyczerpania baterii, zanim dioda LED zostanie zauważona; w końcu dioda LED może zapalić się zaraz po tym, jak pójdziesz spać.)
Użyłbym brzęczyka zamiast LED . Aby zapobiec włączaniu się brzęczyka w środku nocy, potrzebujemy dokładnego pomiaru czasu, który będzie również wskazywać godzinę. Oznacza to, że 555 jest niedostępny i będziemy musieli polegać na mikrokontrolerze . Mały mikrokontroler kosztuje mniej niż 50 centów, a działający na krysztale 32,768 kHz nie zużywa dużo (w jednym projekcie użyłem MSP430F1101, który zużywał mniej niż 4 \ $ \ mu \ $ A), i ma minutową dokładność w ciągu miesięcy.
Ale to oznaczałoby, że musisz uważać na moment uruchomienia timera, a to nie jest zbyt przyjazne dla użytkownika.
Wpisz odbiornik zegara atomowego . Czas nadawania DCF77 w Europie i WWVB w Ameryce Północnej jako 1-sekundowe impulsy. Mikrokontroler może działać na wewnętrznym zegarze RC (nie musi być aż tak dokładny) i utrzymywać czas na podstawie otrzymanego kodu czasowego. Aby oszczędzać energię, odbiornik zegara atomowego może budzić mikrokontroler co 1 sekundę impulsu, tak aby kontroler mógł aktualizować czas i datę oraz wracać do snu. Możesz na przykład zaprogramować mikrokontroler tak, aby dawał sygnał o godzinie 14:00 w pierwszą sobotę po przekroczeniu limitu czasu.

Następnie jest zasilacz . Rozwiązanie mikrokontrolera potrzebuje tylko kilku \ $ \ mu \ $ A, więc ogniwo litowe CR3032 (dobre dla 500 mAh) może wytrzymać kilka lat. Ale czas między zdarzeniami jest tak długi, że w końcu bateria zrezygnuje w połowie 6-miesięcznego okresu, a czas wymiany filtra minie niezauważony.
Sugerowałbym zasilany z sieci urządzenie za pomocą małego transformatora; Mam kilka transformatorów 6V, 0,35VA do tego typu małych produktów. Ponieważ długi okres, taki jak 6 miesięcy, nie gwarantuje, że nie będzie przerwy w zasilaniu, będziesz potrzebować podtrzymania baterii / kondensatora. Tutaj w Belgii mamy średnio mniej niż 1 awarię zasilania w ciągu 2 lat, najdłuższa, jakiej doświadczyłem, trwała 2 godziny. Nie użyłbym baterii, a przynajmniej nie podstawowego ogniwa. Akumulator wystarczy, ale zamiast tego użyjmy superkapsułki . Czapka 0,1F sprawi, że urządzenie 10 \ $ \ mu \ $ A będzie działało przez ponad 24 godziny. Mikrokontroler może monitorować zasilanie sieciowe, dzięki czemu w przypadku wystąpienia 6-miesięcznego limitu czasu podczas przerwy w zasilaniu mikrokontroler może odłożyć sygnał do czasu przywrócenia zasilania.

W przypadku aplikacji, która wymaga tak niewielkiej interakcji ze strony użytkownika, warto mieć jakąś opinię . Możesz błyskać diodą LED raz na sekundę, aby wskazać, że minutnik działa, a jeśli chcesz zrobić to w wersji luksusowej, możesz wyświetlić liczbę pozostałych dni na trzycyfrowym wyświetlaczu LCD lub LED.


edytuj (ponownie komentarz Bena)
W przeszłości korzystałem z tych małych modułów odbiornika DCF77 firmy Conrad.

dcf77 module

Mieszkam w Europie, stąd DCF77, dla WWVB (Ameryka Północna) istnieją podobne moduły.
Połączenia to po prostu zasilanie (od 1,2 V do 15 V) i 2 wyjścia DCF77, jedno nieodwrócone, jedno odwrócone. Wyjścia są typu otwarty kolektor, więc przy odpowiednim podciągnięciu odpowiednie dla dowolnego napięcia, na którym pracuje mikrokontroler.


Dodatkowe informacje:

Niezłe podejście, ale istnieje ogromne rażące pominięcie, jeśli chodzi o sprzęt, którego używasz do odbierania transmisji ze znacznikami czasu.
@Ben - w porządku. Dodano do mojej odpowiedzi.
Twój link do „podobnych modułów” jest martwy.Czy możesz podać numer modelu i / lub zaktualizować link?
mouviciel
2010-10-12 20:07:58 UTC
view on stackexchange narkive permalink

Trudną częścią byłaby precyzja w tak dużym przedziale czasu.

Możesz rozważyć oscylator kwarcowy w połączeniu z kaskadą liczników binarnych. Przykłady można znaleźć w 4060 arkuszu danych.

Thomas O
2010-10-12 23:47:26 UTC
view on stackexchange narkive permalink

Myślę, że powinieneś użyć timera 555 do mierzenia czasu w 16-minutowych odstępach, a następnie wprowadzić go do jakiegoś obwodu licznika, aby go podzielić. 14-bitowy licznik sprawiłby, że interwał wynosił około 6,06 miesiąca.

Nie powinieneś używać 555 z okresem 16 minut; lepiej połączyć kaskadowo dwa liczniki i uruchomić 555 z bardziej rozsądną częstotliwością (lub mniej więcej kHz). Lepiej w ogóle nie używać 555, jeśli bardzo zależy ci na tolerancji.
CMOS 555 z łatwością będzie działać przez wiele godzin. OP wydawał się sugerować, że dokładność nie była problemem.
Nawet jeśli dokładność nie byłaby problemem, 555 działający przez tak długi okres czasu będzie tak szalenie niedokładny, że sprawi, że będzie to zasadniczo arbitralny czas. Rozwiązanie MSP430 podoba mi się znacznie lepiej, tanie, a dostarczony kryształ będzie dość dokładny w wymaganym okresie czasu.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 2.0, w ramach której jest rozpowszechniana.
Loading...