Bezpłatna biblioteka techniczna ENCYKLOPEDIA RADIOELEKTRONIKI I INŻYNIERII ELEKTRYCZNEJ Wieloprogramowy timer-zegar-termometr. Encyklopedia elektroniki radiowej i elektrotechniki Encyklopedia radioelektroniki i elektrotechniki / Regulatory mocy, termometry, stabilizatory ciepła W artykule opisano uniwersalne urządzenie cyfrowe oparte na kontrolerze PIC, które może pełnić funkcje wieloprogramowego timera, który może sterować czterema obciążeniami, zegarem, budzikiem, termometrem szerokozakresowym oraz termostatem zapewniającym zarówno ogrzewanie, jak i chłodzenie kontrolowanego obiektu. Uniwersalne urządzenie cyfrowe, którego obwód pokazano na ryc. 1, posiada następujące specyfikacje:
Steruj urządzeniem za pomocą 16-przyciskowej klawiatury. Istnieje możliwość włączenia i wyłączenia dźwięku naciskania przycisków, ustawienia zasilania dźwiękiem, światłem i sygnałami sterującymi, możliwość indywidualnego dostosowania urządzenia do konkretnego zastosowania poprzez zmianę programu sterującego MK. Istnieje zapasowe zasilanie z wbudowanego akumulatora. Wszystkie parametry ustawione podczas pracy z urządzeniem są zapamiętywane nawet po wyłączeniu zasilania rezerwowego przez ponad 40 lat. Jak widać na schemacie, podstawą urządzenia jest kontroler PIC DD1. Rejestr przesuwny DD2 i dekoder DD3 są przeznaczone do organizowania dynamicznego wskazania, którego zasada jest następująca. Najpierw kod 3 jest stosowany do dekodera DD1111, w wyniku czego na wszystkich jego wyjściach ustawiane są poziomy logowania. 1 i żadna z cyfr wskaźnika HG1 nie świeci. Następnie kod wymaganego znaku jest wprowadzany do rejestru DD2, po czym kod odpowiadający żądanemu bitowi wskaźnika jest wysyłany do DD3. Równocześnie z aktualizacją danych dla wskaźnika skanowana jest klawiatura, której 16 przycisków podzielonych jest na dwie grupy po osiem w każdej. Ogólne wyprowadzenia przycisków tych grup są podłączone do dwóch wejść MK (RB0 i RB1). Po naciśnięciu przycisku do jednego z tych wejść wysyłany jest sygnał dziennika. 0 z odpowiedniego wyjścia dekodera DD3, określając w ten sposób jego kod. Za pomocą klawiatury można uruchomić/zatrzymać dowolny z programatorów czasowych lub wszystkie jednocześnie, ustawić tryb pracy termostatu, aktualny czas, godzinę alarmu itp. Większość przycisków ma dwojakie zastosowanie, w zależności od tego, jakie informacje użytkownik wprowadza z klawiatury: numeryczną lub kontrolną. Rozważ bardziej szczegółowo przeznaczenie przycisków klawiatury. „0”, „Zegar” - cyfra 0 przy wprowadzaniu informacji liczbowych lub przechodzeniu w tryb zegara, w którym można zmienić aktualny czas, ustawić godzinę włączenia alarmu, włączyć tryb alarmu o nowej godzinie, edytować godzinę współczynnik korygujący (patrz poniżej). „1” - „9” - cyfry 1 - 9 podczas wprowadzania informacji numerycznych lub wybierania odpowiedniego programatora czasowego. „Term” – przejście do trybu termostatu, w którym można ustawić aktualną wartość temperatury, edytować wartość kontrolowanej temperatury, rodzaj regulacji (grzanie lub chłodzenie) oraz parametry termistora. „Del” - znak „minus” przy wprowadzaniu wartości kontrolowanej temperatury, włączaniu/wyłączaniu termostatu, termometru, budzika lub zegara (przy wyłączonym zamiast odpowiednich odczytów wyświetlane są znaki ---), zerowaniu, gdy wprowadzanie danych liczbowych. „Ustaw” – przejście/wyjście do trybu zmiany wartości dowolnego parametru (programowy timer, aktualny czas, budzik, termometr, termostat, nastawy). „Opcje” – przejście do trybu zmiany ustawień. Tutaj możesz włączyć / wyłączyć dźwięk przycisków, tryb powitalny, wybrać źródła do wydawania sygnałów sterujących itp. „Wybierz” – uruchom/zatrzymaj aktualny timer programowy, jeśli jego wartość opóźnienia czasowego jest różna od 0. "AH" - start/stop wszystkich programowych timerów, których wartość opóźnienia czasowego jest różna od 0. Urządzenie jest w stanie wyemitować cztery sygnały sterujące, z których każdy może być wykorzystany według uznania użytkownika. Możliwe jest ustawienie źródła tych sygnałów:
Urządzenie wykorzystuje dwukolorową diodę LED HL1, która miga na czerwono, jeśli co najmniej jeden sygnał sterujący stał się aktywny, gdy uruchamiany jest jeden lub więcej timerów, a na zielono, jeśli nie ma aktywnych sygnałów. Po upłynięciu czasu opóźnienia któregokolwiek z działających timerów, wskaźnik HG1 zaczyna migać, a emiter piezoelektryczny HA1 z wbudowanym przerywaczem emituje sygnał dźwiękowy. Trwa to do momentu naciśnięcia przez użytkownika dowolnego przycisku na klawiaturze lub upłynięcia określonego czasu, którego wartość jest zapisywana w pamięci MK i może być zmieniona podczas jego programowania. Sygnał dźwiękowy emitowany po uruchomieniu timera jest określany przez dwa parametry: czas trwania dźwięku i liczbę pakietów dźwiękowych. Gdy włączy się alarm, wydawane są również sygnały dźwiękowe, ale tylko dwa skrajne lewe symbole wskaźnika - A i L (z ang. ALARM - budzik) zaczynają migać. Sygnał dźwiękowy budzika jest również opisany dwoma parametrami zapisanymi w pamięci MK. W zależności od zastosowanego rezonatora kwarcowego dokładność zegara okazuje się różna, dlatego też w urządzeniu zaimplementowano programową korekcję czasu. Współczynnik korekcji jest ustawiany przez użytkownika z klawiatury i jest również zapisywany w pamięci MK. W rzeczywistości reprezentuje liczbę mikrosekund, które są dodawane do okresów oscylacji generowanych przez wewnętrzny zegar MK - w naszym przypadku 1,92 ms. Za pomocą współczynnika korygującego osiąga się ten czas równy 2 ms (okres czasu 1 s jest rejestrowany po każdych 500 takich okresach). Temperatura jest mierzona poprzez pomiar spadku napięcia na termistorze RK1. Jego rezystancję w funkcji temperatury określa się za pomocą następującego wzoru: gdzie R0 jest stałą mającą wymiar rezystancji; B jest stałą mającą wymiar temperatury; T to temperatura bezwzględna. Zależność tę należy zatem sprowadzić do liniowej. Znana jest metoda linearyzacji za pomocą mostka termistorowego, ale takie podejście jest niewygodne, ponieważ przy wymianie termistora trzeba zmienić parametry samego mostka, co nie jest takie proste. Wygodniej byłoby uzyskać wartość temperatury bez żadnej linearyzacji, ale w tym celu należy obliczyć wartość następującego wyrażenia: gdzie Rd jest rezystancją dodatkowego rezystora; N - 10-bitowy kod binarny uzyskany po konwersji analogowo-cyfrowej; Un - napięcie zasilania. W opisywanym urządzeniu wyrażenie to jest obliczane przez program sterujący MK, a wynik jest wyświetlany na wskaźniku. Należy zaznaczyć, że powyższy zakres mierzonych i kontrolowanych temperatur (-43...+470°C) można dowolnie rozciągać, ściskać lub przesuwać. Wskazany przedział został wybrany, ponieważ błąd pomiaru temperatury w nim nie przekracza ±2 °С. W tym przypadku rezystancja dodatkowego rezystora R17 wynosi 300 omów. Aby zmniejszyć błąd, można go zwiększyć, jednak w rezultacie zmienią się granice przedziału temperatur. Dla ułatwienia obliczeń możesz użyć dokument term (10 bit).mcd dla systemu MathCAD 2001, który oblicza zakres mierzonych temperatur na podstawie podanych parametrów termistora RK1, rezystora R17 oraz wymaganego błędu. Aby zegar czasu rzeczywistego nie błądził po wyłączeniu głównego zasilania, przyrząd posiada zasilacz rezerwowy MK. Składa się z baterii 1 V GB3,6, rezystora R16 i diod VD2, VD3. Po włączeniu głównego zasilania dioda VD3 zamyka się, a akumulator GB1 jest ładowany przez rezystor R16. Po wyłączeniu zasilania głównego napięcie z akumulatora podawane jest przez diodę VD3 tylko do MK (dioda VD2 uniemożliwia doprowadzenie napięcia do pozostałych elementów urządzenia). MK stwierdza fakt braku zasilania, ponieważ stale monitoruje poziom napięcia na pinie RB2. A kiedy staje się równy dziennikowi. 0, MK przestaje regenerować wskaźnik i odpytywać klawiaturę, zatrzymuje wszystkie uruchomione timery programowe, przestaje mierzyć i regulować temperaturę oraz przechodzi w tryb zegara. Dodatkowo, jeżeli ustawienia zostały zmienione podczas pracy z urządzeniem, to po wyłączeniu zasilania czerwona dioda LED będzie krótko migać, jeśli ustawienia nie uległy zmianie – zielona. Jeżeli urządzenie nie będzie używane przez dłuższy czas (tydzień lub dłużej), to aby zapobiec całkowitemu rozładowaniu baterii, można wyłączyć zasilanie rezerwowe za pomocą zworki S1. MK stale monitoruje stan styków przycisków na klawiaturze, a jeśli w określonym czasie nie było ani jednego naciśnięcia i nie uruchomiono ani jednego programatora, automatycznie przełącza się w tryb zegara. Program sterujący MK jest napisany w języku C, dzięki czemu bez problemu może korzystać z dowolnych typów danych, w tym rzeczywistych. Program został opracowany w systemie programistycznym HT-PIC C (można go „pobrać” ze strony ). Do debugowania wykorzystaliśmy najprostszy emulator w układzie, czyli zestaw styków łączących linie portu równoległego komputera z gniazdem pod MK na płycie głównej. Zgodność wyprowadzeń portu równoległego komputera z gniazdami gniazda MK na płytce timera podano w tabeli. 1. Do sterowania emulatorem skompilowano program sterujący MK z niewielkimi zmianami w środowisku programistycznym Borland C++ 3.1. Niestety praca takiego emulatora odbywa się w innej skali czasowej niż rzeczywista, niemniej jednak bez takiego urządzenia debugowanie tak złożonego programu byłoby prawie niemożliwe. Bez użycia emulatora zaimplementowano jedynie konwersję analogowo-cyfrową, której opis w odniesieniu do tego MK można znaleźć na stronie (dokument DS30292C - "10-bitowy moduł ADC w mikrokontrolerach PIC16F87x"). Rozważmy pokrótce główne punkty programu sterującego MC. Jest napisany przy użyciu metodologii programowania strukturalnego, w wyniku czego ma dużą liczbę podprogramów. Po włączeniu zasilania MCU ustawia porty I/O, ADC i wewnętrzny timer. Następnie rozpoczyna się główna pętla, która jest nieskończona. W nim, jak już wspomniano, obecność głównego napięcia zasilania jest stale sprawdzana, a jeśli jest wyłączona, MK przestaje wykonywać wszystkie funkcje oprócz pomiaru czasu. Po włączeniu zasilania głównego wyświetla ekran powitalny i powraca do trybu pracy. Informacje, które powinny być wyświetlane na wskaźniku w danym momencie, są przechowywane w tablicy d. W procesie regeneracji wskaźnika MC przepisuje swoją zawartość do tablicy pośredniej, z której sekwencyjnie odczytuje kody znaków wyjściowych i wyświetla je na wskaźniku. Dodatkowa tablica jest wprowadzana w celu wyeliminowania migotania wskaźnika wynikającego z zapisywania nowych informacji do tablicy d zanim stara nie zostanie jeszcze w pełni wyświetlona. Załóżmy na przykład, że tablica d początkowo zawierała łańcuch „ABCDEFHLP”, a gdy zostanie wyświetlony czwarty znak („D”), do tablicy wpisany zostanie ciąg „FDA 2002”. Wtedy użytkownik urządzenia, ze względu na bezwładność ludzkiego wzroku, w pewnym momencie zobaczy wiersz „ABC 2002”. Dodatkowo, jeśli takie procesy będą się ciągle powtarzać (a tak będzie w realnej pracy), osoba odniesie wrażenie, że informacja na wskaźniku migocze. Jak wspomniano, klawiatura jest skanowana jednocześnie z aktualizacją wskaźnika. Po naciśnięciu dowolnego przycisku wywoływany jest podprogram tłumienia odbijania styków, który opóźnia się o kilka milisekund (wartość tego czasu zapisywana jest w pamięci MK), podczas których urządzenie nie reaguje na kolejne naciskanie przycisków. Należy również zauważyć, że czas ekspozycji timerów programowych, zegarów i alarmów jest ustawiany w sekundach (licznik godzin jest resetowany po osiągnięciu wartości 24 x 60 x 60 = 86400), a przed wyświetleniem na wskaźniku jest przeliczany do formatu H : MM : SS dla timerów lub do formatu HH : MM dla zegara i alarmu. Odbywa się to za pomocą następujących formuł: C = czas mod 60. Tutaj operacja ][ oznacza odrzucenie części ułamkowej, tj. dzielenie jest liczbą całkowitą. Uzyskane wartości godzin, minut i sekund nie nadają się jeszcze do bezpośredniego wyświetlenia na wskaźniku, ponieważ są prezentowane w kodzie binarnym. Aby wybrać najbardziej znaczące i najmniej znaczące miejsca po przecinku, konieczne jest wykonanie dwóch dodatkowych operacji na każdej wartości: LSB = wartość mod 10. Rozważ przykład. Niech konieczne będzie wyświetlenie wartości 8673 s na wskaźniku w formacie H : MM : SS. dostajemy C = 8673 mod 60 = 33. W ten sposób wskaźnik wyświetli 2 : 24 : 33 Z podanych przykładów widać, ile operacji trzeba wykonać, aby uporządkować wyjście do wskaźnika. Zaimplementowanie takiej matematyki w asemblerze byłoby prawie niemożliwe. W języku C jest to realizowane w zaledwie kilku liniach, a dzięki wysokiemu poziomowi optymalizacji kod programu jest dość zwarty i szybki. Ale najważniejsze jest to, że programista może skupić swoją główną uwagę na algorytmie programu, abstrahując od specyfiki architektury zastosowanego mikrokontrolera. Wszystko to przyczynia się do łatwego przenoszenia programu z jednego MK do drugiego. Tekst źródłowy programu MK oraz kody „firmware” w formacie Intel HEX znajdują się pod powyższym adresem w Internecie. Aby zaprogramować MK, autor użył programatora zmontowanego zgodnie ze schematem pokazanym na ryc. 2 oraz oprogramowanie PonyProg2000, którego najnowszą wersję można „pobrać” ze strony internetowej . Główną różnicą między programatorem a opisanym w [1] jest dodanie kolejnego tranzystora (VT3) do układu generowania sygnału synchronizacji, co zwiększa niezawodność programowania poprzez całkowite wyeliminowanie ujemnego napięcia na kołkach MK. Opisywane urządzenie umożliwia programowanie MK na płytce, czyli obsługuje technologię ICSP (In-Circuit Serial Programming - in-circuit serial programming). Aby to zrobić, jest podłączony pięcioma przewodami do programatora przez złącze X1 w następujący sposób: 7 - wspólny; 5,6 - 5 V; 2 - SDA; 3 - SCL; 1 - Upprogr. Istnieje możliwość zastosowania innych programatorów, w tym obsługujących programowanie niskonapięciowe. W tym drugim przypadku należy dodatkowo połączyć odpowiedni styk programatora z pinem 4 złącza X1. Rysunek płytki drukowanej urządzenia pokazano na ryc. 3, klawiatury - na ryc. cztery. Na płytce timera znajduje się siedem otworów, w które przed zamontowaniem części wkłada się kawałki ocynowanego drutu i przylutowuje do drukowanych przewodów po obu stronach płytki. Funkcję zworek pełnią również wnioski niektórych części. Otwory, przez które wykonuje się takie połączenia drukowanych przewodów, zaznaczono na ryc. 3 z czterema poprzecznymi kropkami. Pliki źródłowe projektu oraz biblioteka wykorzystanych komponentów dla CAD Accel EDA 15.0 znajdują się na powyższej stronie. W urządzeniu zastosowano stałe rezystory i kondensatory do montażu powierzchniowego. Wyjątkiem są kondensatory tlenkowe C6, C7 (K50-35). MK PIC16F876 może mieć dowolną maksymalną częstotliwość roboczą i zakres temperatur, najważniejsze jest to, aby znajdował się w pakiecie DIP (miał sufiks SP). Emiter piezoelektryczny HRM14AX można zastąpić zespołem wykonanym na trzech elementach mikroukładu KR1533LAZ i emiterze piezoelektrycznym ZP-18 [2]. Termistor RK1 - MMT-4 o rezystancji nominalnej 15 kOhm (R0 = 0,294 Ohm, V = 3176 K). Jako złącza X1 - XZ stosuje się bloki dzielone z pinami prostymi, które są stosowane w technice komputerowej: dla X1 stosuje się blok z dwurzędowym układem pinów, a dla X2 i XZ - z jednym rzędem. Usunięto ósmy styk wtyczki XP1 i trzecią wtyczkę XP2, a w odpowiednie gniazda współpracujących części złączy włożono wtyczki - kawałki grubej żyłki wędkarskiej. Ten środek zapobiegnie nieprawidłowemu dopasowaniu złączy. Gniazdo złącza X2 wykonane jest z 20-slotowego panelu na mikroukład w obudowie DIP (wykorzystywana jest jego jedna część, która ma 10 pinów). Przyciski SB1-SB16 - TS-A3PS-130. Zawartość pamięci EEPROM MK, którą można zmienić w celu ustawienia innych parametrów pracy, przedstawia tabela. 2. Kolumna „Parametr” zawiera nazwę parametru, która jest wyświetlana na wskaźniku. Jeśli w tej kolumnie jest myślnik, to ten parametr można zmienić tylko podczas programowania MK. literatura
Autor: D.Frołow, Ryazan Zobacz inne artykuły Sekcja Regulatory mocy, termometry, stabilizatory ciepła. Czytaj i pisz przydatne komentarze do tego artykułu. Najnowsze wiadomości o nauce i technologii, nowa elektronika: Sztuczna skóra do emulacji dotyku
15.04.2024 Żwirek dla kota Petgugu Global
15.04.2024 Atrakcyjność troskliwych mężczyzn
14.04.2024
Inne ciekawe wiadomości: ▪ Przekroczono limit rozdzielczości optycznej ▪ Zielona energia spowoduje kryzys metali rzadkich ▪ Fale jonowo-dźwiękowe do wyszukiwania kosmicznych śmieci ▪ Duże zwierzęta i śmiertelne choroby Wiadomości o nauce i technologii, nowa elektronika
Ciekawe materiały z bezpłatnej biblioteki technicznej: ▪ sekcja serwisu Urządzenia różnicowoprądowe. Wybór artykułu ▪ artykuł Zdolności cywilizacji w zapobieganiu i likwidacji katastrof. Podstawy bezpiecznego życia ▪ Inspektor artykułów, mechanik taboru. Standardowe instrukcje dotyczące ochrony pracy ▪ artykuł Układ chłodzenia wodą. Encyklopedia elektroniki radiowej i elektrotechniki ▪ artykuł Zahipnotyzowane pudełko zapałek. Sekret ostrości
Zostaw swój komentarz do tego artykułu: Wszystkie języki tej strony Strona główna | biblioteka | Artykuły | Mapa stony | Recenzje witryn www.diagram.com.ua |