wersja mobilna | kontakt z nami

Zasilacz laboratoryjny 0...30 V/5 A ze sterowaniem mikroprocesorowym (2)

Numer: Styczeń/2018

Na ścieżce rozwoju każdego elektronika-konstruktora pojawia się wreszcie taka chwila, gdy w prowadzonych pracach rozwojowych przestają wystarczać takie źródła energii elektrycznej, jak jednorazowe ogniwa elektrochemiczne, akumulatory i akumulatorki czy tanie zasilacze wtyczkowe o przeciętnych parametrach. To chwila, w której jasna staje się potrzeba posiadania własnego zasilacza laboratoryjnego. W poprzednim artykule opisano budowę zasilacza ? w tym zajmiemy się opisem jego oprogramowania oraz uruchomieniem.

Pobierz PDFMateriały dodatkowe

Oprogramowanie sterujące zasilaczem napisano w języku Bascom-AVR. Zostało ono podzielone na pięć głównych modułów logicznych:

- Konfiguracji programu, portów, przetworników oraz deklaracji zmiennych.
- Deklaracji, prekonfiguracji i warunkowej prezentacji kluczowych parametrów roboczych, zapamiętywanych w pamięci EEPROM.
- Pętli głównej programu.
- Podprogramów podstawowych.
- Podprogramów obsługi menu.

Moduł konfiguracji programu, portów, przetworników i zmiennych, pokazany na listingu 1, rozpoczyna się od podania parametrów dla kompilatora języka. Dalej następuje konfiguracja dwóch portów wyjściowych (D.4 i D.5), które są wyjściami 10-bitowych przetworników cyfrowo-analogowych DAC/PWM, dostarczającymi nieprzetworzonych napięć sterujących (referencyjnych) Us oraz Im dla głównego stabilizatora napięcia wyjściowego oraz dla komparatora ograniczającego prąd wyjściowy. Uruchomienie przetworników DAC/PWM już na początku programu ma na celu umożliwienie bezproblemowej realizacji dalszej części konfiguracyjnego bloku programu (bez ryzyka negatywnych skutków niezerowego napięcia na wyjściu stabilizatora) poprzez ustawienie referencji dla napięcia wyjściowego na minimum (PWM=0, Uo=0V) oraz wartości limitu dla przeciążenia prądowego Im na bezwzględne maksimum (PWM=1023). Teraz następuje konfiguracja wyjściowych portów B.0, B.1, B.3 i B.4, sterujących: przekaźnikiem K1 przełączającym sekcje transformatora, bocznikiem diody Zenera D7 – odpowiedzialnej za zakres regulacji napięcia Uo, wentylatorem radiatora M1 oraz buzzerem SP1, ustawionych (kolejno) na: niższy zakres napięć wyjściowych Uo, wyłączone chłodzenie oraz nieaktywną sygnalizację dźwiękową. Następnie konfigurowane są wyjściowe porty D.0..D.2 i D.6, odpowiedzialne za załączanie sygnalizacji optycznej diodami LED (stany: normalna praca, załączenie wentylatora, przeciążenie prądowe oraz przegrzanie zasilacza). Kolejno konfigurowane są porty wejściowe: przycisków sterujących D.7, C.0, C.1 i B.2 oraz wejście przerwania INT1 (port D.3), wyzwalanego niskim poziomem przez komparator U5B na skutek wykrycia stanu przekroczenia limitu prądowego Im. Za tymi deklaracjami następuje: konfiguracja wyświetlacza LCD 16×2 (U7), używającego portów: C.2…C.7, definicja znaku stopnia oraz wyświetlenie ekranu powitalnego urządzenia. W ostatnim bloku tego modułu są definiowane stałe i zmienne. Należą do nich: Ku (stała wzmocnienia wzmacniacza napięciowego), Fromadc (słowo pomiarowe z przetwornika A/C), PrhiPrlo (dane pośrednie pomiarów A/C z potencjometrów regulacyjnych POT1…POT4), UpwmTodacpwm (zmienna pomocnicza do przeliczania napięcia sterującego oraz dana sterująca przetwornikiem DAC/PWM), Uz (główne napięcie zasilania bloku wykonawczego stabilizatora), UsUs_temp (zadane napięcie wyjściowe zasilacza: aktualne i poprzednie), Uo, Uo_old, Uo_tmpUo_lcd (napięcia wyjściowe zasilacza: aktualne, poprzednie, zmienna pomocnicza oraz wartość przeznaczona do wyświetlenia na ekranie LCD w podstawowym trybie BASIC), Im (nastawiany limit prądu wyjściowego), Im_lower (górny próg dla podnoszenia napięcia Us w trakcie obsługi stanu przeciążenia), Io, Io_old, Io_tmp oraz Io_lcd (prądy wyjściowe zasilacza: aktualny i w poprzedniej iteracji, wartość pomocnicza oraz wartość wyświetlana na ekranie LCD w trybie BASIC), Fovl (flaga statusu wystąpienia przeciążenia prądowego), Tr, Tr_old, Tr_tmp oraz Trint (temperatury radiatora: bieżąca i poprzednia na potrzeby filtracji zakłóceń, wartość pomocnicza do obliczeń oraz wersja całkowitoliczbowa do celów wyświetlenia i porównania), PtPtint (moc strat termicznych w głównym bloku wykonawczym zasilacza w wersji zmiennoprzecinkowej i całkowitej – do wyświetlenia na ekranie LCD), Us_chng (krok zmiany napięcia Us w trakcie obsługi stanu przeciążenia), A, B, C, D, EF (współczynniki proporcjonalności kolejno do: ustawiania napięcia sterującego Us, wyznaczania napięcia Uo, nastawiania limitu prądu Im, pomiaru wyjściowego prądu Io, wyznaczania temperatury radiatora Tr, wyznaczania głównego napięcia Uz bloku wykonawczego stabilizatora), Selitem (wskaźnik pozycji menu, wybranej do wyświetlenia i ewentualnej modyfikacji), Poschanged (flaga zmiany pozycji menu, wymuszająca odświeżenie ekranu) i na koniec Us_hi (zakres obszaru pracy dla głównego napięcia zasilania oraz sterowania stabilizatora).

