- odliczanie czasu w dół po wykryciu obiektu przez czujnik odbiciowy,
- możliwość ustawienia czasu początkowego w zakresie od 1 s do 99 min 59 s,
- sygnalizowanie trzech stanów: odliczania czasu, zakończenia i przerwania odliczania,
- czytelny wyświetlacz LED,
- zasilanie napięciem stałym o wartości około 12 V, pobór prądu do 100 mA.
Niektóre procesy muszą przebiegać przez określony czas. Na przykład napełnianie opakowań towarem, który zsypuje się w jednakowym tempie z podajnika. Co określony czas trzeba to opakowanie wymienić na nowe, puste, aby nie dochodziło do ich przepełnienia. Dodatkowo należy zasygnalizować błąd, który wystąpi jeżeli opakowanie zostanie wyjęte przed upływem zadanego czasu.
Prezentowany układ umożliwia ustawienie początkowego czasu aż do wartości 99 min i 59 s z rozdzielczością 1 s. Po wyłączeniu i ponownym włączeniu przywraca tę wartość, zapisaną uprzednio w pamięci nieulotnej. Dwa wygodne, duże przyciski służą do ustawiania czasu, a trzecim można zakończyć odliczanie w dowolnym momencie i przywrócić układ do stanu początkowego.
Budowa i działanie
Schemat licznika czasu został pokazany na rysunku 1. Jego pracą steruje mikrokontroler US1 typu Attiny24A – niewielki układ posiadający zaledwie 2 kilobajty pamięci programu. Jest jednak w pełni wystarczający do realizacji wspomnianych wcześniej funkcjonalności. Jego programowanie jest wykonywane metodą ISP – programator można podłączyć do złącza J1, układ wyprowadzeń odpowiada standardowi KANDA ISP 10 pin. Linie sygnałowe są podciągnięte do dodatniej linii zasilania, aby nie gromadziły się na nich ładunki elektrostatyczne. Dodatkowo wyprowadzenia MISO, MOSI i SCK służą jako wejścia przycisków monostabilnych, służących do zadawania nastaw czasu i zerowania układu.
Czas jest wskazywany na czytelnym wyświetlaczu siedmiosegmentowym LED typu AF5643FS, który ma cztery cyfry i emituje światło barwy czerwonej. Ma tak wysoką jasność, że nawet w silnym świetle jego świecenie jest wyraźne. Na środku posiada dwukropek, charakterystyczny dla wyświetlaczy przeznaczonych do zegarów. W tym układzie będzie służył do sygnalizacji stanu pracy. Sterowanie wyświetlaczem odbywa się poprzez multipleksowane załączanie jego kolejnych cyfr. Odpowiadają za to dwa rejestry przesuwne typu 74HC595. Pierwszy rejestr załącza poszczególne cyfry (wystawiając stan niski, co nasyca jeden z tranzystorów T1…T4) oraz dwukropek, a drugi, poszczególne segmenty każdej z cyfr oraz ich kropki. Są połączone kaskadowo, więc każdorazowa aktualizacja ich zawartości wymaga wysłania aż 16 bitów, za to cały wyświetlacz angażuje jedynie 3 wyprowadzenia mikrokontrolera.
Prąd każdego z segmentów wynosi około 10 mA i jest to ograniczenie narzucone przez sam rejestr przesuwny. Ciągły prąd płynący przez jego wyprowadzenie VCC lub GND nie może przekraczać 70 mA, więc cała cyfra może pobierać nie więcej niż ten limit. Kropki przy cyfrach nie są używane w tym projekcie, zatem jednocześnie może być włączone nie więcej niż 7 segmentów – stąd wynika prąd 10 mA przypadający na segment.
Sygnalizacja trwania odliczania oraz jego zakończenia odbywa się na dwa sposoby. Pierwszym jest załączenie dwukolorowej diody LED2, która świeci na zielono podczas odmierzania czasu i zmienia barwę świecenia na czerwoną, kiedy ten proces dobiegnie końca. Zabranie przeszkody podczas odmierzania czasu skutkuje ciągłym świeceniem diody na zielono i okresowym miganiem struktury czerwonej, przez co wydaje się, że przyjmuje ona kolor pomarańczowy. Razem z tą diodą są sterowane dwa tranzystory – T5 i T6, które wchodzą w stan nasycenia. Dzięki nim można rozszerzyć sygnalizację o sygnalizator dźwiękowy lub większy pasek diod. Należy przy tym pamiętać, że przez każde z wyjść nie może płynąć prąd większy niż 100 mA. Wyjście opisane jako CNT jest załączone podczas pomiaru czasu, a STOP po jego zakończeniu. Dlatego planując podłączenie obciążenia pobierającego większy prąd trzeba zaplanować dodatkowy układ wykonawczy, na przykład przekaźnik elektromagnetyczny. Wyjścia są zabezpieczone przed uszkodzeniem przez wyłączające się obciążenie indukcyjne, co realizują diody D1 i D2.
Zasilanie układu jest doprowadzane do złącza J3. Dioda D6 zabezpiecza je przed uszkodzeniem w razie omyłkowej zamiany biegunowości. Z kolei kondensator C5 filtruje zasilanie i stanowi podręczny rezerwuar energii, zabezpieczając przed występowaniem silnych spadków napięcia. Stabilizator liniowy US5 dostarcza napięcia o wartości 5 V dla układów cyfrowych. Pobierany prąd jest na tyle mały, że użycie przetwornicy impulsowej mijałoby się z celem.
Ostatnim blokiem układu, który należy omówić, jest układ obsługujący czujnik zbliżeniowy typu OPB704. Jego wygląd został pokazany na fotografii 1. Podłużne wycięcie w jego obudowie służy do przykręcenia go śrubką oraz regulacji odległości od wykrywanej przeszkody. Dioda LED (świecąca w podczerwieni) i fototranzystor są ukryte za niewielkim okienkiem, które znajduje się na ściętym czubki tej „strzałki”. Poszczególne wyprowadzenia są opisane symbolami wyrytymi na powierzchni obudowy czujnika.
Za włączanie diody LED odpowiada tranzystor T7, który okresowo wchodzi w stan nasycenia na kilka milisekund. Rezystor R18 ogranicza w tym czasie prąd płynący przez tę diodę. Jeżeli światło odbite od przeszkody wprawi fototranzystor czujnika w stan przewodzenia. Potencjał jego emitera ulegnie wtedy wzrostowi, ponieważ kolektor jest stale podłączony do dodatniej linii zasilania.
Rezystor R23 ogranicza prąd emitera fototranzystora, zaś dioda D3 zapobiega naładowaniu się kondensatora C6 do napięcia powyżej ok. 0,7 V. Jeżeli prąd płynący przez ten fotoelement będzie niewielki, to jedynym jego obciążeniem będzie rezystor R24, a jeżeni wzrośnie, to dioda D3 ograniczy napięcie. Kondensator C6 ma za zadanie odfiltrowanie szybkich impulsów, na przykład zakłóceń elektromagnetycznych.
Komparator US4 porównuje napięcie na C6 z napięciem referencyjnym, które dostarcza mu dzielnik napięcia złożony z rezystorów R21 i R22. Na wejście nieodwracające komparatora trafia napięcie o wartości około 160 mV. Jeżeli potencjał wejścia odwracającego będzie wyższy od tej wartości, tranzystor wyjściowy komparatora załączy się. Dlatego można było ograniczyć amplitudę impulsów trafiających na to wejście do napięcia przewodzenia diody D3 (około 700 mV), ponieważ wyższe napięcie i tak zostałoby zinterpretowane w ten sam sposób. Za to mamy gwarancję, że stopień wejściowy układu LM311 będzie pracował poprawnie – jest wykonany na tranzystorach PNP, zatem dobrze toleruje napięcia bliskie potencjałowi masy.
Kolektor tranzystora czujnika został podłączony do zasilania (około 12 V), a sygnał wyjściowy jest pobierany z emitera. Zatem zbliżenie przeszkody do czujnika spowoduje wzrost napięcia odkładającego się na R25, co z kolei doładuje kondensator C8 poprzez diodę D4. Kiedy impuls z komparatora skończy się, jedynym obciążeniem rozładowującym tę pojemność będzie rezystor R26, a nie stosunkowo mała rezystancja R25.
Prosty detektor szczytowy, złożony z D4, C8 i R26, przechowuje informację o tym, że czujnik wykrył przeszkodę. Dioda D5 ogranicza napięcie trafiające na wejście mikrokontrolera do około 5,7 V. Rezystor R27 ogranicza prąd tej diody, a zadaniem rezystora R28 jest zredukowanie natężenia prądu płynącego przez diody zabezpieczające wejście mikrokontrolera, o ile takowy chciałby popłynąć. W ten sposób mamy absolutną pewność, że delikatne wejście układu Attiny24A nie zostanie uszkodzone zbyt wysokim napięciem.
Kiedy przeszkoda zostanie zabrana sprzed czoła czujnika, fototranzystor nie nasyci się i komparator nie wykryje wzrostu potencjał swojego wejścia odwracającego. To z kolei spowoduje, że kondensator C8 nie zostanie naładowany porcją energii, zatem ulegnie wreszcie rozładowaniu, co mikrokontroler zinterpretuje jako logiczny stan niski. Wolno zmieniające się napięcia na wejściu mikrokontrolera nie zaszkodzi mu, gdyż jest ono opatrzone przerzutnikiem Schmitta.
Montaż i uruchomienie
Układ został zmontowany na dwustronnej płytce drukowanej o wymiarach 100×70 mm. Jej schemat oraz rozmieszczenie elementów został pokazany na rysunku 2. W odległości 3 mm od krawędzi płytki znalazły się otwory montażowe o średnicy 3,2 mm.
Wszystkie elementy znajdujące się na płytce są przystosowane do montażu przewlekanego. Należy je wlutować zgodnie z ogólnymi zasadami, zaczynając od najniższych, a kończąc na najwyższych. Po przeciwnej stronie płytki znajduje się dioda LED2, przyciski S1…S3 wyświetlacz LED1, który proponuję wlutować na końcu – aby jego powierzchnia nie została przypadkowo uszkodzona. Diodę LED2 należy wlutować wycięciem skierowanym w prawo – najkrótsza nóżka prowadzi do struktury świecącej na zielono.
Pod układy scalone w obudowach DIP proponuję zastosować podstawki, aby można było je łatwo wymienić w razie uszkodzenia. Stabilizator US5 nie wymaga radiatora, gdyż wydzielana na nim moc jest na tyle mała, że sama metalowa wkładka obudowy wystarczy do odprowadzenia powstającego w nim ciepła.
Gotowy, zmontowany układ został pokazany na fotografii 2. Trzeba do niego podłączyć czujnik OPB704, do zacisków złącza J4. Schemat połączeń został pokazany na rysunku 3.
Maksymalna długość przewodów nie jest narzucona i nawet kilkumetrowej długości połączenia nie powinny stanowić problemu.
Zasilanie układu powinno odbywać się napięciem stałym o wartości około 12 V, a maksymalny pobór prądu – bez dodatkowych elementów wykonawczych, nie przekracza 100 mA.
Mikrokontroler należy zaprogramować dostarczonym wsadem napięci FLASH oraz zmienić jego bity zabezpieczające na wartości:
Low Fuse = 0xE2
High Fuse = 0xDC
Szczegóły znajdują się na rysunku 4, który zawiera zrzut okna konfiguracji tych bitów z programu BitBurner. Spowoduje to wyłączenie preskalera zegara przez 8 oraz załączenie obwodu Brown-Out Detector z progiem zadziałania na poziomie około 4,3 V.
Jeżeli do układu chcemy podłączyć dodatkowe elementy sygnalizujące jego stan (odliczanie/zakończenie), to służy do tego złącze J2. Układ połączeń objaśnia rysunek 5.
Eksploatacja
Prawidłowo zmontowany układ jest od razu gotowy do działania. Po włączeniu zasilania wchodzi w stan zerowy, a potem pierwszy. Ogólnie, może znajdować się w jednym z pięciu stanów, które zostały dokładnie objaśnione w tabeli 1.
Format wyświetlanego czasu to MM:SS. Przyciski S1 (zwiększa czas) i S2 (zmniejsza czas) działają tylko w 1. stanie pracy, czyli podczas zatrzymanego odliczania. Ich trzymanie powoduje zmianę czasu o 1 s, a inkrementacja (bądź dekrementacja) przyspiesza w miarę trzymania danego przycisku w stanie wciśnięcia. Ponadto, czas przewija się „w kółko”, czyli po zwiększeniu czasu z 99 min 59 s następuje 0 min 1 s i odwrotnie. Ustawienie czasu zerowego (0 min 0 s) jest niemożliwe i zostanie przez układ skorygowane. Zapis do nieulotnej pamięci EEPROM nastąpi po zwolnieniu wszystkich przycisków.
Czujnik OPB704 sonduje otoczenie co około 500 ms. Dlatego krótkotrwałe zabranie przeszkody przed jego czoła (wywołane np. drżeniem) może nie zostać wykryte. Układ jest taktowany oscylatorem RC wbudowanym z mikrokontroler. Ponieważ ten licznik zaprojektowano z myślą o ręcznym pakowaniu produktów, uznano niewielką odchyłkę odmierzanego czasu za dopuszczalną. I tak oto układ prototypowy w czasie odmierzania 30 minut spóźnił się jedynie o 7 sekund, w temperaturze pokojowej.
Zasięg czujnika zbliżeniowego może zależeć od wielu czynników, takich jak temperatura otoczenia oraz faktura i kolor powierzchni przyłożonej do jego czoła. Podczas testów uzyskano zasięg rzędu 10…12 mm w przypadku powierzchni porowatych i około 15…18 mm dla gładkiego, oszlifowanego metalu. Dotknięcie przeszkodą do czoła czujnika również wywołuje jego poprawną reakcję.
Przycisk S3 służy do wyzerowania stanu pracy układu – jego wciśnięcie powoduje powrót do stanu pierwszego. Można to wykorzystać do wykasowania alarmu o przedwczesnym zabraniu przeszkody, jeżeli ta jednorazowa sytuacja tego wymagała.
Michał Kurzela, EP
- R1…R9, R16, R17, R22: 330 Ω
- R10…R15, R19, R23: 2,2 kΩ
- R18: 330 Ω 1 W
- R20, R21, R24, R25, R27, R28: 10 kΩ
- R26: 330 kΩ
- RN1: 4×10 kΩ SIL5
- C1, C3, C4, C7…C10: 330 nF raster 5 mm MKT
- C2, C11: 100 μF 26 V raster 2,54 mm
- C5: 1000 μF 25 V raster 5 mm
- C6: 10 nF raster 5 mm MKT
- D1…D5: 1N4148
- D6: 1N5817
- LED1: AF5643FS
- LED2: OSRG5131A-C
- T1…T4: BC556 lub podobny
- T5…T7: BC546 lub podobny
- US1: ATtiny24A DIP14
- US2, US3: 74HC595 DIP16
- US4: LM311 DIP8
- US5: 7805 TO220
- J1: IDC 10 pin 2,54 mm pionowe
- J2, J4: ARK3/500
- J3: ARK2/500
- S1…S3: mikroswitch (12×12) h 9 mm, TS12-130
- Czujnik OPB704 (opis w tekście)