rys15Moduł deklaracji, wstępnej konfiguracji oraz warunkowej prezentacji kluczowych parametrów roboczych, zapamiętywanych w pamięci EEPROM, pokazano na listingu 2. W pierwszej, największej części składa się on z dziesięciu podobnych do siebie algorytmicznie sekcji, z których każda jest odpowiedzialna za: deklarację, odczyt z pamięci EEPROM, warunkową rekonfigurację i zapis do pamięci EEPROM oraz warunkową prezentację jednej ze zmiennych konfiguracyjnych. W szczególności, po odczytaniu zadeklarowanego uprzednio parametru, sprawdzana jest jego przynależność do dozwolonego zakresu wartości i – w przypadku negatywnego wyniku testu – nadawana jest mu wartość default, następnie zapisywana do pamięci EEPROM. Jeśli flaga Show_params, odpowiedzialna za zgodę na wyświetlanie parametrów konfiguracyjnych zasilacza przed rozpoczęciem jego właściwej pracy jest ustawiona (równa 1), to w następnym kroku jest wyświetlana wartość danego parametru. Obecność opisanego bloku programowego jest konieczna po to, by uniknąć ryzyka uruchomienia zasilacza z niewłaściwymi wartościami parametrów konfiguracyjnych. Należą do nich: opisany wcześniej Show_params (wartości: 0 – TAK, 1 – NIE), Lcd_mode (tryb wyświetlania na ekranie LCD: 0 – podstawowy/BASIC, 1 – serwisowy/SERVICE), Buzzer_on (zgoda na używanie buzzer’a do sygnalizacji przeciążenia i przegrzania: 0 – NIE, 1 – TAK), Vref (napięcie referencyjne z wyjścia stabilizatora: ok. 5 V – w zakresie od 4,7 do 5,3 V), Tr0 (próg temperatury zakończenia chłodzenia wentylatorem: od 40 do 60 stopni Celsjusza), Tr1 (próg temperatury rozpoczęcia chłodzenia wentylatorem: od powyżej Tr0 do 70 stopni Celsjusza), Tr2 (próg temperatury rozpoczęcia procedury przegrzania: od powyżej Tr1 do 80 stopni Celsjusza), Us_hi_on (próg napięciowy dla załączenia górnego zakresu zasilania i sterowania: od 10 do 20 V), Us_hi_off (próg napięciowy dla załączenia dolnego zakresu zasilania i sterowania: od 9 V do poniżej Us_hi_on) oraz Ovldwait (opóźnienie dodane w pojedynczym kroku obsługi przerwania od przeciążenia: od 1 msdo 10000 ms) Opisany moduł kończą instrukcje: konfiguracji i uruchomienia przetwornika A/C oraz zewnętrznego przerwania sprzętowego INT1, używanego do obsługi stanu przeciążenia prądowego.

Moduł pętli głównej pokazano na listingu 3. Wejście do tej pętli zostało poprzedzone wyłączeniem wyświetlania kursora i załączeniem zielonej diody LED (D11), sygnalizującej rozpoczęcie normalnej pracy urządzenia. Została ona zorganizowana w postaci pętli nieskończonej. Na początku tej pętli znajduje się blok inicjowanego naciśnięciem przycisku SW_1 (OPT) wejścia do menu konfiguracyjnego urządzenia. Właściwe uruchomienie podprogramu obsługi menu poprzedzone jest ustawieniem limitu prądowego na maksymalną wartość Im=5 A, wysterowania napięcia wyjściowego Us na 0 V oraz wyłączeniem diod LED sygnalizujących: pracę urządzenia (D11) i ewentualnie stan przeciążenia (D13). Wyłączany jest też profilaktycznie buzzer SP1 oraz gaszona jest flaga stanu przeciążenia Fovl. Po powrocie z podprogramu obsługi menu zapalana jest ponownie dioda LED D11, sygnalizująca normalną pracę urządzenia, a ewentualna aktywacja pozostałych indykatorów i flag następuje już w ramach normalnego cyklu roboczego. W kolejnym bloku głównej pętli programu, za pomocą skoków do odpowiednich podprogramów realizowane są poszczególne pomiary i odczyty nastaw. Najpierw odczytywane są wszelkie parametry napięciowe: głównego napięcia zasilającego Uz (warunkowo – tylko w serwisowym trybie wyświetlania na LCD), nastaw napięcia Us sterującego stabilizatorem (z potencjometrów POT1 i POT2; warunkowo – tylko wówczas, gdy flaga przeciążenia prądowego jest zgaszona) oraz napięcia wyjściowego Uo. Dalej następuje bezwarunkowy odczyt parametrów prądowych: limitu prądowego Im (z potencjometrów POT3 i POT4) oraz prądu wyjściowego Io. Sekcję odczytów kończy pomiar temperatury radiatora Tr. Kolejny, bardzo ważny, blok głównej pętli programu to blok regulacji. Pierwsza jego część dotyczy regulacji napięcia wyjściowego Uo za pomocą napięcia sterującego Us. Jeśli zasilacz nie znajduje się w stanie przeciążenia prądowego (Fovl=0), to wartość Us jest przenoszona do bloku wykonawczego stabilizatora bezpośrednio na podstawie nastaw odczytanych z potencjometrów POT1...POT2. W przeciwnym wypadku sprawdzany jest aktualny stan wejścia przerwania INT1 (aktywowane niskim poziomem, jeśli występuje przeciążenie prądowe z warunkiem Io>=Im) i jeśli nie jest ono aktywne oraz bieżąca wartość prądu wyjściowego Io jest poniżej dopuszczalnego progu prądu Im_lower dla podwyższania napięcia sterującego Us, to realizowane jest działanie mające na celu wyjście ze stanu przeciążenia prądowego. W tym celu w zmiennej Us_temp zapamiętywana jest aktualna wartość napięcia sterującego Us, a następnie realizowany jest odczyt nowej wartości Us (z potencjometrów POT1 i POT2). Jeśli poprzednia wartość nastawy Us jest mniejsza od bieżącej, to jest realizowane podniesienie wartości Us o pojedynczy krok równy Us_chng, po którym następuje realna zmiana Us na odpowiednim wyjściu sterującym zasilacza – jest to działanie mające na celu doprowadzenie do zgodności zredukowanego uprzednio (w stanie przeciążenia prądowego) napięcia Us z aktualną wartością nastawioną. Natomiast jeśli stwierdzono, że napięcie Us przekroczyło już wartość z nastaw na potencjometrach POT1 i POT2 (warunek: Us_temp>=Us), to następuje zakończenie procedury obsługi przeciążenia prądowego poprzez zgaszenie flagi Fovl, wyłączenie diody LED (D13) oraz ewentualne wyłączenie buzzera. Dalej, w bloku regulacji, następuje aktualizacja nastawy limitu prądowego Im, która może wpływać na sposób obsługi przeciążenia prądowego (w trakcie jej trwania) poprzez dalszą redukcję prądu wyjściowego Io (przy obniżeniu wartości Im) lub przyśpieszenie wyjścia z tego stanu (przy zwiększeniu wartości Im). Ostatni fragment bloku regulacji odpowiada za reakcję na bieżącą wartość temperatury radiatora Tr. Jest w nim analizowana przynależność wartości bieżącej Tr do przedziałów wyznaczonych przez zapisane w pamięci EEPROM wartości progów temperaturowych: Tr0<Tr1<Tr2. Chłodzenie radiatora jest załączane (wraz z LED D12) po przekroczeniu progu Tr1, natomiast wyłączane, gdy temperatura Tr spadnie poniżej progu Tr0. Obsługa stanu przegrzania jest realizowana przez odpowiednią procedurę, gdy temperatura Tr przekroczy próg Tr2 i kończy się wówczas, gdy temperatura Tr spadnie poniżej Tr1. Ostatni blok głównej pętli programu to blok wyświetlania. Podzielono go na dwie części, uruchomiane alternatywnie zależnie od parametru Lcd_mode. Jeśli Lcd_mode=0, to następuje prezentacja parametrów w trybie podstawowym (BASIC). Są w nim prezentowane wyłącznie sformatowane wartości parametrów: napięcia wyjściowego Uo, prądu wyjściowego Io, limitu prądowego Im oraz temperatury Tr. Parametry: Uo, Io oraz Im, są prezentowane z dokładnością do dwóch miejsc po przecinku, natomiast parametr Tr jest pokazywany jako liczba całkowita z uwagi na niewielką dynamikę jego zmian, których wartości ułamkowe mają marginalne znaczenie dla prawidłowej pracy przyrządu. W tym miejscu należy podkreślić, że w trybie wyświetlania BASIC parametry: Uo, Io oraz Tr podlegają wstępnej cyfrowej filtracji dolnoprzepustowej prostymi filtrami IIR (Infinite Impulse Response) po to, by poprawić percepcję ich prezentacji na wyświetlaczu LCD – w obecności szybkich fluktuacji ich wartości. Dodatkowo, temperatura Tr jest mierzona czujnikiem półprzewodnikowym narażonym na silne zakłócenia EMC, pochodzące od sąsiednich źródeł napięć i prądów zmiennych, więc jej filtracja jest realizowana w obu trybach wyświetlania. Jeśli parametr Lcd_mode jest równy 1, to następuje prezentacja parametrów w dodatkowym trybie serwisowym (SERVICE), który może okazać się przydatny przy regulacji, strojeniu parametrów oraz diagnostyce pracy zasilacza. W tym trybie, w górnej linijce wyświetlacza LCD prezentowane są wszystkie dostępne parametry napięciowe zasilacza: główne napięcie zasilania Uz, napięcie sterujące napięciem wyjściowym Us oraz zmierzone napięcie wyjściowe Uo. Parametry te, zmienne w czasie, nie są filtrowane dolnoprzepustowo po to, by można było lepiej zaobserwować „surową” pracę zasilacza w różnych warunkach testowych. W dolnej linijce prezentowane są parametry prądowe: limit prądowy Im i prąd wyjściowy Io, a także szacowane straty termiczne w tranzystorze wykonawczym Darlingtona: Q2–Q3 oraz temperatura radiatora Tr. Prezentacja podanych parametrów w trybie serwisowym ma charakter maksymalnie uproszczony: z uwagi na oszczędność miejsca na ekranie LCD kolejno wymienione parametry nie są opisane, a jedynie rozdzielone znakiem „>”. Prezentacja na ekranie LCD w trybie serwisowym może okazać się pomocna nie tylko przy diagnostyce urządzenia, ale także przy doborze jego optymalnych parametrów, np. progów temperaturowych Tr0..Tr2 czy progów napięciowych: Us_hi_on oraz Us_hi_off.

rys16Na listingu 4 pokazano moduł podprogramów podstawowych, których przeznaczeniem jest przede wszystkim realizacja procedur wywoływanych w głównej pętli programu (list. 3). Pierwszą z procedur w tym module jest Pars_recalc, która musi zostać wywołana każdorazowo po zaczytaniu lub modyfikacji napięcia referencyjnego Vref. Służy ona do wyznaczenia wartości stałych obliczeniowych: Us_chng oraz A, B, C, D, EF, używanych w innych procedurach obliczeniowych i zależnych właśnie od Vref. Kolejna procedura Overload jest przeznaczona do obsługi przerwania sprzętowego INT1, które jest wywoływane niskim poziomem na pinie PD.3 tak długo, aż mierzony prąd wyjściowy Io spadnie poniżej nastawionej wartości limitu prądowego Im. Procedura ta w pierwszej kolejności ustawia flagę przeciążenia prądowego Fovl, aktywuje sygnalizację świetlną (LED D13) i dźwiękową buzzerem SP1. Następnie redukuje napięcie Us, sterujące napięciem wyjściowym Uo o ustalony niewielki krok Us_chng (około 31 mV – w zależności od wartości Vref) lub do wartości 0V, jeśli Us<Us_chng i odczekuje konfigurowany w menu zasilacza czas równy Ovldwait mikrosekund po to, by blok kontrolno-sterujący urządzenia, obarczony pewną inercyjnością czasową, był w stanie skutecznie zrealizować i zweryfikować wykonanie tej operacji. Następną procedurą jest Overheating, która wywoływana jest z głównej pętli programu po przekroczeniu przez radiator progu temperatury Tr2. Po jej rozpoczęciu napięcie wyjściowe zasilacza jest sprowadzane (przez wartość Us) do 0 V, wymuszane jest też załączenie wentylatora i sygnalizacji dźwiękowej oraz gaszona jest sygnalizacja optyczna normalnej pracy (LED D11), a zapalane są sygnalizacje: zał?czenia ch?odzenia i?stanu przegrzania (LED: D12 i?D14). Nast?pnie rozpoczynana jest p?tla niesko?czona, w?kt?rej z?krokiem jednosekundowym wy?wietlane s??komunikaty o?stanie urz?dzenia oraz o?aktualnej temperaturze radiatora (ączenia chłodzenia i stanu przegrzania (LED: D12 i D14). Następnie rozpoczynana jest pętla nieskończona, w której z krokiem jednosekundowym wyświetlane są komunikaty o stanie urządzenia oraz o aktualnej temperaturze radiatora (fotografia 15). Wyjście z tej pętli może nastąpić tylko w wypadku schłodzenia radiatora do temperatury Tr<Tr1 – wówczas wyłączona zostanie sygnalizacja świetlna (LED D14) i dźwiękowa (SP1) przegrzania, załączana LED D11 i następuje powrót do normalnej pracy zasilacza.

Procedura Odczyt_us ma za zadanie wyznaczenie wartość napięcia sterującego Us na podstawie nastaw potencjometrów POT1 (zgrubny) i POT2 (precyzyjny). Napięcie z potencjometrów jest mierzone za pomocą przetwornika A/C (kanały: 4 i 5), sumowane i odpowiednio skalowane. Funkcją procedury Ustaw_us jest zadanie na wyjściu bloku sterującego z przetwornikiem DAC/PWM #1A, wzmacniaczem operacyjnym U4A oraz filtrami: R23/C23 i R24/C24, takiego poziomu napięciowego, by na wyjściu zasilacza ustaliło się napięcie o wartości Us. Jest to realizowane dwuetapowo.

rys17Po pierwsze, napięcie Us jest porównywane z progami napięciowymi Us_hi_on oraz Us_hi_off i odnoszone do aktualnego stanu pracy bloku wykonawczego zasilacza (zakres napięć wysoki lub niski). Jeśli zachodzi taka potrzeba, to jest przełączane uzwojenie wtórne transformatora sieciowego oraz dioda Zenera D7, przy czym po załączeniu obu sekcji transformatora jest wprowadzone opóźnienie 150 ms, pozwalające na ustalenie się stabilnego wyższego napięcia Uz za prostownikiem D4 i na kondensatorach filtrujących C8…C10. Następnie, przed podaniem na wejście przetwornika DAC/PWM #1A, liczba sterująca jego wyjściem jest skalowana względem wzmocnienia Ku bloku pomiarowo-sterującego (ze wzmacniaczami operacyjnymi U4D i U5A), zakresu przetwarzania przetwornika DAC/PWM i napięcia odniesienia Vref oraz zaokrąglana do najbliższej wartości całkowitej.

Kolejna procedura, Pomiar_uo, odpowiada za pomiar napięcia wyjściowego Uo, który jest realizowany przez kanał #0 przetwornika A/C. Zmierzona wartość, w zakresie od 0 do 1023, jest skalowana do tego zakresu, napięcia referencyjnego Vref oraz wzmocnienia bloku pomiarowo-sterującego (około 1/6,3125 V/V). Procedura Filtruj_uo_lcd realizuje filtrowanie cyfrowe napięcia Uo za pomocą filtru IIR opisanego wzorem Uo_lcd(t)=0,8*Uo_lcd(t-1)+0,2*Uo(t). Jego zadaniem jest poprawienie stabilności i czytelności odczytu wartości Uo na ekranie LCD. Odbywa się to kosztem pewnej inercji odczytywanej wartości Uo względem szybkich zmian nastaw potencjometrami POT1 i POT2, co jednak nie wpływa na komfort obsługi.

Procedura Odczyt_im wyznacza wartość górnego limitu prądowego Im na podstawie nastaw potencjometrów POT3 (zgrubny) i POT4 (precyzyjny). Nastawy te są odczytywane za pomocą przetwornika A/C (kanały: 6 i 7) a następnie skalowane. Wartości nastaw, odczytane z obu potencjometrów, są finalnie sumowane, a jeśli rezultat sumowania jest mniejszy od 0,1 A, to wartość wynikowa Im jest podnoszona do tej właśnie minimalnej wartości limitu. Takie podejście poprawia stabilność pracy urządzenia przy skończonej wartości kroku limitu prądowego, równego około 5,4 mA (w zależności od wartości napięcia Vref). W wypadku pracy w podstawowym trybie wyświetlania na wyświetlaczu LCD (BASIC) zadana wartość nastawy Im jest też ograniczona do rastra równego 50 mA, co jest wartością rozsądną dla dozwolonego prądu Im w zakresie od 0,1 do 5,0 A. Na koniec jest liczona wartość parametru Im_lower, który stanowi górną granicę dopuszczalnego prądu wyjściowego Io przy podnoszeniu napięcia sterującego Us podczas wychodzenia ze stanu przeciążenia prądowego. Kolejną procedurą jest Ustaw_im, której zadaniem jest ustawienie elektrycznej wartości progu prądowego Im dla komparatora U5B na wyjściu bloku sterującego z przetwornikiem DAC/PWM #1B, wzmacniaczem operacyjnym U4B oraz filtrami: R25/C25 i R26/C26. Przed podaniem na wejście przetwornika DAC/PWM liczba sterująca jest skalowana względem: szeregowej rezystancji probierczej R9, wzmocnienia bloku pomiarowego (ze wzmacniaczem operacyjnym U4C), napięcia odniesienia Vref oraz zakresu przetwarzania przetwornika DAC/PWM, a na koniec jest zaokrąglana do najbliższej wartości całkowitej. Procedura Pomiar_io odpowiedzialna jest za pomiar prądu wyjściowego Io, realizowany przez kanał #1 przetwornika A/C. Podobnie jak w wypadku procedury Ustaw_im, zmierzona wartość, w zakresie od 0 do 1023, jest skalowana do tego zakresu i napięcia referencyjnego Vref, a także do szeregowej rezystancji próbkującej R9 oraz do wzmocnienia bloku pomiarowego ze wzmacniaczem operacyjnym U4C (jakkolwiek w tych dwóch ostatnich przypadkach skalowanie odbywa się przez odwrotności z uwagi na odwrotny kierunek przekazywania sygnału).

Procedura Filtruj_io_lcd (podobnie, jak procedura Filtruj_uo_lcd) realizuje filtr cyfrowy zmierzonego prądu Io za pomocą filtru IIR opisanego wzorem Io_lcd(t)=0,8*Io_lcd(t-1)+0,2*Io(t). Także w tym wypadku chodziło o uzyskanie jak najlepszej stabilności i czytelności odczytu wartości Io na ekranie LCD.

Przedostatnia z procedur w tym module programowym to Pomiar_tr. Temperatura radiatora Tr jest odczytywana przez ADC (kanał #2) z wyjścia czujnika półprzewodnikowego U8. W dalszej jej części są realizowane obliczenia mające na celu uwzględnienie parametrów liniowego przetwarzania U=f(T) zastosowanego czujnika MCP9700AE: 0°C odpowiada napięciu 500 mV, a zmiana temperatury o 1°C powoduje zmianę napięcia na wyjściu czujnika o 10 mV. Na końcu tej procedury zastosowano filtr dolnoprzepustowy IIR o formule Tr(t)=0,98*Tr(t-1)+0,02*Tr(t). Ogranicza on pasmo przenoszonego sygnału, co wprowadza dość wyraźną inercję czasową, ale za to znakomicie stabilizuje odczyt wartości Tr, zakłócany sąsiednimi silnymi źródłami napięcia i prądu. Ostatnia z procedur podstawowych to Pomiar_uz. W ramach jej działania przetwornik ADC (kanał #3) mierzy główne napięcie Uz, zasilające blok wykonawczy stabilizatora a następnie skaluje je względem zakresu przetwarzania przetwornika, jego napięcia referencyjnego Vref oraz współczynnika podziału zastosowanego dzielnika napięciowego z elementami: R5, R6 i C11.

rys18Ostatni moduł programu sterującego zasilaczem obejmuje podprogramy obsługi menu (listing 5). Pierwsza z ujętych w tym module procedur nazywa się po prostu Menu i w procesie obsługi menu konfiguracyjnego zasilacza ma charakter nadrzędny względem wszystkich dalszych procedur pomocniczych. Po prezentacji informacji o wejściu do menu aktywowana jest flaga Poschanged, wymuszająca wyświetlenie w kolejnym kroku wybranej pozycji menu (zmienna Selitem) wraz z aktualną wartością powiązanego z nią parametru. Następujący po niej ciąg instrukcji warunkowych Select…Case odpowiada właśnie za to zadanie. Dalej następuje obsługa przycisków sterujących SW1…SW4 (OPT, „^”, „v” oraz SET). Naciśnięcie przycisku OPT (SW1) w tym podprogramie spowoduje opuszczenie menu, poprzedzone stosownym komunikatem. Naciskanie przycisków SW2 (strzałka w górę) lub SW3 (strzałka w dół) sprawi, że zostanie wybrana poprzednia lub następna pozycja menu (zmienna Selitem) oraz aktywowana zostanie flaga Poschanged, wymuszająca odświeżenie zawartości ekranu LCD w kolejnej iteracji pętli obsługi menu. Natomiast po naciśnięciu przycisku SET (SW4) nastąpi aktywowanie kursora i przejście do realizacji podprogramu zmiany parametru konfiguracyjnego, wskazanego zmienną Selitem. Dalsza część omawianego tutaj modułu programowego obejmuje właśnie zestaw dziesięciu bliźniaczych podprogramów modyfikacji parametrów konfiguracyjnego: Show_params, Lcd_mode, Buzzer_on, Vref, Tr0, Tr1, Tr2, Us_hi_on, Us_hi_off oraz Ovldwait. Każdy z tych podprogramów rozpoczyna się od wyświetlenia nazwy i bieżącej wartości właściwego mu parametru wraz z hasłem „[chng]” informującym o tym, że aktualnie możliwa jest modyfikacja wartości danego parametru. Dalej następuje obsługa przycisków sterujących: naciśnięcie OPT (SW1) spowoduje opuszczenie podprogramu ze wskazaniem na konieczność odświeżenia treści ekranu LCD, naciskanie strzałek w górę lub w dół (SW2, SW3) wywoła zmianę (+/–) danego parametru natomiast wciśnięcie przycisku SET (SW4) wymusi zapisanie aktualnej wartości modyfikowanego parametru w pamięci EEPROM, po którym nastąpi wyświetlenie na LCD komunikatu statusowego „[saved]”.

Przed zaprogramowaniem mikrokontrolera U6 należy ustawić w nim właściwą konfigurację fusebitów, których zalecane wartości przedstawiono na rysunku 16.

Konfiguracja i regulacja zasilacza

W przypadku prawidłowego montażu zasilacza jego regulacja i konfiguracja nie powinny nastręczać większych trudności. Na fotografii wnętrza i schemacie montażowym zasilacza pokazano komplet potencjometrów montażowych, których kolejność (patrząc od lewej strony) jest następująca: PR7, PR6, PR4, PR3, PR2, PR1 i PR5. W pierwszej kolejności dokonujemy regulacji kontrastu wyświetlacza LCD (U7) za pomocą potencjometru PR5. Następnie włączamy zasilacz i obserwujemy to, co jest wyświetlane na LCD.

Na fotografii 17 pokazano kolejne ekrany prezentujące: powitanie, ekrany robocze w trybie podstawowym BASIC oraz w trybie serwisowym SERVICE. Kolejne dziesięć ekranów ujmuje automatyczną prezentację wszystkich konfigurowalnych parametrów, która nastąpi przed przejściem do normalnej pracy zasilacza, jeśli wartość parametru Show_params=1. Natomiast tryb prezentacji parametrów roboczych na LCD zależy od ustawienia wartości parametru Lcd_mode (0 – BASIC, 1 – SERVICE).

Na fotografiach 1819 zaprezentowano kompletny cykl konfiguracji wszystkich dziesięciu parametrów, który będzie dostępny po wejściu do menu urządzenia poprzez naciśnięcie przycisku OPT. W trybie przeglądu parametrów w menu w prawym górnym rogu ekranu LCD jest wyświetlany komunikat „[menu]”, który po naciśnięciu przycisku SET zmienia się na komunikat „[chng]” informujący o tym, że możliwa jest modyfikacja danego parametru. Zmiany pozycji menu, podobnie, jak zmiany wartości poszczególnych parametrów, wykonujemy przyciskami „up/+” (oznaczony strzałką w górę) oraz „down/–” (oznaczony strzałką w dół). Zatwierdzenie i zapisanie w pamięci EEPROM wartości danego parametru następuje po naciśnięciu przycisku SET i jest sygnalizowane poprzez uaktywnienie czasowe (na około 1 s) w prawym donym rogu ekranu LCD napisu „[saved]”. Z kolei za pomocą przycisku OPT możemy opuścić zarówno podmenu modyfikacji danego parametru, jak i (ostatecznie) całego menu konfiguracyjnego. Parametr Show_params można ustawić na wartość 0 po skrystalizowaniu się ostatecznej konfiguracji zasilacza (unikniemy dzięki temu opóźnienia w jego uruchamianiu, spowodowanego wyświetlaniem ustawień konfiguracyjnych). Parametr Lcd_mode normalnie powinien być ustawiony na wartość 0 (tryb wyświetlania podstawowy – BASIC), jednak w trakcie strojenia konfiguracji i diagnostyki zasilacza może być użyteczny tryb serwisowy SERVICE (Lcd_mode=1). Parametr Buzzer_on ustawiamy według własnych preferencji: wartość 0 sprawi, że stany: przekroczenia wyznaczonego limitu prądu Im (stan OVERLOAD) oraz przekroczenia dopuszczalnej temperatury Tr2 (OVERHEATING) nie będą sygnalizowane dodatkowo sygnałem dźwiękowym. Natomiast kluczowe na tym etapie konfiguracji zasilacza jest dokładne ustawienie wartości parametru Vref (napięcie referencyjne dla pomiarów napięć i prądu), którego rzeczywistą wartość należy uprzednio zmierzyć dobrej klasy woltomierzem (na jak najniższym zakresie pomiarowym) na wyjściu (wyprowadzenie 3) stabilizatora U2 (LM7805), który jest łatwo dostępny do pomiaru na górnej krawędzi płytki. Należy tu podkreślić, że o ile stabilność temperaturową napięcia wyjściowego stabilizatorów scalonych z rodziny LM78xx można uznać za całkowicie wystarczającą do uzyskania napięcia odniesienia dla celów pomiarowych w zasilaczu warsztatowym, o tyle trzeba mieć świadomość znacznej tolerancji tego napięcia w różnych egzemplarzach układu (katalogowo jest to aż 4% dla wersji CT i 2% dla wersji ACT kostki).

rys19Po ustawieniu i zapamiętaniu w pamięci EEPROM właściwej wartości napięcia Vref można już przystąpić do regulacji pozostałych potencjometrów montażowych PRn, jednak warto od razu dokończyć wstępną konfigurację pozostałych parametrów. Kolejnymi z nich są progi temperaturowe: Tr0, Tr1, Tr2, których przekroczenie wyzwala zdarzenia: zakończenia i załączenia chłodzenia wentylatorem (Tr0Tr1) oraz aktywację i dezaktywację stanu przegrzania (Tr1Tr2). Praktyczna wartość progu termicznego dla załączenia chłodzenia Tr1 powinna leżeć w zakresie od 55 do 65°C (zalecane 60°C), natomiast pozostałe dwa progi powinny być od niego odległe o 5 do 15°C, zapewniając odpowiedni odstęp pomiędzy momentami aktywacji i dezaktywacji poszczególnych stanów pracy (zalecane Tr0=50°C, Tr2=70°C). Należy przy tym pamiętać, że zbyt duża temperatura Tr2 (OVERHEATING) może doprowadzić do uszkodzenia zasilacza, więc nie należy z nią przesadzać (w oprogramowaniu konfiguracyjnym ustalono limit 80°C).

Kolejne dwa parametry to progi napięciowe Us_hi_on oraz Us_hi_off, których wartości decydują o momentach przełączenia sekcji transformatora sieciowego oraz bloku sterującego stabilizatora D7. Różnica wartości między tymi progami zapewnia odpowiednią histerezę procesu dla dwukierunkowego przełączania, dzięki której dynamiczne zmiany napięcia sterującego Us w okolicach wartości progowych nie powodują częstych przełączeń zakresów zasilania Uz i sterowania napięciem wyjściowym Uo.

W tym miejscu należy podkreślić, że podane wartości progów napięciowych: Us_hi_on =15,2 V oraz Us_hi_off=14,8 V (15,0 V ±0,2 V), są odpowiednie dla zastosowanego transformatora sieciowego typu TST200/006 i diody Zenera D7 (15 V). Natomiast stosując inny transformator sieciowy, może być konieczna zmiana wartości tych progów oraz dobór diody D7 na inne napięcie Zenera (rekomendowana wartość powinna być jak najbardziej zbliżona do połowy maksymalnego osiągalnego napięcia wyjściowego Uo). W wypadku zastosowania innego transformatora sieciowego przydatny może okazać się tryb serwisowy wyświetlania parametrów (Lcd_mode=1), w którym jest możliwa także obserwacja wartości głównego napięcia stałego Uz, zasilającego blok wykonawczy stabilizatora. Napięcie to, pod pełnym możliwym obciążeniem prądowym zasilacza, powinno być wyższe o co najmniej 2 V od uzyskiwanego napięcia wyjściowego Uo i. Kierując się tą wskazówką, należy dobrać ewentualne nowe progi napięć Us_hi_onUs_hi_off, koniecznie z zachowaniem histerezy napięciowej. Jest to warunek konieczny dla prawidłowej pracy szeregowego elementu regulacyjnego z tranzystorem Darlingtona Q2…Q3 oraz dla minimalizacji przenoszenia się tętnień o częstotliwości 100 Hz z wyprostowanego napięcia zasilającego Uz na napięcie wyjściowe Uo przy dużym obciążeniu zasilacza.

Ostatnim konfigurowalnym programowo parametrem jest opóźnienie czasowe Ovldwait wyrażone w mikrosekundach. Definiuje ono czas trwania jednostkowej reakcji na stan przeciążenia prądowego (przekroczenie limitu Im) wywoływanego przez przerwanie INT1 i realizującego elementarną redukcję napięcia sterującego Us o wartość kroku Us_chng. Możliwe wartości mieszczą się w zakresie od 1 do 10000 ms. Jeśli zależy nam na jak najszybszej reakcji na stan zwarcia na wyjściu zasilacza, to należy ustawić wartość minimalną 1 ms. Zapewni ona błyskawiczną redukcję napięcia wyjściowego Uo, a zatem i prądu wyjściowego Io, jednak kosztem dalszego powolnego powrotu do pożądanego napięcia wyjściowego Uo. Jeśli chcemy uzyskać efekt pracy zasilacza jako źródła prądowego o wydajności zbliżonej do wartości Im, nadążającego z napięciem wyjściowym Uo za zmianami obciążenia, to należy ustawić większe opóźnienie Ovldwait. Optymalnej wartości tego parametru należy wówczas szukać w zakresie od 3000 do 5000 ms. Można też przyjąć strategię modyfikacji wartości opóźnienia Ovldwait w zależności od tego, z jakim rodzajem obciążenia i w jakich warunkach laboratoryjnych zamierzamy pracować. Po zakończeniu konfiguracji ostatniego z omawianych parametrów opuszczamy menu poprzez naciśnięcie przycisku OPT.

Mając skonfigurowany wstępnie komplet parametrów programowalnych, przystępujemy do regulacji pozostałych potencjometrów montażowych: PR1...PR4 oraz PR6 i PR7. Jako punktu odniesienia (masy) dla wszelkich pomiarów napięciowych wygodnie będzie użyć wyprowadzenia „stopki” (radiatora) łatwo dostępnego na górnej krawędzi PCB stabilizatora U2 (LM7805), do której ujemny zacisk woltomierza można dogodnie dopiąć na czas pomiarów za pomocą zacisku typu krokodylek. W pierwszej kolejności należy zweryfikować i ewentualnie skorygować wartość napięcia +20 V, zasilającego wzmacniacz operacyjny U5 i dostępnego na wyjściu (wyprowadzenie 2) stabilizatora scalonego U3 (LM317L). Z uwagi na nieco utrudniony dostęp do potencjalnych punktów pomiarowych (wyjście U3 lub zasilanie U5) pomiar regulacyjny wygodnie jest przeprowadzić metodą pośrednią – poprzez zmierzenie napięcia na suwaku (środkowym wyprowadzeniu) potencjometru PR1, którym regulujemy aż do uzyskania napięcia około +18,75 V we wskazanym punkcie, połączonym jednocześnie z pinem 1 (ADJUST) układu U3 (jego potencjał jest niższy od wyjściowego napięcia stabilizowanego kości LM317L o wartość napięcia odniesienia 1,25V). Kolejna regulacja powinna dotyczyć pętli ujemnego sprzężenia zwrotnego dla kontroli napięcia wyjściowego Uo, opartej o wzmacniacz różnicowy, w którego układzie pracują m.in. wzmacniacz operacyjny U4D oraz potencjometry PR2 i PR3. Poprawna regulacja PR2 i PR3 wymagałaby jednoczesnej manipulacji nastawieniami obu tych elementów – i to z uwzględnieniem niezerowej wartości prądu wyjściowego Io, co w praktyce mogłoby okazać się niezwykle trudne do prawidłowej realizacji także przez bardziej doświadczonych czytelników. Dlatego autor tego projektu proponuje nieco inne, nie mniej skuteczne a znacznie dogodniejsze rozwiązanie. Mianowicie, w założeniach projektu przyjęto, że przy idealnie dokładnych wartościach elementów w gałęziach dzielników: R12–PR2–R13 i R15–PR3–R14, oraz przy ustawieniach suwaków PR2 i PR3 dokładnie w połowach zakresów ich regulacji, ich wzmocnienia napięciowe powinny wynosić odpowiednio: Ku’=(1,5 kV+100 V)/(1,5 kV+200 V+10 kV)=0,136752 V/V i Ku”=(10 kV+100 V)/(1,5 kV+200 V+10 kV)=
0,863248 V/V (podane wartości podziałów dzielników rezystancyjnych zostały oczywiście uwzględnione także w oprogramowaniu sterującym zasilaczem). Zadaniem osoby regulującej jest po prostu ustawienie suwaków potencjometrów PR2 i PR3 tak, by jak najbardziej zbliżyć się do podanych wartości. Przykładowo, proces ten mógłby wyglądać następująco:

rys20Na wyjściu nieobciążonego zasilacza ustawiamy napięcie równe około 19,5 V, a następnie multimetrem mierzymy i zapisujemy dokładną jego wartość Uo.

Dla Uo=19,50 V wyliczamy napięcie U’=Ku’*Uo=0,136752*19,50 V=2,667 V (dla potencjału suwaka PR2) i regulujemy PR2 tak długo, aż osiągniemy zgodność obu napięć, tzn. przykładowo U’=2,667 V przy Uo=19,50 V.

Mierzymy multimetrem i zapisujemy dokładną wartość napięcia na wyjściu wzmacniacza operacyjnego U4D (pin 14), które w przybliżeniu powinno być równe U(U4D/p.14)=U’/Ku”=2,667/0,863248 V=3,089 V. Mierzenie napięcia U(U4D/p.14) w zmontowanym zasilaczu najwygodniej jest wykonać na pinie 40 mikrokontrolera U6, gdzie jest ono doprowadzane w celu pomiaru przez wewnętrzny przetwornik A/C.

Mając do dyspozycji zmierzoną rzeczywistą wartość napięcia U(U4D/p.14), wyznaczamy wartość napięcia U”=U(U4D/p.14)*Ku” (dla potencjału suwaka PR3), które przykładowo dla U(U4D/p.14)=3,089 V powinno wynosić U”=3,089 V*0,863248 V=2,667 V (takie samo, jak przyjęte wcześniej U’ – z uwagi na pracę ujemnej pętli sprzężenia zwrotnego).

Regulujemy PR3 tak długo, aż osiągniemy odpowiednią proporcjonalność obu napięć, tzn. np.: U”=2,667 V przy U(U4D/p.14)=3,089 V.

Weryfikujemy rezultaty przeprowadzonych regulacji zgodnie z przedstawionym powyżej cyklem i ewentualnie dokonujemy naprzemiennych regulacji potencjometrami PR2 i PR3, aż do spełnienia obu podanych warunków proporcjonalności napięć.

Uwaga: nieprecyzyjne wykonanie opisanych czynności regulacyjnych może skutkować nie tylko niedokładną pracą zasilacza, ale także niestabilnością jego działania (oscylacje na wyjściu), dlatego do tego zadania należy podejść niezwykle starannie!

Regulacja wzmacniacza pomiarowego prądu wyjściowego Io (ze wzmacniaczem operacyjnym U4C i dzielnikiem napięciowym R19/R20/PR4/R21) sprowadza się do ustawienia potencjometru PR4 tak, aby wskazywana na ekranie LCD wartość prądu Io była zgodna z odczytem na odpowiednio dokładnym amperomierzu prądu stałego. Można do tego celu wykorzystać sztuczne obciążenie stałoprądowe o prądzie 5 A lub większym (np. AVT-
-5586, https://goo.gl/uhQVNU) lub rezystor dużej mocy. Przy regulacji egzemplarza prototypowego autor użył zestawu połączonych równolegle pięciu 10-watowych oporników o rezystancji 10 V. W egzemplarzu prototypowym kalibrację pomiaru Io wykonano przy prądzie obciążenia około 4,9 A i nastawionym maksymalnym limicie prądowym Im=5,0 A.

rys21Ostatnie dwie regulacje dotyczą potencjometrów PR6 i PR7, odpowiedzialnych za precyzyjne zerowanie napięć referencyjnych, przeznaczonych do ustalenia napięcia Us, sterującego napięciem wyjściowym Uo, oraz progu (limitu) prądowego Im. Za zerowanie napięcia Us jest odpowiedzialny potencjometr PR6. Jego regulację wykonujemy przy napięciu wyjściowym Uo zasilacza ustawionym dokładnie na 0,00 V. Pomiar tego napięcia wykonujemy na zakresie woltomierza 0…199,9 mV lub niższym. Potencjometr PR6 należy obracać powoli w kierunku, dla którego Uo będzie malało – aż do momentu, w którym przestanie ono spadać (w egzemplarzu prototypowym udało się uzyskać Uo=0,4 mV). Precyzyjne zerowanie Uo potencjometrem PR6 jest o tyle istotne, że pozwala zapobiec konsekwencjom przepływu znacznego prądu zwarciowego Io, jeśli nastawione teoretycznie Uo wynosi 0,00 V i – wobec tego – nie spodziewamy się przepływu prądu w obwodzie wyjściowym. Natomiast precyzyjna regulacja potencjometru PR7 (zerowanie limitu prądowego Im) nie jest już tak krytyczna z uwagi na wprowadzenie do projektu dolnego limitu prądu Im=100 mA. Dlatego w praktyce wystarczy, że potencjometr PR7 ustawimy w pozycji maksymalnie zbliżonej do tej, w której wcześniej ustawiliśmy potencjometr PR6 (obie omówione gałęzie kompensacyjne działają w bardzo zbliżonych konfiguracjach układowych i w oparciu o te same lub niemal identyczne podzespoły).

rys22Użytkowanie i obsługa zasilacza

Po załączeniu zasilania i przejściu do normalnego trybu pracy można przystąpić do ustawienia napięcia wyjściowego Uo i limitu prądu Im. Następnie można przyłączyć obciążenie. Prawidłowość wykonania montażu i wszelkich regulacji można sprawdzić z zastosowaniem obciążenia stałoprądowego i impulsowego. Fotografia 20 zawiera oscylogram z testów impulsowych, w których ustawiono Uo=10 V, natomiast obciążeniem były dwa połączone szeregowo oporniki o mocy 10 W i rezystancji 10 V. Jeden z tych rezystorów był zwierany z częstotliwością 100 Hz. Na dole oscylogramu widać przebieg kluczujący, natomiast przebieg górny to składowa zmienna napięcia wyjściowego Uo. Jak widać, pulsacje spowodowane zmiennym obciążeniem nie przekroczyły poziomu 20 mVp-p. Na fotografii 21 pokazano fragment przedniego panelu zasilacza w trakcie pracy z ograniczeniem prądowym z parametrem opóźnienia Ovldwait=5000 ms. Stan ograniczenia prądowego sygnalizuje zaświecony LED OVERLOAD, natomiast rzeczywista wartość prądu Io wynosi 390 mA i (z założenia) jest nieco mniejsza od ustawionego limitu prądowego Im=400 mA.

rys23Na fotografii 22 pokazano oscylogram napięcia wyjściowego Uo (przebieg górny) przy przełączanym tranzystorem N-MOSFET obciążeniu 10/20 V przebiegiem pokazanym na dole oscylogramu. W tym wypadku częstotliwość przełączania wynosiła tylko 1 Hz, a poziom ograniczenia prądowego Im był ustawiony na połowę prądu występującego przy obciążeniu 10 V lub 20 V. Ograniczenie prądowe skonfigurowanego do powolnej pracy wolno podwyższało napięcie wyjściowe Uo po rozwarciu bocznika jednego z rezystorów 10 V i gwałtownie obniżało je, gdy rezystancja obciążenia spadała z 20 V do 10 V (nieustalony stan pracy tego mechanizmu).

Na fotografii 23 pokazano komunikat wyświetlany po przekroczeniu przez radiator progu temperatury Tr2 i wejściu urządzenia w stan tzw. przegrzania. Cyklicznie jest powtarzana treść trzech kolejnych komunikatów, przy czym ostatni prezentuje wartość temperatury bieżącej radiatora Tr.

Podsumowanie projektu

W artykule kompleksowo opisano projekt zasilacza laboratoryjno-warsztatowego o parametrach konstrukcyjnych i użytkowych, które pozwalają mu skutecznie konkurować (także cenowo) z gotowymi urządzeniami, dostępnymi „ze sklepowej półki”. Znaczącą wartością dodaną są spore możliwości konfiguracji urządzenia wg osobistych preferencji, a także modyfikacji konstrukcji pod kątem własnych potrzeb. Projekt jest przeznaczony dla osób, które chcą mieć zasilacz warsztatowy o niezłych parametrach, kompaktowej, zwartej konstrukcji i niewygórowanym koszcie realizacji oraz dla osób, które pragną poszerzyć swoją wiedzę konstruktorską w zakresie urządzeń zasilających lub zmodernizować posiadane już przyrządy. Więcej informacji o dalszych losach tego projektu można będzie znaleźć na stronie WWW autora pod adresem https://goo.gl/BKmz4T. Na koniec chciałbym serdecznie podziękować koledze Jerzemu Mroszczakowi SQ7JHM (https://goo.gl/NvfYPC) za podzielenie się dużym praktycznym doświadczeniem w zakresie konstruowania zasilaczy liniowych o znacznej mocy znamionowej.

Adam Sobczyk SQ5RWQ
sq5rwq@gmail.com
http://sq5rwq.pl

Pozostałe artykuły

Zasilacz laboratoryjny 0...30 V/5 A ze sterowaniem mikroprocesorowym (1)

Numer: Grudzień/2017

Na ścieżce rozwoju każdego elektronika-konstruktora pojawia się wreszcie taka chwila, gdy w prowadzonych pracach rozwojowych przestają wystarczać takie źródła energii elektrycznej, jak jednorazowe ogniwa elektrochemiczne, akumulatory i akumulatorki czy tanie zasilacze wtyczkowe o przeciętnych parametrach. To chwila, w której jasna staje się potrzeba posiadania własnego zasilacza laboratoryjnego. O ile budowa regulowanego zasilacza stabilizowanego ...

Sterownik wyświetlacza LCD z interfejsem szeregowym

Numer: Grudzień/2017

Typowo, moduł wyświetlacza LCD jest sterowany za pomocą interfejsu równoległego. W tym celu używa się 4 lub 8 bitów danych i 2 linie sterujące. Daje to razem 10 linii I/O, które nie zawsze są dostępne w mikrokontrolerze lub na płytce mikrokomputera. Prezentowany moduł umożliwia dołączenie typowego wyświetlacza tekstowego LCD o rozdzielczości 2 linie × 16 znaków do urządzeń dysponujących tylko interfejsem szeregowym. Rekomendacje: ...

Dwukierunkowy regulator obrotów silnika prądu stałego

Numer: Grudzień/2017

Zmiana prędkości obrotowej silnika prądu stałego jest podstawowym zadaniem w wielu układach napędowych. W artykule przedstawiono nieskomplikowany i co najważniejsze ? ?niemikroprocesorowy? dwukierunkowy regulator prędkości obrotowej silnika prądu stałego wykorzystujący metodę PWM. Rekomendacje: regulator przyda się majsterkowiczom do regulowania prędkości obrotowej narzędzi oraz w budowanych przez siebie urządzeniach.

ATB-WAV Player (1). Karta muzyczna i czytnik kart pamięci dla mikrokontrolerów

Numer: Grudzień/2017

Jak wiadomo, w dzisiejszych czasach odtwarzanie plików dźwiękowych z plików typu WAV umieszczonych na karcie pamięci, za pomocą 8-bitowego mikrokontrolera nie stanowi dużego problemu. Niestety, jest mały kłopot polegający na tym, że trudno tę funkcjonalność zaimplementować do dowolnego projektu na 8-bitowcu z uwagi na spore wymagania czasowe w trakcie odtwarzania dźwięków z karty SD. W związku z tym postanowiłem przygotować projekt ...

Stroik gitarowy

Numer: Styczeń/2018

Przeglądając strony internetowe, natknąłem się na bardzo ciekawy, nietuzinkowy projekt stroika gitarowego, który w odróżnieniu od pozostałych urządzeń tego typu wykorzystuje inne zjawiska fizyczne niż fala akustyczna w celu umożliwienia nastrojenia instrumentu. Typowe rozwiązania dostępne w handlu poddają analizie dźwięk lub drgania emitowane przez strunę gitary i wyświetlają procent odstrojenia instrumentu od wartości prawidłowej. ...

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Luty 2019

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym