cena: 16,00 zł (w tym 8% VAT) PRICE: 8 EUR Nakład 27000 egz.
2013-07-25 10:18:25
001.indd 1
002.indd 2
2013-07-25 10:18:47
Zasilanie Moc końcówek
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl
Profesjonalny zestaw lutująco-rozlutowujący dużej mocy
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl
JAKOŚĆ I PRECYZJA firmy
220~240 VAC/50Hz 210ESD 100W DIA 100W HAP 80 W TWZ 100 W
Zakres temperatury Groty (standard)
210ESD 150~480 oC DIA 300~450 oC 210ESD - 44-415404 DIA - 44-915412 TWZ - 46-060102
z³ 1000 t +va
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl
LF-8000
Profesjonalny zestaw lutująco-rozlutowujący Zasilanie Moc końcówek
Zakres temperatury Groty (standard)
220~240 VAC/50Hz SIA 100KT 100 W DIA 80 W HAP 80 W TWZ 2 x 50 W SIA 250~500 oC DIA 300~450 oC SIA - XY 704 DIA 44-915412 TWZ 46-060102
z³ 1150 t +va
LF-853D
Profesjonalna stacja lutująco- rozlutowywująca Zasilanie Moc końcówek
Zakres temperatury
220~240 VAC/50Hz 210ESD 100W DIA 100W SMD wylutow. 600 W 210ESD 150~480 oC SMD wyl. 100~480 oC DIA 300~450 oC
LF-3500
LF-2000
Profesjonalna stacja lutownicza
Profesjonalna stacja lutownicza
Stacja lutownicza LF-3500 Zasilanie Moc końcówki Zakres temperatur Grot (standard)
220-280V AC 50Hz 150 W 100º- 480º C 44-413590
Stacja lutownicza LF-2000 Zasilanie 220-280V AC 50Hz Moc końcówki 100 W Temperatura Grot (std)
³ 450 z +vat
z³ 1300 t +va
200º- 450º C 44-415404
³ 220 z +vat
LF-1680
8066D2-7C Profesjonalna lampa warsztatowa
Profesjonalna stacja lutownicza Stacja Zasilanie
22W, 5 dioptri
³ 300 z +vat
LF-1680 220-280V AC 50Hz
Typ końcówki
SIA 108 ESD
Moc końcówki
80 W
80 W
200º- 480º C 44-510601
200º- 450º C 46-060102
Zakres temperatur Grot (standard)
TWZ 80
LF-389D
Profesjonalna stacja lutownicza
90 z³ +vat
Zakres temperatur
³ 120 z +vat
150°C ÷ 480°C
Moc grzałki
60W
Zasilanie stacji
230V / 50Hz
Grot (standard)
44-510601
®
02-784 Warszawa, ul. Janowskiego 15 tel./fax (22) 641-15-47, 644-42-50
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl
LF-8800
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl
• Szczegó³owe informacje w Internecie na stronie www.ndn.com.pl
http://www.ndn.com.pl e-mail:
[email protected] 003.indd 3
2013-07-25 10:19:24
OD WYDAWCY
Wakacje a straty mocy…
Prenumerata naprawdę warto
W czasie, gdy oddajemy sierpniowy numer Elektroniki Praktycznej do druku, za oknem świeci słońce, temperatura przekracza 25 stopni Celsiusa, a termin „straty mocy” nabiera ważnego znaczenia. Różnica temperatur pomiędzy komponentem a otoczeniem jest nieduża i te nie mają jak schłodzić się, co może doprowadzić do różnych problemów. Nie tak dawno usłyszałem o jednym z nich. Zatelefonował do mnie kolega, który miał problem z urządzeniami automatyki, które można było zasilać napięciem AC lub DC. Prosił mnie o wyjaśnienie „fenomenu”. Otóż przy zasilaniu napięciem przemiennym urządzenia mocno się grzały, co w skrajnych wypadkach doprowadzało nawet do błędów w ich pracy. Przy zasilaniu napięciem stałym wszystko było w najlepszym porządku. Wywoływało to zdziwienie instalatora, dla którego przecież to było „to samo”. Układy zasilane napięciem przemiennym przeważnie mogą być też zasilane napięciem stałym, o ile nie mają na wejściu jakiegoś transformatora, kondensatora czy innego komponentu, który stanowi przerwę dla prądu stałego. Jeśli jednak jest tam zasilacz impulsowy, np. przetwornica step down, to przeważnie na jej wejściu jest po prostu mostek diodowy i kondensator filtrujący. W takiej sytuacji, przy zasilaniu urządzenia napięciem stałym, na wejście przetwornicy dociera napięcie dostępne na zaciskach zasilanego urządzenia, ale pomniejszone o spadek napięcia na dwóch diodach krzemowych. W tym wypadku, przy zasilaniu napięciem 24 V DC, było to nieco ponad 22,5 V. Jednak po przyłożeniu napięcia przemiennego, sytuacja zmienia się, gdyż na wejście przetwornicy dociera w przybliżeniu napięcie o pierwiastek z 2 razy większe, co daje (1,41×24 V) blisko 34 V. Jak łatwo zauważyć, jeśli układ zasilacza ma niewielką sprawność, to wzrost strat mocy będzie znaczny i urządzenie zacznie się przegrzewać. Ot takie drobne przeoczenie konstruktorów, które warto sobie zapamiętać tworząc własne urządzenia. Ale zostawmy straty mocy i wróćmy do zawartości EP. Ubiegłoroczne wydanie wakacyjne bardzo się Wam podobało. Okazuje się, że pomysł publikowania latem niewielkich projektów przeznaczonych do wykonania przez każdego to strzał w dziesiątkę. Do redakcji dotarło kilkanaście listów, a wszystkie zawierały zbliżoną treść, którą można zamknąć w jednym zdaniu „tak trzymać!”. Dlatego w tym roku numer wakacyjny zawiera aż 67 stron projektów i miniprojektów! Można wśród nich znaleźć przyrządy dla inżyniera (np. zabezpieczenie programatora mikrokontrolerów AVR, dla hobbysty (np. wzmacniacz audio, ładowarki akumulatorów), dla muzyka (efekty gitarowe), jak i dla automatyka (np. programowany włącznik czasowy). Trudno tu podać jakieś wytyczne, co i komu może się przydać. Szczególnej uwagi wymaga moim zdaniem lektura „Wyciszacza odbiornika TV”. Gdy autor po raz pierwszy demonstrował mi to urządzenie, to nie wierzyłem, że w języku Bascom można napisać TAKI program, Owszem, w C, ale w Bascomie? Myliłem się. Nieskomplikowany elektrycznie projekt działa na zasadzie wysłania kodu instrukcji „mute” do odbiornika TV (albo innego kodu lub odbiornika) po odebraniu dwóch klaśnięć. Co ważne, cała analiza sygnału audio jest wykonywana za pomocą mikrokontrolera ATmega168 pracującego pod kontrolą aplikacji utworzonej w języku Bascom AVR. Nie ma w niej ani jednej linijki kodu asemblerowego. Sygnał jest analizowany nie tylko pod względem amplitudy i widma, ale również jest sprawdzane podobieństwo kolejnych dźwięków. Urządzenie „uczy się” oryginalnego kodu i jest w stanie dokonać jego automatycznej korekty w wypadku zaburzeń odbioru. Polecam projekt nie tylko jako ciekawostkę, ale również doskonały przykład „dobrej roboty”, znakomity kawałek kodu, na podstawie którego można nauczyć się pożytecznych umiejętności. Warto również zwrócić uwagę na „Cyfrową ramkę do zdjęć”, ponieważ oprócz samej ramki autor prezentuje procedury obsługi wyświetlacza OLED, których można użyć we własnej aplikacji. Sierpniowa EP zawiera także ostatni (niestety) odcinek kursu programowania w środowisku LabView. To podobno jedyna taka, kompletna i poszukiwana publikacja w języku polskim. W czasie wakacji, wykorzystując czas wolny, warto również sięgnąć do mikrokontrolerów 32-bitowych. Tym, którzy to zrobią, z całą pewnością przydadzą się pomysły na zastosowania zestawu STM32F0DISCOVERY. Warto zaopatrzyć się w niego i w EP, aby nie było „strat mocy” w deszczowe dni, chociaż wszyscy życzymy sobie pięknej pogody.
4
004_wstepniak.indd 4
Miesięcznik „Elektronika Praktyczna” (12 numerów w roku) jest wydawany przez AVT-Korporacja Sp. z o.o. we współpracy z wieloma redakcjami zagranicznymi. Wydawca: AVT-Korporacja Sp. z o.o. 03-197 Warszawa, ul. Leszczynowa 11 tel.: 22 257 84 99, faks: 22 257 84 00 Adres redakcji: 03-197 Warszawa, ul. Leszczynowa 11 tel.: 22 257 84 49, 22 257 84 60 tel.: 22 257 84 65, 22 257 84 48 faks: 22 257 84 67 e-mail:
[email protected] www.ep.com.pl Redaktor Naczelny: Wiesław Marciniak Redaktor Programowy, Przewodniczący Rady Programowej: Piotr Zbysiński Zastępca Redaktora Naczelnego, Redaktor Prowadzący: Jacek Bogusz, tel. 22 257 84 49 Redaktor Działu Projektów: Damian Sosnowski, tel. 22 257 84 58 Redaktor Działu Podzespołów i Sprzętu: Jerzy Pasierbiński Szef Pracowni Konstrukcyjnej: Grzegorz Becker, tel. 22 257 84 58 Menadżer magazynu Katarzyna Wiśniewska, tel. 22 257 84 65, 500 060 817 e-mail:
[email protected] Marketing i Reklama: Bożena Krzykawska, tel. 22 257 84 42 Katarzyna Gugała, tel. 22 257 84 64 Grzegorz Krzykawski, tel. 22 257 84 60 Andrzej Tumański, tel. 22 257 84 63 Maja Gilewska, tel. 22 257 84 71 Sekretarz Redakcji: Grzegorz Krzykawski, tel. 22 257 84 60 DTP i okładka: Dariusz Welik Redaktor strony internetowej www.ep.com.pl Mateusz Woźniak Stali Współpracownicy: Arkadiusz Antoniak, Rafał Baranowski, Lucjan Bryndza, Marcin Chruściel, Jarosław Doliński, Andrzej Gawryluk, Krzysztof Górski, Tomasz Gumny, Tomasz Jabłoński, Michał Kurzela, Szymon Panecki, Krzysztof Paprocki, Krzysztof Pławsiuk, Sławomir Skrzyński, Jerzy Szczesiul, Ryszard Szymaniak, Adam Tatuś, Marcin Wiązania, Tomasz Włostowski, Robert Wołgajew Uwaga! Kontakt z wymienionymi osobami jest możliwy via e-mail, według schematu: imię
[email protected] Prenumerata w Wydawnictwie AVT www.avt.pl/prenumerata lub tel: 22257 84 22 e-mail:
[email protected] www.sklep.avt.pl, tel: (22) 257 84 66 Prenumerata w RUCH S.A. www.prenumerata.ruch.com.pl lub tel: 801 800 803, 22 717 59 59 e-mail:
[email protected] Wydawnictwo AVT-Korporacja Sp. z o.o. należy do Izby Wydawców Prasy
Copyright AVT-Korporacja Sp. z o.o. 03-197 Warszawa, ul. Leszczynowa 11 Projekty publikowane w „Elektronice Praktycznej” mogą być wykorzystywane wyłącznie do własnych potrzeb. Korzystanie z tych projektów do innych celów, zwłaszcza do działalności zarobkowej, wymaga zgody redakcji „Elektroniki Praktycznej”. Przedruk oraz umieszczanie na stronach internetowych całości lub fragmentów publikacji zamieszczanych w „Elektronice Praktycznej” jest dozwolone wyłącznie po uzyskaniu zgody redakcji. Redakcja nie odpowiada za treść reklam i ogłoszeń zamieszczanych w „Elektronice Praktycznej”.
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:19:39
005.indd 5
2013-07-25 10:19:54
Nr 8 (248) Sierpień 2013
Sterownik silników DC o średniej mocy
Użyteczny moduł dla Arduino, który umożliwia sterowanie i monitorowanie dwóch silników prądu stałego o średniej mocy i prądzie uzwojeń do 2,8A zasilanych napięciem 8…50 V. Układ współpracuje z płytkami zgodnymi mechanicznie z Arduino zasilanymi napięciem 5…3,3 V, dzięki czemu można go stosować z zestawami STM, Freedom, Pioneer itp.
Wyciszacz odbiornika TV Urządzenie powstało w odpowiedzi na potrzebę znalezienia najprostszego z możliwych sposobów wyciszania odbiornika TV. Prezentowane urządzenie przyda się również osobom, które chcą sterować zdalnie urządzeniami bez użycia jakichkolwiek podręcznych gadżetów.
Wzmacniacz audio o mocy 2×40 W
Tematyka wzmacniaczy audio cieszy się niesłabnącym zainteresowaniem. Prezentujemy urządzenie, które jest uzupełnieniem przedwzmacniacza LM4562 i przetwornika DAC z TDA1541. Zestaw tworzy kompletny system o dobrej jakości, nieodbiegającej od rozwiązań fabrycznych.
Sterowany radiowo przełącznik ON-OFF
Za miesiąc zaprezentujemy opis przełącznika typu włącz/wyłącz sterowanego drogą radiową.
Cyfrowa ramka do zdjęć
Projekt o charakterze jak najbardziej wakacyjnym. Cyfrowa ramka do zdjęć, ale z wyświetlaczem OLED!
Oraz wiele, wiele innych projektów i miniprojektów. Tradycyjnie, jak co roku, w sierpniowej EP opublikowaliśmy całą górę użytecznych urządzeń do wykonania w czasie wakacji! Nietuzinkowe zajęcie na wakacyjne wieczory. 6
006_spis_tresci.indd 6
Projekty Wyciszacz odbiornika TV. Sterowany akustycznie nadajnik podczerwieni ....................................... 18 Włącznik sterowany radiowo ......................................................................................................... 27 Ramka cyfrowa do zdjęć. Obsługa kolorowego wyświetlacza OLED w języku C ............................. 32 DSP dla każdego (2). Zestaw z ADAU1701 ..................................................................................... 41 Włącznik urządzeń zasilanych z sieci 230 V AC .............................................................................. 45
Miniprojekty Wzmacniacz audio o mocy 2×40 W z LM3875 .............................................................................. 51 Detektor hałasu .............................................................................................................................. 54 LCD Booster Pack dla Launchpada .................................................................................................. 55 Długowieczna latarka ..................................................................................................................... 56 Ładowarka akumulatorków NiCd i NiMH ....................................................................................... 57 Miniaturowa ładowarka akumulatorów Li-Po zasilana z USB ......................................................... 59 Wzmacniacz z układem TPA3110 ................................................................................................... 60 Mikrokrokowy sterownik silnika krokowego................................................................................... 61 AVTduino_DCMotor – driver silników DC o średniej mocy .............................................................. 62 Licznik impulsów ............................................................................................................................ 65 ATmega128 na płytce ewaluacyjnej AVT5311 ................................................................................ 66 Mostek H ........................................................................................................................................ 67 MicroMic – przedwzmacniacz mikrofonowy .................................................................................. 68 Stopień mocy z układem ULN2003................................................................................................. 69 Miniaturowy, regulowany stabilizator impulsowy .......................................................................... 69 Miniaturowa przetwornica 3 V/5 V (500 mA) ................................................................................. 70 Efekt Gitarowo/Basowy Crunch Drive ............................................................................................. 71 Efekt Gitarowo/Basowy Overdrive .................................................................................................. 73 Stabilizator o napięciu wejściowym do 75 V DC ............................................................................. 74 Efekt Gitarowo/Basowy Distortion .................................................................................................. 75 Efekt Gitarowo/Basowy Fuzz .......................................................................................................... 76 DragonSafe v2 – zabezpieczenie programatora Dragon ................................................................. 77 Izolator programatora ISP dla AVR ................................................................................................. 78
Notatnik konstruktora Klocki dla Arduino (1). Procedury obsługi wybranych modułów dodatkowych dla Arduino – impulsator ........................ 122
Podzespoły Nowe STM32 z Cortex-M0 w TSSOP20: rodzina STM32F030 ........................................................ 104 PSoC4 – Pierwszy PSoC z ARM Cortex M0 .................................................................................... 106
Sprzęt Oscyloskop HMO3004 .................................................................................................................. 110
Kursy Podstawy programowania w LabView (5). Pierwsza aplikacja ........................................................ 80 Tworzenie aplikacji RTOS z użyciem produktów NI ......................................................................... 88 32 bity jak najprościej (2). Pierwsze kroki z modułem STM32F0DISCOVERY ................................... 94
Automatyka i Mechatronika Praktyczna Wprowadzenie do środowiska projektowego TIA Portal dla sterowników S7-1500 ..................... 117 Czujniki ruchu oraz sterowniki oświetlenia. Krótkoterminowa inwestycja w poprawę efektywności energetycznej ......................................... 120 Od wydawcy .................................................................................................................................... 4 Niezbędnik elektronika ..................................................................................................................... 7 Nie przeocz. Podzespoły ................................................................................................................... 8 Nie przeocz. Koktajl niusów ........................................................................................................... 14 Sprzężenie zwrotne. Forum ............................................................................................................ 16 Info .............................................................................................................................................. 114 Kramik i rynek .............................................................................................................................. 125 Księgarnia wysyłkowa .................................................................................................................. 128 Oferta........................................................................................................................................... 130 Prenumerata ................................................................................................................................ 131 Zapowiedź następnego numeru ................................................................................................... 132
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:20:10
Tytuł ZAWARTOŚĆ DODATKOWEJ PŁYTY DVD
niezbędnik
elektronika
1. Atmel Studio 6.1 z SP1.1
Najnowsza wersja zintegrowanego pakietu programistycznego firmy Atmel, wyposażonego w komplet narzędzi pozwalających tworzyć kompletne aplikacje dla 8 i 32-bitowych mikrokontrolerów z oferty firmy, a także bogatą bibliotekę przykładowych aplikacji oraz sterowników funkcjonalnych.
2. CodeWarrior Special Edition 10.4 Najnowsza wersja pakietu programistycznego firmy Freescale za pomocą którego można przygotowywać projekty dla mikrokontrolerów z rodzin ColdFire, ColdFire+, DSC, Kinetis, Qorivva, RS08, S08 oraz S12Z. W skład pakietu wchodzi ograniczona funkcjonalnie wersja ProcessorExperta, IDE bazuje na Eclipse.
3. Infineon DAvE 3.1.6 Najnowsza wersja środowiska narzędziowego DAvE firmy Infineon, za poEP 7/2013 1. Altera Quartus II Web Edition v 13.0.0.156 Najnowsza wersja pakietu projektowego Quartus II firmy Altera. 2. Atmel Studio 6.1 b2562 Kolejna kompilacja pakietu Atmel Studio 6.1. 3. Cirrus Logic FlexGUI v.8.0.0 Pakiet narzędziowy do konfigurowania i testowania cyfrowych układów audio. 4. Cirrus Logic Seismic Eval GUI v2.8 Pakiet oprogramowania narzędziowego zintegrowanego z GUI dla zestawu ewaluacyjnego z sensorami i system obróbki danych z systemu rejestracji sygnałów sejsmicznych. 5. Cypress PSoC Designer v5.4 Najnowsza wersja pakietu programistycznego PSoC Designer firmy Cypress Semiconductor. 6. Freescale CodeWarrior 10.4 SE Najnowsza wersja bezpłatnego środowiska programistycznego CodeWarrior firmy Freescale. 7. FTDI VisualTFT v3.60 Pakiet programistyczny do przygotowywania aplikacji graficznych dla procesora EVE firmy FTDI. 8. NXP Flash Magic v7.47 Najnowsza wersja programu Flash Magic, który jest samodzielnym programatorem mikrokontrolerów LPC1xxx/2xxx firmy NXP. 9. SiliconLabs Precision32 IDE Najnowsza wersja kompletnego środowiska programistycznego,
bazującego na IDE Eclipse i kompilatorze GCC. EP 6/2013 1. ARM Development Studio 5.14 Nowa wersja pakietu DS5 firmy ARM w wersjach dla Windows oraz Linuksa. 2. ARM-MDK 4.71a Najnowsza, prawdopodobnie ostatnia z prefiksem w numerze wersji „4”, wersja niezwykle popularnego środowiska firmy ARM (Keil) dla programistów mikrokontrolerów. 3. Freescale Kinetis OSJTAG Drivers 1.10 Pakiet plików tworzących upgrade pakietu RMK-MDK. 4. Texas Instruments CCS v5.3.0.00090 Najnowsza wersja pakietu narzędziowego Code Composer Studio firmy Texas Instruments. 5. Symulator Texas Instruments Tina TI Kompletny symulator bazujący na silniku Spice, w wersji przeznaczonej dla układów analogowych firmy Texas Instruments. 6. TIVA C CMISIS libraries Zestaw bibliotek CMSIS dla mikrokontrolerów z rodziny Tiva C firmy Texas Instruments. 7. TIVA C Utility Dodatkowe pakiety bibliotek w wersji dla mikrokontrolerów Tiva C firmy Texas Instruments, wspomagających m.in. obliczenia DSP oraz matematyczne. 8. TIVAware for C series v1.0 + TIVAware for C series libraries Pakiet oprogramowania (w tym przykładowe projekty) TivaWare dla mikrokontrolerów Tiva C firmy Texas Instruments.
9. Xilinx Vivado 2013.1 Nowa wersja pakietu Vivado firmy Xilinx. EP5/2013 1. 5Spice v2.03 Najnowsza wersja popularnego analizatora i symulatora układów analogowych, bazującego na silniku Spice. 2. Analog Devices ADIsimRF v1.7 ADIsimRF to pakiet narzędziowy pozwalający przeprowadzać podstawowe obliczenia radiowych torów transmisyjnych. 3. ARM-MDK 4.70 Najnowsza, ostatnia - przed zapowiadaną wersją 5.x - wersja popularnego pakietu programistycznego firmy Keil/ARM. 4. Cedar Logic Simulator Prosty w obsłudze symulator układów logicznych. 5. DipTrace v2.3.1 Najnowsza, ewaluacyjna wersja profesjonalnego pakietu EDA. 6. LTSpice IV Symulator układów analogowych firmy Linear Technology. 7. Logicly v1.4.0 Ewaluacyjna wersja symulatora układów cyfrowych, który charakteryzuje się bogatymi bibliotekami symulowanych elementów. 8. National Instruments ADI Component Evaluator v12.0.1 Bezpłatna wersja pakietu symulacyjnego Multisim. 9. National Instruments Mutisim Ultiboard v12.0.1 Edukacyjna wersja programu Ultiboard. 10. STMicroelectronics SPC5 Studio
ELEKTRONIKA PRAKTYCZNA 8/2013 10/2012
007_niezbednik.indd 7
mocą którego można realizować projekty programistyczne dla mikrokontrolerów XMC4xxx oraz XMC1xxx, rodzin z oferty producenta wyposażonych w rdzenie Cortex-M.
4. Keil/ARM MDK Atmel Edition 4.71 Wersja znanego środowiska programistycznego, ograniczonego do mikrokontrolerów z rdzeniami ARM z oferty firmy Atmel.
5. Linear Technology LTSpice Najnowsza, opublikowana w ostatnich dniach czerwca 2013, wersja popularnego symulatora układów analogowych, bazująca na popularnym silniku symulacyjnym Spice. Jest to doskonałe narzędzie symulacyjne, domyślnie dostarczane z pakietem bibliotek modeli układów z oferty firmy Linear Technology, ale mogące pracować z modelami tworzonymi samodzielnie przez użytkownika oraz standardowymi
Najnowsza wersja bezpłatnego środowiska projektowego SPC5 Studio. 11. STMicroelectronics ST-Link v.2.5.0 Najnowsza wersja programu obsługującego programator pamięci Flash ST-Link oraz ST-Link/V2 (a także zgodnego z nimi ZL30PRG). 12. STMicroelectronics ST Toolset v29 Najnowsza wersja bezpłatnego, zintegrowanego środowiska programistycznego dla mikrokontrolerów ST7 i STM8. 13. STMicroelectronics STMStudio v3.1.1 Najnowsza wersja bezpłatnego analizatora kodu wykonywanego przez mikrokontrolery STM32 oraz STM8. 14. TI ControlSuite v3.1.3 Najnowsza wersja pakietu zawierającego m.in. zestaw bibliotek z driverami do bloków peryferyjnych mikrokontrolerów rodzin bazujących na rdzeniu C2000: Piccolo, Delfino oraz Concerto. 15. VeeCAD Strip Board Editor v2.29.0.0 Niezwykle pomysłowy edytor płytek drukowanych, bazujący na płytkach uniwersalnych. EP 4/2013 1. 5Spice v2.03 Najnowsza wersja popularnego analizatora i symulatora układów analogowych. 2. Analog Devices ADIsimRF v1.7 ADIsimRF jest pakietem narzędziowym do wykonywania podstawowych obliczeń radiowych torów transmisyjnych, składających się z maksymalnie 15 stopni.
3. ARM-MDK 4.70 Najnowsza, ostatnia - przed zapowiadaną wersją 5.x - wersja popularnego pakietu programistycznego firmy Keil/ARM.
12. STMicroelectronics ST Toolset v29 Najnowsza wersja bezpłatnego, zintegrowanego środowiska programistycznego dla mikrokontrolerów ST7.
4. Cedar Logic Simulator Prosty w obsłudze symulator układów logicznych.
13. STMicroelectronics STMStudio v3.1.1 Najnowsza wersja bezpłatnego analizatora kodu wykonywanego przez mikrokontrolery STM32 oraz STM8.
5. DipTrace v2.3.1 Najnowsza, ewaluacyjna wersja profesjonalnego pakietu EDA. 6. LTSpice IV Nowa (marzec 2013) wersja symulatora układów analogowych. 7. Logicly v1.4.0 Wersja ewaluacyjna symulatora układów cyfrowych. 8. National Instruments ADI Component Evaluator v12.0.1 Bezpłatna wersja pakietu symulacyjnego Multisim wyposażonego w biblioteki modeli Spice zawierające wyłącznie elementy z oferty Analog Devices. 9. National Instruments Mutisim Ultiboard v12.0.1 Edukacyjna wersja programu Ultiboard, który jest narzędziem komplementarnym do Modelsima - służy do projektowania płytek drukowanych. 10. STMicroelectronics SPC5 Studio Najnowsza wersja bezpłatnego środowiska projektowego SPC5 Studio. 11. STMicroelectronics ST-Link v.2.5.0 Najnowsza wersja programu obsługującego programatory pamięci Flash ST-Link oraz ST-Link/V2 (a także zgodnego z nimi ZL30PRG).
14. TI ControlSuite v3.1.3 Najnowsza wersja pakietu zawierającego m.in. zestaw bibliotek z driverami do bloków peryferyjnych mikrokontrolerów rodzin bazujących na rdzeniu C2000: Piccolo, Delfino oraz Concerto. 15. VeeCAD Strip Board Editor v2.29.0.0 Niezwykle pomysłowy edytor płytek drukowanych, bazujący na płytkach uniwersalnych. EP 4/2013 1. Atmel Studio 6.1-2440 Najnowsza wersja środowiska programistycznego firmy Atmel. 2. AXsem AX8052 IDE Środowisko projektowe z kompilatorem SDCC dla mikrokontrolerów 8052 firmy Axsem. 3. AXsem Microlab Pakiet oprogramowania narzędziowego służącego do konfiguracji mikrokontrolerów zintegrowanych z transceiverami RF-ISM firmy Axsem. 4. AXsem ParamCalc Pakiet oprogramowania konfigurującego tor radiowy w mikrokontrolerach AX8052 dla założonych parametrów transmisji. 5. AXsem Radiolab Program narzędziowy
modelami podzespołów, zgodnymi ze standardem Spice.
6. Microchip MPlabX 1.85 Najnowsza wersja IDE firmy Microchip oraz kompletu kompilatorów C dla mikrokontrolerów 8-/16- i 32-bitowych, oczywiście wyłącznie z oferty firmy Microchip. Na płycie publikujemy dwie wersje: dla Windows i Linuksa.
7. TI TivaWare Najnowsza, lipcowa, wersja bibliotek Standard Peripherial Driver Library, dla nowych mikrokontrolerów firmy Texas Instruments, wyposażonych w rdzeń Cortex-M4F: TivaC.
wspomagający oprogramowanie jednoukładowego transceivera radiowego AX5043 firmy Axsem. 6. Cypress PSoC Creator 2.2 Najnowsza wersja pakietu programistycznego dla użytkowników mikrokontrolerów PSoC firmy Cypress. 7. Cypress PSoC Designer 5.3 Środowisko projektowe dla konstruktorów-programistów korzystających w swoich projektach z mikrokontrolerów PSoC. 8. Cypress PSoC Programer 3.17 Najnowsza wersja programu obsługującego programatory ISP mikrokontrolerów PSoC firmy Cypress. 9. Eagle 6.4.0 Najnowsza wersja Eagle w wersjach dla Linuksa, Windows oraz Mac. 10. Fritzing 0.7.12b Program wspomagający realizację prototypów prostych urządzeń elektronicznych. 11. FTDI VisualTFT Pakiet konfiguracyjny dla nowych układów z oferty FTDI - EVE. 12. Infineon DAvE 3.1.6 Nowa wersja środowiska programistycznego firmy Infineon dla mikrokontrolerów XMC4000 i XMC1000. 13. Klipper 5.4.0 for Altium Designer Najnowsza wersja programu umożliwiającego import grafik do edytora PCB w pakiecie Altium Designer. 14. Microchip MPlabX 1.70 Lutowa wersja doskonale znanego pakietu MPlabX
z ewaulacyjnymi wersjami kompilatorów dla mikrokontrolerów PIC. 15. NXP emwin libraries Zestaw nowych bibliotek oraz aktualizacje do środowiska emwin. 16. NXP Product Selector 2013 Off-line’owy, interaktywny selektor wyrobów firmy NXP. 17. MicroXplorer PCC Nowa wersja graficznego konfiguratora mikrokontrolerów STM32 zintegrowana z kalkulatorem Power Consuption Calculator. 18. Texas Instruments Grace Graficzny pakiet do konfigurowania mikrokontrolerów MSP430 firmy Texas Instruments. 19. Tibbo TIDE 2.50.26 Ostatnia opublikowana wersja środowiska narzędziowego z prekompilatorem do przygotowywania projektów na programowalne moduły sieciowe EM firmy Tibbo. 20. XMOS Time Composer 12.2.0 Środowisko programistyczne dla programistów piszących aplikacje dla wielordzeniowych mikrokontrolerów o małym poborze mocy, wyposażonych w rdzenie xCORE. 21. XMOS xSOFTip Explorer Pakiet bibliotek programowych z funkcjami konfigurującymi dla xCORE. EP3/2013 1. Altera Quartus II 12.1 Web Edition (wersja bezpłatna) Najnowsza wersja pakietu projektowego dla układów FPGA i CPLD firmy Altera.
2. Drivery do ARM-MDK dla interfejsu OSJTAG Pakiet najnowszych (1.10) driverów dla pakietu ARM. 3. Atmel Studio 6 SP2 Najnowsza wersja zintegrowanego pakietu programistycznego dla konstruktorów korzystających z mikrokontrolerów firmy Atmel. 4. Actel/Microsemi Libero SoC 10.1 Najnowsza wersja zintegrowanego środowiska projektowego dla inżynierów realizujących projekty w układach FPGA. 5. Actel/Microsemi Libero SoC 11 beta Testowa wersja (beta) pakietu Libero, który jest zintegrowanym środowiskiem projektowym dla inżynierów realizujących projekty w układach FPGA. 6. ON Semiconductor CAN calculator Prosty w obsłudze kalkulator magistrali CAN. 7. ON Semiconductor CompCalc 3.0 Program narzędziowy wspomagający projektowanie zasilaczy i przetwornic DC/DC. 8. ON Semiconductor Efficiency Calculator Program narzędziowy do szacowania strat mocy w tranzystorach MOSFET. 9. STMicroelectronics SPC5 Studio Zintegrowane środowisko programistyczne dla konstruktorów realizujących projekty na mikrokontrolery SPC56 z rdzeniami z serii PowerPC.
growanego środowiska programistycznego Code Composer firmy Texas Instruments. EP2/2013 1. Arduino 1.0.3 Najnowsza wersja (1.0.3, grudzień 2012) kompletnego środowiska programistycznego Arduino. 2. Code Warrior 10.3 SE Specjalna, bezpłatna wersja środowiska programistycznego dla mikrokontrolerów produkowanych przez firmę Freescale. 3. LadderWork for ARM System umożliwiający przygotowywanie programów dla mikrokontrolerów LPC1769 w języku drabinkowym. 4. Lattice Diamond Win64 Najnowsza wersja pakietu Diamond firmy Lattice (2.0.0.155). 5. Lattice Mico 2.0.1 Najnowsza wersja plików źródłowych oraz skompilowanego środowiska programistycznego dla „miękkich” rdzeni 32-bitowego procesora Mico. 6. SiLabs Precision 32 DevEnv Bezpłatne środowisko programistyczne dla 32-bitowych mikrokontrolerów z serii Precision 32 firmy SiliconLabs. 7. SiLabs QuickSense Studio Ostatnia z 2012 roku wersja pakietu testowo-analitycznego firmy SiliconLabs, wspomagającego uruchamianie klawiatur i nastawników bezstykowych.
10. Texas Instruments CodeComposer 5.3.0 RC1 Najnowsza wersja zinte-
7
2013-07-25 10:20:38
NIE PRZEOCZ PRZEOCZ Podzespoły NIE
nowe
podzespoły Z kilkuset nowości wybraliśmy te, których nie wolno przeoczyć. Bieżące nowości można śledzić na www.elektronikaB2B.pl
Miniaturowe mikrokontrolery R78/G10 Nowa rodzina mikrokontrolerów RL78/G10 firmy Renesas charakteryzuje się małym poborem prądu wynoszącym zaledwie 46 mA/MHz oraz miniaturowymi obudowami z niewielką liczbą wyprowadzeń Są to 10-pinowe obudowy SSOP-10 o wymiarach 4,4 mm×3,6 mm. Są to wykonania tzw. low pin count, stanowiące rozszerzenie serii RL78/G1x, zaprojektowane do zastosowania w elektronice użytkowej. Mikrokontrolery mają od 1 do 4 kB pamięci Flash, od 128 do 512 B pamięci RAM. Pracują z częstotliwością taktowania od 1,25 do 20 MHz. Do standardowego wyposażenia należy 4-kanałowy 8/10-bitowy przetwornik A/C, interfejsy szeregowe UART, CSI, I²C; 2-kanałowy, 16-bitowy uniwersalny timer i watchdog. Zakres napięcia zasilania wynosi rozciąga się 2,0 do 5,5 V, a zakres temperatury pracy od -40 do +85°C. Obecnie dostępne są wersje próbne mikrokontrolerów RL78/G10. Pod koniec b.r. pojawią się wersje z wbudowanym oscylatorem i 14 liniami I/O. Będą one oferowane w obudowach SSOP-16. http://goo.gl/mzddU
Most USB-to-UART do urządzeń z systemem Android Firma FTDI Chip powiększa ofertę układów dla urządzeń pracujących pod kontrolą systemu operacyjnego Android. FT312D to nowy REKLAMA
typ mostu USB-to-UART zapewniającego komunikację między tabletami i smartfonami oraz akcesoriami USB. Stanowi zmodernizowaną wersję wprowadzonego rok wcześniej układu FT311D, zoptymalizowaną do współpracy z interfejsem UART. Obsługuje protokół USB bez konieczności tworzenia oprogramowania firmware. Zawiera pamięć buforową o pojemności 5512 B w sekcji odbiorczej portu UART i 256 B w sekcji nadawczej. Wspiera protokół Android Open Accessory i transmisję typu masowego (Bulk Transfer). Układ jest oferowany w 32-wyprowadzeniowych obudowach LQFP i QFN. Cena hurtowa wynosi 2,55 USD przy zamówieniach od 10 tys. sztuk. Ważniejsze parametry układu: – zgodność z USB 2.0 Full Speed, – interfejs UART z liniami RXD, TXD, RTS, CTS, – linia sygnalizacyjna USB_ERROR, – oscylator 12 MHz współpracujący z zewnętrznym rezonatorem, – wbudowana pamięć konfiguracyjna, – pojedyncze napięcie zasilania 3,3 V (wejścia kompatybilne z układami 5 V), – zakres temperatury pracy od -40 do +85°C. http://goo.gl/JSHzq
Układ do monitorowania akumulatorów Pb Firma Texas Instruments opracowała układ do monitorowania stanu akumulatorów kwasowo-ołowiowych oznaczony symbolem bq34z110, wykorzystujący technologię estymacji pojemności Impedance Track. Realizuje on pomiar całkowitej pojemności akumulatora, stanu naładowania i kondycji akumulatora w oparciu o analizę prądu, napięcia i temperatury. Jest to jedyny dostępny obecnie na rynku tego typu układ o skalowalnej architekturze, umożliwiający pomiar pojemności akumulatorów o napięciu: 4, 12, 24 lub 48 V, o pojemności od 1 do ponad 65 Ah i prądzie znamionowym do 32 A. Zawiera układ kompensacji starzenia i samorozładowania. Komunikuje się z mikroprocesorem przez interfejs szeregowy I²C i HDQ. Obsługuje standardy autoryzacji SHA-1 i HMAC. Pobiera mniej niż 140 mA prądu w stanie aktywnym i poniżej 19 mA w trybie uśpienia. Cena hurtowa bq34z110 wynosi 2,30 USD przy zamówieniu od 1000 sztuk. Producent oferuje zestaw ewaluacyjny bq34z110EVM w cenie 49 USD. http://goo.gl/lZwkq
Miniaturowe zegary RTC zasilane od 0,9 V Układ scalony PCF85063TP to jeden z najmniejszych, dostępnych na rynku zegarów RTC, oferowany w obudowie o wymiarach 3 mm×2 mm×0,75 mm. Pracuje przy niskim napięciu zasilania, już od 0,9 V. Maksymalne napięcie zasilające wynosi 5,5 V. Układ pobiera zale-
8
008-017_newsy.indd 8
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:20:54
Podzespoły dwie 0,22 mA prądu (Vdd=3,3 V, Tamb=25°C), dzięki czemu może znaleźć wiele zastosowań w urządzeniach przenośnych. W rejestrach wewnętrznych zapisuje wartości czasu od sekund do lat. Może generować przerwania przerwanie co 30 lub 60 sekund. Układ komunikuje się z mikroprocesorem za pomocą interfejsu I²C. Zawiera programowalne wyjście sygnału zegarowego o częstotliwości: 32,768 kHz; 16,384 kHz; 8,192 kHz; 4,096 kHz; 2,048 kHz; 1,024 kHz; 1 Hz, przeznaczone do taktowania urządzeń peryferyjnych. Oprócz wersji podstawowej układu zegara, firma NXP ma też w ofercie dwa odpowiedniki o oznaczeniach PCF85063ATL i PCF85063BTL, oferowane w obudowach o wymiarach 2,6 mm×2,6 mm×0,5 mm. Zawierają one dodatkowo funkcje alarmu i timera. Komunikują się mikroprocesorem przez interfejs, odpowiednio, I²C lub SPI. Ceny zegarów RTC serii PCF85063 zaczynają się od 0,26 USD przy zamówieniach od 10 tys. sztuk. http://goo.gl/1JJva
Firma Intersil wprowadza do oferty cztery aktywne kontrolery PFC typu Boost o oznaczeniach ISL6730A, ISL6730B, ISL6730C i ISL6730D, zaprojektowane do zastosowania w zasilaczach o mocy wyjściowej do 2 kW, pracujących w uniwersalnym zakresie napięcia wejściowego od 85 do 270 V AC. Dzięki zastosowaniu opatentowanej technologii tzw. ujemnej pojemności układy te zapewniają minimalne zniekształcenia w obszarze przejścia przez zero i mogą współpracować z mniejszymi, tańszymi elementami magnetycznymi. W zasilaczu o mocy 85 W pozwala to na zmniejszenie wymaganej indukcyjności cewki w filtrze EMI z typowych 150 mH do 56 mH. Wbudowany sterownik bramki zewnętrznego tranzystora MOSFET zapewnia wydajność prądową 1,5 A. Wszystkie układy zawierają zabezpieczenie nadprądowe, termiczne, nadnapięciowe i podnapięciowe. Różnią się między sobą częstotliwością kluczowania (62 kHz dla ISL6730B/ISL6730D, 124 kHz dla ISL6730A/ISL6730C) oraz wbudowanym w ISL6730A i ISL6730B oszczędnościowym trybem pracy skip. Pozwalają na uzyskanie współczynnika PFC powyżej 0,9, zgodnie z wymogami norm ENERGY STAR v. 5.0. Dostępny już w sprzedaży ISL6730A jest oferowany w obudowie MSOP-10. Cena hurtowa wynosi 0,95 USD przy zamówieniu od 1000 sztuk. http://goo.gl/a5WGW
REKLAMA
Kontrolery PFC do zasilaczy o mocy do 2 kW
Impulsowy regulator napięcia 1 A o małym prądzie spoczynkowym Nowy impulsowy regulator napięcia LTC3621 firmy Linear Technology charakteryzuje się małym poborem prądu w stanie spoczynELEKTRONIKA PRAKTYCZNA 8/2013
008-017_newsy.indd 9
9
2013-07-25 10:20:55
NIE PRZEOCZ
kowym, wynoszącym zaledwie 3,5 mA. Może pracować w szerokim zakresie napięcia wejściowego od 2,7 do 17 V, co pozwala na stosowanie go zarówno w urządzeniach przenośnych, zasilanych z jedno- lub dwuogniwowego akumulatora Li-Ion, jak też w elektronice samochodowej i aplikacjach zasilanych z szyny pośredniej 12 V. Układ generuje napięcie wyjściowe wynoszące od 0,6 V do VIN, przy wydajności prądowej 1 A. Zapewnia sprawność sięgającą 95%. Dostępne są dwie wersje układu o różnych częstotliwościach kluczowanie: LTC3621 (1 MHz) i LTC3621-2 (2,25 MHz). Układ LTC3621 jest regulatorem pracującym ze stałą częstotliwością kluczowania w trybie prądowym, co zapewnia małe zaburzenia w sygnale wyjściowym oraz szybką odpowiedź na zmiany prądu obciążenia i napięcia wejściowego. Jest dostępny w dwóch typach obudów: MSOP-8 i DFN-6. Ceny hurtowe zaczynają się od 2,55 USD przy zamówieniu od 1000 sztuk. Ceny wersji Industrial grade na rozszerzony zakres temperatury pracy (-40...+125°C) zaczynają się od 2,81 USD. http://goo.gl/TpDPM
gestów. Nowością jest wejście zewnętrznego oscylatora kwarcowego w.cz. pozwalające na wprowadzenie szybkiej komunikacji szeregowej. W strukturze wewnętrznej układów z obu serii znajdują się dodatkowe linie GPIO, timery i porty szeregowe, a dzięki wprowadzeniu nowego typu obudowy DSBGA (die-sized ball grid array) rozszerzono ich zakres zastosowań na urządzenia o największej gęstości upakowania podzespołów. Do mikrokontrolerów G2xx4 i G2xx5 producent oferuje darmowe biblioteki funkcji interfejsu dotykowego. Inne parametry układów: – większa o 50% gęstość kodu w stosunku do standardowych mikrokontrolerów 8-bitowych, – napięcie zasilania: 1,8...3,6 V, – pobór prądu (zasilanie 2,2 V): 0,1 mA przy podtrzymaniu pamięci RAM; 0,4 mA w trybie standby; 0,7 mA z aktywnym zegarem RTC, 220 mA/MIPS w stanie aktywnym, – czas przejścia z trybu standby do aktywnego poniżej 1 ms, REKLAMA
Dwie nowe serie mikrokontrolerów MSP430 Value Line Rodzina ekonomicznych mikrokontrolerów MSP430 Value Line firmy Texas Instruments powiększyła się o dwie kolejne serie: MSP430G2xx4 i MSP430G2xx5. Te układy wyposażono w większą pamięć, dodatkowe linie I/O i timery oraz bardziej funkcjonalny układ sterowania interfejsem dotykowym. Ponadto, są one oferowane w większej liczbie obudów. Serie G2xx4 i G2xx5, kompatybilne pod względem kodu programu, mają od 16 do 56 kB pamięci Flash i do 4 kB pamięci SRAM, co umożliwia implementację np. bezprzewodowych protokołów transmisji M-Bus i NFC oraz tworzenie bardziej rozbudowanych interfejsów pojemnościowych z funkcjami obsługi REKLAMA
pïytki jednostronne i dwustronne pïytki na podïoĝu aluminiowym testy elektryczne pïytek pokrycia pïytek: cyna lub cyna/oïów
Q&R_337
10 Untitled-1 1 Process CyanProcess MagentaProcess YellowProcess Black 008-017_newsy.indd 10
ELEKTRONIKA PRAKTYCZNA 8/2013 3/18/13 3:25 PM 2013-07-25 10:20:56
Podzespoły
ELEKTRONIKA PRAKTYCZNA 8/2013
008-017_newsy.indd 11
11
2013-07-25 10:20:56
NIE PRZEOCZ – sekcja analogowa: 8-kanałowy, 10-bitowy przetwornik A/C SAR+komparator, – interfejsy szeregowe: 10...32 linie GPIO, I²C, SPI, UART, interfejs ekranu dotykowego; – timery: do 3 timerów 16-bitowych, do 3 rejestrów Capture/Compare, watchdog, – warianty obudów DIP, TSSOP, QFN i DSBGA. Ceny hurtowe mikrokontrolerów G2xx4 i G2xx5 wynoszą, odpowiednio: 0,96 i 1,12 USD przy zamówieniu od 10 tys. sztuk. http://goo.gl/Ueb4m
napięcia (iW628) stosowany po stronie wtórnej transformatora. Chipsety iW1766+iW628 oraz iW1767+iW628 służą do budowy zasilaczy o maksymalnej mocy wyjściowej, odpowiednio: 12 W i 24 W. Charakteryzują się poborem mocy w stanie standby nieprzekraczającym 20 mW oraz bardzo szybką odpowiedzą impulsową, zapewnianą przez układ monitorujący iW628. Układy iW1766/67 są kontrolerami adaptacyjnymi, automatycznie przełączającymi się pomiędzy trybami PWM i PFM, w zależności do obciążenia. Zawierają zabezpieczenie przeciwzwarciowe, nadnapięciowe, podnapięciowe, nadprądowe i termiczne oraz programowany przez użytkownika, 5-poziomowy układ kompensacji spadku napięcia na kablach wyjściowych, eliminujący konieczność projektowania różnych wersji produktu dla różnych zakresów napięć wyjściowych. Układy iW1766 i iW1767, dostępne w obudowach SOIC-8, są oferowane w cenie 0,30 USD przy zamówieniu od 1000 sztuk. Cena hurtowa układu monitorującego iW628 wynosi 0,07 USD. Jest on dostępny w obudowie SOT-23-3. http://goo.gl/wz9BC
Kondensatory do montażu na tranzystorach IGBT Kondensatory polipropylenowe Vishay Roederstein MKP386M służą do tłumienia przepięć podczas przełączania elementów półprzewodnikowych o dużej mocy. Są produkowane w niepalnych obudowach z wyprowadzeniami przystosowanymi do montażu bezpośrednio na modułach IGBT. Pracują w maksymalnej temperaturze otoczenia +105°C. Są oferowane w 7 wersjach o napięciu znamionowym z zakresu 700...2500 V DC i 420...800 V AC oraz o pojemności od 0,047 do 10 mF. Charakteryzują się maksymalnym prądem szczytowym 1850 A, rezystancją ESR od 1,5 mV i czasem bezawaryjnej pracy powyżej 300 tys. godzin. Typowe zastosowania dla serii MKP386M obejmują falowniki i układy napędowe. http://goo.gl/eIspb
Ultraenergooszczędne chipsety do zasilaczy sieciowych małej mocy Firma iWatt prezentuje dwa ultraenergooszczędne chipsety do zasilaczy sieciowych małej mocy obejmujące kontrolery stosowane po stronie pierwotnej (iW1766/67) i adaptacyjny układ monitorowania
12
008-017_newsy.indd 12
Konwerter sygnału analogowego na cyfrowy na o paśmie DC...300 MHz Firma Linear Technology opracowała dwuwyjściowy konwerter sygnału analogowego na cyfrowy mogący pełnić funkcję bufora, sterownika linii lub translatora poziomów logicznych. Układ LTC6957 przekształca sygnał analogowy o częstotliwości od 0 do 300 MHz na sygnał cyfrowy, wprowadzając przy tym mały błąd jittera, poniżej 200 fs rms (45 fs rms dla wersji LVPECL). Choć LTC6957 może współpracować z sygnałem wejściowym o dowolnym kształcie, najlepiej sprawdza się dla sygnałów sinusoidalnych. LTC6957 jest oferowany w 4 wariantach o następujących formatach sygnału wyjściowego: – LTC6957-1 (wyjście LVPECL), – LTC6957-2 (wyjście LVDS), – LTC6957-3 (wyjście CMOS podwójne), – LTC6957-4 (wyjście CMOS komplementarne). Umieszczony w stopniu wejściowym konfigurowalny filtr dolnoprzepustowy pozwala na zmniejszenie szumu fazowego o 4...7 dB. Układ jest polecany do zastosowań w systemach wymagających dystrybucji sygnału zegarowego do poszczególnych modułów realizowanych na oddzielnych płytkach drukowanych. Drugim obszarem aplikacji jest taktowanie przetworników A/C i C/A oraz generatorów DDS. Układ LTC6957 jest dostępny w obudowach MSOP-12 i DFN. Jest oferowany w wersjach przemysłowych i samochodowych, o zakresie temperatury pracy -40...+85°C lub -40...+125°C. Ceny hurtowe zaczynają się od 3,60 USD przy zamówieniu od 1000 sztuk. http://goo.gl/GGm3b ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:20:57
NIE Podzespoły PRZEOCZ
koktajl
niusów rząd Rosji. Według przedstawicieli STMicro wspólny projekt inżynieryjny obu firm pozwoli mu wprowadzić na rynek układy z rdzeniami Wi-Fi Quantenny w 2014 r.
Elproma dystrybutorem anten Taoglas STMicro licencjonuje wspierane przez Rosję moduły Wi-Fi do układów SoC STMicroelectronics podpisał w maju br. niewyłączną umowę licencyjną na integrację technologii Wi-Fi typu wieloantenowego MIMO firmy Quantenna Communications z układami systemowymi, do zastosowania w rozrywce, technologiach sieciowych i systemach zabezpieczeń. Na początku 2013 r. Quantenna ogłosiła referencyjny projekt dekodera Wi-Fi, oparty na układzie SoC STiH207 STMicro oraz chipsecie Quantenny QHS710 4x4 MIMO, przeznaczony do usług wielopomieszczeniowych cyfrowych nagrań wideo oraz do telewizji IP oraz VoD. Założoną w 2006 r. Quantennę wspiera szereg funduszy wysokiego ryzyka, wśród nich Sequoia Capital, Venrock, Sigma Partners, Swisscom Ventures czy Telefonica Digital. W 2012 r. Quantenna pozyskała inwestycję 79 mln dol., z czego 40 mln dol. pochodziło od Rusnano, funduszu inwestycyjnego utworzonego przez
Elproma Elektronika została krajowym dystrybutorem produktów firmy Taoglas - dostawcy szerokiego asortymentu anten dla pasm, GSM, ISM, GPS oraz aplikacji NFC, Wi-Fi, WiMAX, a także przewodów i złączy antenowych. Firma oferuje anteny zewnętrzne i wewnętrzne dla aplikacji M2M, motoryzacji, smart-grid, AMR, automatyki domowej, zdalnego monitorowania i aplikacji medycznych. Taoglas został założony w 2004 roku w Irlandii, ma centrale projektowe na całym świecie, zatrudniające doświadczonych projektantów. Dzięki konkurencyjnym rozwiązaniom i utrzymaniu możliwie niskich kosztów produkcji, firma Taoglas znajduje się w światowej czołówce firm z tej branży.
7 edycja targów Expopower za nami W dniach 14-16 maja w Poznaniu odbywały się targi Expopower i Greenpower – imprezy poświęcone prezentacji firm i ich rozwiązań
REKLAMA
ELEKTRONIKA PRAKTYCZNA 8/2013
008-017_newsy.indd 13
13
2013-07-25 10:20:57
NIE PRZEOCZ Zbliża się Energetab
z zakresu energii konwencjonalnej i odnawialnej. Z ofertą pojawiło się na nich blisko 250 wystawców, a liczba odwiedzających zdaniem organizatora przekroczyła 9 tysięcy osób. Expopower i Greenpower mają dość szeroką formułę łączącą energetykę i elektrotechnikę oraz budownictwo energetyczne z technologiami energooszczędnymi, urządzeniami do pomiarów i automatyki oraz detekcji gazów i wycieków, a nawet oświetleniem LED, telekomunikacją energetyczną i sieciami smart grids. Ponadto na targach było można zobaczyć nowinki m.in. z zakresu: osprzętu elektroinstalacyjnego, automatyki budynków, cyfrowych systemów zabezpieczeń, rozdziału energii, systemów prowadzenia przewodów, systemów informatycznych i elektronicznych dla przemysłu, ochrony odgromowej, czy systemów nadzoru nad infrastrukturą techniczną obiektów IT. Wystawcy prezentowali domowe i przemysłowe systemy wodooszczędne, baterie hybrydowe, czy najnowsze lampy LED. Tak szeroka tematyka ma zapewnie na celu zapewnienie szerokiego udziału wystawców na obu imprezach i odpowiedniego rozmachu, niemniej w ten sposób coraz bardziej tracą one swój specjalistyczny czysto energetyczny charakter . Podobnie jak na wielu innych targach wystawy została połączone z seminariami i warsztatami, których sumarycznie było około 20. Cieszyły się one powodzeniem, zwłaszcza te o tematyce związanej z inteligentnym budynkiem, silnikom w przemyśle oraz efektywności energetycznej. Licznie odwiedzane były także spotkania współorganizowane przez SEP jak „Energooszczędność w oświetleniu” oraz „Instalacje elektryczne niskiego, średniego i wysokiego napięcia”. Wśród firm z obszaru elektroniki które pojawiły się w Poznaniu można wymienić m.in. Astat, Dacpol, Elmark, Merazet, Phoenix Contact, Relpol, Wago Elwag i Wobit.
Świdnicka firma inwestuje w Zakłady Elektronowe Lamina Agencja Rozwoju Przemysłu sprzedała w maju br. pakiet ponad 63% akcji Zakładów Elektronowych „Lamina” z Piaseczna świdnickiemu przedsiębiorstwu Kubara Investment House. Na mocy podpisanej umowy świdnicki inwestor przejmie blisko 670 tys. akcji stanowiących 63,56% kapitału firmy Lamina. Rzeczniczka prasowa ARP Roma Sarzyńska-Przeciechowska powiedziała PAP w środę, że wartość podpisanej umowy jest objęta tajemnicą handlową. Lamina zajmuje się produkcją elementów elektronicznych, obróbką i nakładaniem powłok na metale oraz wynajmem i zarządzaniem nieruchomościami. Firma wytwarza także m.in. lampy mikrofalowe i półprzewodnikowe przyrządy mocy. Świadczy także usługi gwarancyjne związane z prowadzoną produkcją oraz usługi galwanizerskie. Odbiorcą jej produktów są przedsiębiorstwa krajowe i zagraniczne oraz polskie wojsko. Zadowolony ze sprzedaży akcji był prezes Agencji Rozwoju Przemysłu Wojciech Dąbrowski, który zaznaczył, że dzięki temu Lamina otrzyma szansę na dalszy, stabilny rozwój. „Porozumienie o sprzedaży akcji zabezpiecza także interesy państwa. Zobowiązuje bowiem inwestora do utrzymania zdolności remontowej, obsługowej i serwisowej w okresie eksploatacji wszystkich wyrobów dostarczanych klientom z sektora obronnego”, dodał prezes, cytowany na stronie internetowej ARP. Od kilku lat Zakłady Elektroniczne Lamina SA w Piasecznie osiągają dodatnie wyniki finansowe. Ich przychody ze sprzedaży w 2012 r. przekroczyły 30 mln zł, a zysk netto - ponad 1,5 mln zł. Spółka zatrudnia 160 osób, w tym 130 na stanowiskach produkcyjnych.
14
008-017_newsy.indd 14
Tegoroczny Energetab odbędzie się w dniach od 17 do 19 września i zapowiada się bardzo interesująco, organizatorzy praktycznie kończą przyjmowanie zgłoszeń wystawców, gdyż ponad 90% terenów ekspozycyjnych zostało już przez nich zarezerwowanych. Wśród nich znajdujemy wielu dobrze znanych na krajowym rynku dostawców najbardziej zaawansowanych technologicznie maszyn, urządzeń i aparatów, służących niezawodnemu dostarczaniu energii elektrycznej. Zgłosiło się też wiele nowych firm, chcących zademonstrować na targach najnowsze rozwiązania, szczególnie związane z zastosowaniem odnawialnych źródeł energii czy podniesieniem efektywności energetycznej wytwarzania bądź użytkowania energii.
Polski Holding Obronny zamiast Grupy Bumar Po 10 latach przestała istnieć Grupa Bumar - zastąpił ją Polski Holding Obronny, co ma symbolicznie zakończyć etap przekształceń i restrukturyzacji tej firmy, w tym okres redukcji zatrudnienia. Ostatni rok działania Grupy Bumar przyniósł 32 mln zysku netto, podczas gry rok wcześniej wynik był ujemny (120 mln zł straty). Polski Holding Obronny tworzy - jak poprzednio Grupę Bumar - 40 spółek zatrudniających ok. 10 tys. osób.
Zmiany w krajobrazie dystrybucji Krajowe firmy dystrybucyjne w ostatnich miesiącach coraz liczniej poszerzają swoje oferty o nowe przedstawicielstwa. Poniżej zamieszczamy listę zmian dostrzeżonych w czasie ostatniego miesiąca: – Omron nawiązał współpracę z firmę TME w zakresie dystrybucji przełączników, przekaźników, złączy i komponentów czujników na Polskę, Czechy, Słowację, Węgry i Rumunię. – Masters został oficjalnym dystrybutorem firmy Camerson – producenta transformatorów zalewanych. – Meratronik – podpisał umowę dystrybucyjną z firmą Pasternack - producenta komponentów w.cz. i akcesoriów mikrofalowych: złączy, kabli, filtrów, anten itp. – Micros nawiązał współpracę z firmą Osram i będzie sprzedawał LED-owe zamienniki żarówek tego wytwórcy. – PB Technik podpisał umowę dystrybucyjną z firmą Techcon Systems, która od 1961 roku zajmuje się dostarczaniem rozwiązań dla przemysłu w zakresie urządzeń oraz akcesoriów do dozowania. Wśród produktów firmy Techcon Systems można znaleźć dozowniki ręczne, igły, strzykawki, pistolety oraz zawory dozujące.
Seminaria, konferencje – przegląd minionych wydarzeń Publikujemy skrótową listę wydarzeń, jakie odbyły się w ostatnim okresie, po to aby czytelnicy mieli wgląd w to co dzieje się w branży i nawet jeśli nie wiedzieli o jakiś warsztatach lub konferencji, nie byli w stanie dotrzeć z uwagi na obowiązki lub odległość, mogli zwrócić się do dystrybutora o materiały. Jest to także sposób, aby nie przeoczyć kolejnych spotkań, bo wiele z nich ma charakter cykliczny, często miasta, w których odbywają się imprezy zmieniają się. Przypominamy, że zapowiedzi seminariów, szkoleń konferencji i targów pojawiają się regularnie i z wyprzedzeniem na portalu ElektronikaB2B.pl i w codziennym newsletterze. JM Elektronik zorganizował w drugiej połowie czerwca kolejne szkolenie z zakresu rozwiązań układowych firmy Atmel dla systemów zasilanych z baterii. Spotkanie obejmowało też pracę z system RTOS na platformie Atmel SAM4 Cortex-M4 w oparciu o zestaw ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:20:58
Koktajl Podzespoły niusów ewaluacyjny. Imprezy odbyły się w Warszawie, Krakowie i Wrocławiu. Przemysłowy Instytut Automatyki i Pomiarów PIAP zorganizował 24 maja drugą „Noc Robotów”, podczas której prezentowano najnowsze osiągnięcia polskich inżynierów, naukowców i studentów w dziedzinie robotyki. AMB zorganizowała 18-19 czerwca w Warszawie i Białymstoku kolejne szkolenia z zakresu technologii powlekania selektywnego układów na płytkach drukowanych (systemy dozujące i aktywacja powierzchni) na przykładzie sprzętu firmy Nordson Asymtek. Astat przeprowadził w Poznaniu w pierwszej połowie czerwca szkolenia z zakresu ochrony przepięciowej instalacji i urządzeń oraz we współpracy z Philips Healthcare w Warszawie i Poznaniu seminaria omawiające zagadnienia związane z testowaniem urządzeń medycznych w oparciu o standardy EN62353 oraz EN60601 (aparatura pomiarowa, procedury, problemy). Avnet Silica razem z firmą Microsoft zorganizował spotkanie pt. Windows Embedded 8 Launch Event, którego tematem przewodnim był system operacyjny Windows Embedded 8 oraz Windows Embedded Compact 2013. FlowCAD, dystrybutor firmy Teledyne LeCroy, zorganizował 23 maja seminarium dotyczące urządzęń pomiarowych do analizy protokołów PCI Express, SAS/SATA, USB3 oraz FibreChannel. Tomsad, zrealizował 8 czerwca w Warszawie szkolenie pokazujące możliwości dystrybuowanych przez firmę programatorów układów scalonych. Spotkanie było kierowane do pracowników serwisów i warsztatów samochodowych. Sonel zorganizował serię spotkań prezentacyjnych z zakresu możliwości pomiarów i badań instalacji elektrycznych i aparatury pomiarowej do takich celów. Odbywały się one w drugiej połowie czerwca w Rzeszowie, Opolu, Katowicach i Gdańsku.
Elmark Automatyka firmą przyjazną środowisku Elmark Automatyka otrzymała certyfikat „Firma przyjazna środowisku”, potwierdzający, że firma spełnia wszystkie ustawowe wymogi dotyczące ochrony środowiska w zakresie: recyklingu opakowań, recyklingu zużytego sprzętu elektrycznego i elektronicznego oraz recyklingu baterii i akumulatorów.
Vigo zwiększa możliwości produkcyjne Firma Vigo System, producent detektorów promieniowania podczerwonego i dostawca aparatury pomiarowej, ukończyła budowę nowego budynku laboratoryjno-produkcyjnego zlokalizowanego na terenie dawnej fabryki kabli w Ożarowie Mazowieckim. Tym samym znacząco wzrosły możliwości produkcyjne firmy.
REKLAMA
ELEKTRONIKA PRAKTYCZNA 8/2013
008-017_newsy.indd 15
15
2013-07-25 10:20:58
NIE PRZEOCZ
forum w Internecie
forum.ep.com.pl Uwaga: pełne kody źródłowe, rysunki i zdjęcia są dostępne na stronie internetowej forum.ep.com.pl
Przedwzmacniacz NE5532 kilka pytań # born2die: Witam. W planach mam złożenie przedwzmacniacza na NE5532. Otóż mam kilka pytań. - Czy na wejściu nie powinien być kondensator np 1 μF MKT chroniący przed składową stałą źródła - Czy potencjometr wzmocnienia mogę umieścić za cały układem, było by to sporo wygodniejsze w projektowaniu płytki a raczej jej przerabianiu gdyż pierwsze pomysły już przeniosłem do Eagla. - Czy może ktoś zerknąć obiektywnym okiem na projekt, zawsze świeża głowa coś nowego doda. Schemat: www.eleccircuit.com/wp-content/u ... 532-x2.jpg PCB w załączniku
wiednim do tego celu podwójnym M+N i zrobione. Jednak w dzisiejszych czasach warto mieć jednak regulację wzmocnienia na wejściu, bo nowoczesne nagrania, dobijane do zera, mogą mieć na wyjściu CD poziom 3,5 Vpp, co po wzmocnieniu dołu w barwie o 20 dB (czyli dziesięć razy) powinno skutkować teoretycznie 35 Vpp na wyjściu, co przy zasilaniu ±12-15 V jest raczej mało realne ;) Czyli można stosować regulację poziomu na wyjściu, ale ze świadomością, że maksymalne podbijanie korektorem może prowadzić do zniekształceń. # born2die: Troszkę poprawię. Przedwzmacniacz ma być do końcówki mocy podłączony o czułości około 200 mV. Natomiast źródłem będzie mp3 bądź smartphone. Koszt potencjometru M+N jest chyba zbyt duży. Nie mogę zrobić tego jak jest na oryginalnym schemacie, czyli ten zwykły, pojedynczy? # matiz: Tak czy inaczej czułość jest za duża, z grajotka wychodzi też około 1 VRMS, więc wprawdzie mniejsze prawdopodobieństwo przesterowania przy wzmocnieniu 0 dB, ale nadal taki balans jest trochę bez sensu niestety. W dodatku jak dasz na wyjściu potencjometr, to i na wyjściu musisz dać ten balans - czy impedancja wyjściowa nie będzie za duża? Oczywiście, ten balans będzie działał, bo i tak będzie w środku ;) Jak koszt jest problemem, to nie rób balansu albo daj dwa potencjometry do każdego kanału oddzielnie i już.
# matiz: Zmień projekt - ten zawiera dziwne błędy. 1. Impedancja wejściowa pierwszego stopnia to 1 k, a potencjometry mają po 100 k. Impedancja jest za niska, jakoś będzie działać, ale potencjometry będą działać dziwnie. 2. Balans zależy od położenia potencjometru głośności - w położeniu maksymalnym balans praktycznie nie będzie działał (potencjometr głośności zresztą i tak nigdy nie będzie w położeniu maks, wykorzystasz parę % jego kąta obrotu) 3. Wzmocnienie pierwszego stopnia to 40 dB - jest to w zasadzie wzmacniacz mikrofonowy (za czym przemawia impedancja wejściowa 1 k ;) ), nie możesz dać potencjometru na końcu, bo całość będzie cały czas przesterowana. 4. Kondensator na wejściu by nie zaszkodził, ale przy impedancji wejściowej 1 k nie 1 μ tylko dziesięć razy większy 5. To już czepianie, ale potencjometr od basu musi być bardzo dobrej jakości, a i tak całość może trzeszczeć, warto polaryzować oddzielnym opornikiem, a przez mostek barwy tonu niech idzie tylko składowa zmienna. # rafal.220: Zastosowanie filtru dolnoprzepustowego zapewne ochroni układ przed stałym napięciem wejściowym, jednak będzie się to wiązać z wytłumieniem części pasma sygnału wejściowego. Co do potencjometru na wyjściu, to niby można z tym że ustawienie na stałe zbyt dużego wzmocnienia na wejściu układu może się wiązać z niechcianymi konsekwencjami. (układ będzie wzmacniał wszystkie „śmieci” które mogą być słyszalne.) # born2die: Czyli zmienić w ogóle projekt?? Nie znalazłem już wiecej schematów w internecie. Chyba, że wy macie cos zachomikowane na waszych HDD # matiz: Schemat jest OK, zmienić trzeba wartości elementów. Rozumiem, że to ma być przedwzmacniacz liniowy, na przykład do CD, powinien mieć wzmocnienie 1:1 a nie 100:1, tak więc najpierw oporniki na wejściu 1 k zamieniamy na 100 k i największy problem z głowy. Teraz można na wejście dać kondensatory 1 u, jak chciałeś, a układ regulacji poziomu i balansu przenieść na wyjście, zastępując potencjometr balansu odpo-
16
008-017_newsy.indd 16
# rafal.220: Jeśli ten przedwzmacniacz będzie podłączony do końcówki mocy, a ta zapewne ma jakiś filtr dolnoprzepustowy+ograniczenie trzasku w czasie załączania, to możesz odpuścić sobie kondensator na wejściu. Co do potencjometrów, to powiedz mi czy one na prawdę muszą znajdować się na wyjściu? Nie prościej przykręcić do obudow y+ gałki? (połączenia możesz sobie zrobić przewodami). # pajaczek: rafal.220 napisał(a):Zastosowanie filtru dolnoprzepustowego zapewne ochroni układ przed stałym napięciem wejściowym Czy tylko mi to sformułowanie wydaje się... ekhem... dziwne? # przez rafal.220: (…) A co tu jest dziwnego? Skoro na wejściu masz stałe to i na wyjściu + wzmocnienie. (w końcówce mocy podłączonej do głośnika możesz usmażyć cewkę przy odrobinie „szczęścia”). # pajaczek: To powtórzę wolniej. rafal.220 napisał(a):Zastosowanie filtru dolnoprzepustowego zapewne ochroni układ przed stałym napięciem wejściowym http://pl.wikipedia.org/wiki/Filtr_dolnoprzepustowy Czy może być jakaś częstotliwość poniżej zerowej - napięcia stałego, którą filtr przepuści, gdy jakimś cudem ustalić warunki pracy na takie, które odcinają napięcie stałe? Nie wiem... Chętnie poznam nową teorię. # born2die: Mnie nauczyciel w szkole na dodatkowych zajęciach z tej bardziej praktycznej elektroniki (w drugiej klasie jest większość teorii) tłumaczył, że kondensator na wejściu chroni źródło, czyli mp3 lub inne przed napięciem stałym. No chyba wszyscy wiedza, że dla stałego kondensator to przerwa. Wiec chyba ten filtr i inne nie ochronią nas przed stałym, ale mogę się mylić. Żeby nie robić offtopu; przed chwilką napatoczyło mi się coś takiego na rączki. Co o tym sądzicie? # rafal.220: To, co przedstawiłeś będzie obcinać pasmo górne (zwykle realizowane w scalaku). Rozchodzi się o pasmo pośrednie, a raczej ograniczenie wartości amplitudy w częstotliwości poniżej 20 Hz, a tym samym napięcia stałego (szeregowe połączenie rezystancji wejściowej z pojemnością). # pajaczek: born2die napisał(a):Wiec chyba ten filtr i inne nie ochornia nas przed stałym Ależ oczywiście, że ochronią... Pod warunkiem, że będą to filtry górno-
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:21:00
SPRZĘŻENIEPodzespoły ZWROTNE przepustowe (lub dolnozaporowe, jak kto woli). Prostą formą takiego filtru jest właśnie kondensator na wejściu tylko włączony trochę inaczej niż w pokazanym wyżej filtrze dolnoprzepustowym (ale zapewne tak, jak miałeś to na myśli, oraz tak, jak Cię uczyli na zajęciach).
proponowałem 100 k, więc bez problemu i 0,1 μ starczy. Już widzę schemat - tam jest 2,2 μ i 100 k - overkill IMO, ale jak kto lubi. Tak jest za to dobry balans, i ogólnie lepsze to. Tyle, że elektrolit niespolaryzowany to słaby pomysł.
# matiz: Jasne, że chodzi o filtr dolnozaporowy albo górnoprzepustowy. Taki kondensator się przyda, ale źródła sygnału, jakie będziesz stosował, czyli wyjścia słuchawkowe, i tak muszą mieć „zero na wyjściu”. Dla bezpieczeństwa i ponieważ są tanie, ja bym dał 0,22 μ i po sprawie. Schemat tego nowego gdzie w jpg masz?
# born2die: A elektrolit spolaryzowany może być? Ogólnie warto robić ten przedwzmacniacz i nie będzie wiecej psuł niż pomagał. Czy jakbym wrzucił płytkę luknęlibyście czy wszystko jest ok?
# rafal.220: rafal.220 napisał(a):To co przedstawiłeś będzie obcinać pasmo górne. (zwykle realizowane w scalaku ) Rozchodzi się o pasmo pośrednie, a raczej ograniczenie wartości amplitudy w częstotliwości poniżej 20 Hz, a tym samym napięcia stałego. (szeregowe połączenie rezystancji wejściowej z pojemnością) pajaczek napisał(a): ależ oczywiście że ochronią... pod warunkiem że będą to filtry górnoprzepustowe (lub dolnozaporowe jak kto woli). Prostą formą takiego filtru jest właśnie kondensator na wejściu tylko włączony trochę inaczej niż w pokazanym wyżej filtrze dolnoprzepustowym (ale zapewne tak, jak miałeś to na myśli, oraz tak, jak Cię uczyli na zajęciach). Przecież o tym cały czas mówię matiz napisał(a):Jasne, że chodzi o filtr dolnozaporowy albo górnoprzepustowy Taki kondensator się przyda, ale źródła sygnału, jakie będziesz stosował, czyli wyjścia słuchawkowe, i tak muszą mieć „zero na wyjściu”. Dla bezpieczeństwa i ponieważ są tanie, ja bym dał 0,22 μ i po sprawie. Schemat tego nowego gdzie w jpg masz? Nie za mało? (jaka będzie jakość) # pajaczek: Oj Rafał Rafał... Przewiń sobie do góry i zobacz, że uparcie pisałeś o filtrze dolnoprzepustowym... czyli dokładnie odwrotności... Ale może to nie robi Ci różnicy? Ok. to pytanie retoryczne, zostawmy już to, kto będzie chciał to sobie sam na własny użytek sprawdzi co jaki filtr filtruje i jak jest zbudowany. Dla jasności... Proszę nie drążyć tematu filtrów (chyba, że w kontekście propozycji do tytułowego wzmacniacza). # born2die: nie każdy ma eagla, a nawet ci co mają, nie muszą mieć akurat na tej maszynie z której piszą... tak więc zamieszczanie w formie pliku graficznego jest dobrym pomysłem. # rafal.220: pajaczek napisał(a): Oj Rafał Rafał... przewiń sobie do góry i zobacz że uparcie pisałeś o filtrze dolnoprzepustowym... czyli dokładnie odwrotności... ale może to nie robi Ci różnicy? Ok. Jest różnica z tym, że proporcja jest tak niewielka, że nie wiadomo o czym mówić (średnioprzepustowy czy może górnoprzepustowy). Wiadomo, że górne pasmo obetnie sam scalak, a dolne powinno wynosić ok. 20 Hz, (ostatecznie i tak wszystko będzie zależeć od filtrów RC). # born2die: A można zamiast mkt 2,2 μF na wejściu i na wyjściu dać elektrolita? # rafal.220: Tak można, a najlepiej daj bipolarny, albo bynajmniej dwa elektrolity 4,7 μF połączone szeregowo przeciwsobne... (nie prościej mkt? Charakterystyka też jest lepsza ). Mam też pytanie? (skoro zamierzasz zastosować kondensator na wejściu, to po co ci dodatkowy na wyjściu? (zdublujesz ten sam element który zwykle znajduje się na wejściu końcówki mocy kosztem jakości sygnału wejściowego) # born2die: Hmm. Chyba nie za szybko zmieniam decyzje. Postanowiłem zrobić tego preampa którego zamieściłem ostatnio czy na 3 ne5532 oraz w pewnym stopniu smd. Tam według tego projektu jest kondensator na wejściu i wyjściu wiec w to nie ingerowałem. Chyba, ze inna pojemność była by lepsza. Dlaczego elektrolit, ano dlatego, że u sprzedawcy z znanego portalu aukcyjnego u którego biorę rezystorki smd nie ma 2,2 μF w Mkt ma tylko elektrolit Jamicona. # matiz: rafal.220 napisał(a): matiz napisał(a):ja bym dał 0,22 μ i po sprawie. Schemat tego nowego gdzie w jpg masz? Nie za mało? (jaka będzie jakość) Nie wiem, jaka będzie „jakość”, bo nie widzę schematu a więc nie znam impedancji wejściowej, ale dla 0,22 μ i częstotliwości 20 Hz wystarczy 33 k, a mniej to już nie bardzo przedzwmacniacz liniowy konsumencki...
# rafal.220: Generalnie powiem tak. Jeśli ten preamp nie jest przeznaczony do mikrofonu bądź przetworników dźwięku, to na wejściu daj potencjometry 10 K oraz do balansu 10 K. Z doświadczenia wiem iż przy zbyt dużych wzmocnieniach przy użyciu potencjometrów 100 k może być słyszalne buczenie. (czasem wystarczy gorszej jakości kabel sygnałowy, albo słabe jakościowo zasilanie odtwarzacza mp3) Stosowanie tak dużych wzmocnień będzie wymagać dobrego ekranowania oraz bardzo dobrego zasilania symetrycznego preampa) Jeśli do wzmocnienia dasz potencjometry 10 k, to na wejściu możesz śmiało dać kondensator 2,2 μF przez szeregowy rezystor 1 k. Co do typu kondensatora, to może być zwykły elektrolit, chodź zaleca się bipolarny. :) # born2die: A nie mogę po prostu zamiast 100 k dać 10 k od wzmocnienia i nie zamieniać go miejscami. Nie będzie prościej?? Jak się upieracie tak do tych bipolarów to mam 2×1 μF i 2×2,2 μF bipolarne. Gdzie mniej zaszkodzi wciskając 1 μF? Właśnie zasilanie. U mnie wygląda to tak mostek 1000 μF na stronę 100 nf na wejściach i wyjściach stabilizatorów lm7812 i lm7912. Przewody ekranowane na wejściu i wyjściu preampa, nie jakaś tam skrętka # rafal.220: Na wyjściach stabilizatorów napięcia dołóż jeszcze kondensator 10 μF oraz kondensator 100 nF tuż przy nóżkach zasilających wzmacniacz NE5532 Co do kondensatora bipolarnego, to może też być 1 μF Co do potencjometrów, to tak jak pisałem wcześniej zamiast 100 k daj 10 k (na wejściu oraz balans, by zachować odpowiednią proporcję ) # born2die: OK. Jednak znalazłem MKT 2×1 μF i 2×2,2 μF wiec je zamontuje. Mam pytanie dotyczące potencjometrów. Kolega rafal rzucił temat na wokandę, że lepsze są potencjometry 10 k bo nie brumią przy większym wysterowaniu. Nie widzę przeszkód takie założę ale czy nie mogą zostać na swoim miejscu w schemacie tylko koniecznie muszę ja na wejście przenosić? # rafal.220: MatyAS napisał(a):I najważniejsze - w każdym układzie będącym częścią toru sygnałowego (odłączaną) kondensator na wejściu i wyjściu być musi. Taka zasada. To teraz wytłumacz dlaczego muszą być na wyjściu? Oczywiście rozumiemy na czym polega driving, lecz to są tak znikome wartości z którymi poradzi sobie filtr stopnia wejściowego końcówki mocy, czy też innego urządzenia. Zwróć uwagę na to, że jest to preamp zasilany napięciem symetrycznym, w dodatku masz na wyjściu rezystor ograniczający, a więc po co ci kolejny kondensator wprowadzający tzw. „zamuł”?? born2die napisał(a):Nie widzę przeszkód takie założę ale czy nie mogą zostać na swoim miejscu w schemacie tylko koniecznie muszę ja na wejście przenosić? No jeśli chciał byś je zamontować na wyjściu, to na pewno wartości owych potencjometrów będą znacznie mniejsze (470R + rezystor ochronny 470R) Czemu tak się uparłeś na to wyjście? Nie możesz po prostu zamontować odpowiednich potencjometrów na wejściu (montaż śrubunkowy) połączonych z PCB przewodami? # born2die: Ponieważ schludniej to wygląda. Dobrze, przerobie to pcb żeby na wejściu były te dwa potencjometry. Jedno mnie nurtuje matiz napisał, że w tym ostatnim schemacie jest dobry balans. Ciekawi mnie czym on się różni od tego na wejściu? # rafal.220: Nie wiem czemu tak napisał. Być może miał na myśli zabrudzone bądź zdarte ścieżki węglowe potencjometrów. (przy dużym wzmocnieniu wejściowym może dość do „przesłuchów” pomiędzy lewym a prawym kanałem. Suwak łączy się z masą, a zwiększenie rezystancji styku ze ścieżką może mieć wpływ na takie zjawisko)
http://ep.com.pl ELEKTRONIKA PRAKTYCZNA 8/2013
008-017_newsy.indd 17
17
2013-07-25 10:21:00
PROJEKTY
Wyciszacz odbiornika TV
Sterowany akustycznie nadajnik podczerwieni Rola reklam emitowanych w kanałach telewizyjnych jest oczywista. Aby spełnić oczekiwania reklamodawców stacje telewizyjne zmuszone są do stosowania szeregu zabiegów technicznych, zwiekszających ich skuteczność. Reklamy stały się głośne i natarczywe. Ten projekt powstał jako odpowiedź na potrzebę znalezienia najprostszego z możliwych sposobów wyciszania odbiornika TV w czasie emisji reklam. Rekomendacje: prezentowane urządzenie jest dedykowane również osobom, które chcą zdalnie sterować urządzeniami bez użycia jakichkolwiek podręcznych gadżetów.
Zbudowanie niezawodnie działającego urządzenia automatycznie rozpoznającego moment rozpoczęcia i zakończenia emisji reklamy telewizyjnej jest trudne. W prezentowanym rozwiązaniu zostało zastosowane „uproszczone” podejście. Włączenie i wyłączenie głosu w odbiorniku TV jest inicjowane podwójnym klaśnięciem w dłonie. W fazie określania założeń i realizacji projektu szczególny nacisk położono na stworzenie rozwiązania o dużej skuteczności działania. Urządzenie ma dużą czułość i reaguje na klask o umiarkowanej głośności. Równocześnie skutecznie ignoruje wszelkie sygnały akustyczne niezgodne z charakterystyczą czasową i częstotliwościową klasku, takie jak: śmiech, krzyk, gwizd, głośna rozmowa, muzyka. W bardzo dobrym stopniu odrzuca dźwięki o charakterystyce zbliżonej do klasku takie jak upadek przedmiotu, stuknięcia o talerz, aplauz. Od strony funkcjonalnej omawiane urządzenie jest sterownikiem łączącym funkcję selektywnego detektora dwuklasku z funkcją uniwersalnego pilota emitującego pojedynczy, wzorcowy kod podczerwieni. Sterownik współpracuje teoretycznie ze wszystkimi odbiornikami telewizyjnymi obsługiwanymi pilotem.
18
018-026_tvmuter.indd 18
AVT 5406 Montaż Schemat ideowy sterownika pokazano na rysunku 1, natomiast montażowy na rysunku 2. Montaż urządzenia należy wykonać z bardzo dużą starannością, ze szczególnym zwróceniem uwagi na poprawne dopasowanie wartości elementów pasywnych. Montaż należy rozpocząć od wlutowania elementów obwodów zasilania. Poprawność napięć najlepiej jest zmierzyć na nóżkach układu ICL7660. Woltomierz powinien wskazywać +5 V na nóżce 8 oraz około -4,8 V na nóżce 5. Następnie, zgodnie z zasadami montażu, należy wlutować pozostałe elementy (zalecane podstawki pod układy scalone). Urządzenie należy zmontować przy użyciu komponentów wysokiej jakości. Ma to szczególne znaczenie w przypadku zastosowanych filtrów, gdzie dla uzyskania parametrów stałych w czasie zalecane jest użycie elementów biernych wysokiej jakości i jeśli możliwe o tolerancji 5…10%. Ze względu na pracę z pełnym pasmem akustycznym mikrofon powinien być zamontowany w obudowie w takim miejscu, aby żaden z elementów obudowy nie tłumił docierającego do niego sygnału akustycznego. Należy również pamiętać o jego właściwej polaryzacji. Przed wlutowaniem diód podczerwieni przemyśle-
W ofercie AVT* AVT-5406 A Podstawowe informacje: • Zasilanie z zasilacza wtyczkowego 5 V DC. • Tryb nauki kodu „mute” dowolnego odbiornika TV. • Nadawanie kodu „mute” po odebraniu dwóch klaśnięć. • Rozbudowany algorytm analizy dźwięku. • Oprogramowanie w języku Bascom AVR, mikrokontroler ATmega168 Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Projekty pokrewne na CD/FTP: (wymienione artykuły są w całości dostępne na CD)
AVT-582
Dręczyciel sprzętu TV-AV EP 9/2004 AVT-721 Klaskacz – akustyczne zdalne sterowanie EdW 5/2004 AVT-2405 Przełącznik akustyczny EdW 2/2000
* Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:22:46
Wyciszacz odbiornika TV
Rysunek 1. Schemat ideowy wyciszacza odbiornika TV ELEKTRONIKA PRAKTYCZNA 8/2013
018-026_tvmuter.indd 19
19
2013-07-25 10:22:47
PROJEKTY nia wymaga ich lokalizacja w obudowie tak, aby zapewnić bezpośredni kontakt optyczny z odbiornikiem TV. Ciekawą propozycją jest umieszczenie wszystkich elementów komunikacji za ażurową zasłoną przepuszczającą bez przeszkód sygnały akustyczne oraz optyczne. Docelowo zmontowany sterownik należy umieścić zdala od silnych źródeł akustycznych oraz w linii optycznej czujnika IR odbiornika TV. Zmontowane urządzenie wymaga wgrania wzorca kodu pilota i ewentualnie innych czynności konfiguracyjnych. Procedury są opisane w ramce. Zostały pomyślane w taki sposób, aby były intuicyjne. Po włączeniu urządzenia należy obserwować zieloną diodę. Przy ustawieniach domyślnych („fabrycznych”) sterownik powinien reagować mignięciem diody na głośne dźwięki takie jak klask, głośna muzyka, gwizd i równocześnie nie reagować na typowe dźwięki otoczenia, takie jak mowa, pracujący telewizor czy też zestaw muzyczny. Ze względu na rozrzut parametrów elementów biernych oraz mikrofonu czasami pojawia się konieczność dopasowania progu czułości urządzenia. Ewentualną korektę przeprowadza się za pomocą krótkiego przyciśnięcia przycisków [up] i [down]. Zasadniczą czynnością przygotowawczą jest rejestracja w urządzeniu wzorcowego kodu pilota. Należy pamiętać, aby pilot był skierowany w linii prostej w stronę odbiornika podczerwieni sterownika. Jego odległość nie powinna być mniejsza niż kilkadziesiąt centymetrów. Dla jednego cyklu programowania czas przesyłu danych z pilota wynosi nie dłużej niż sekundę. Rozpoczęcie odbioru sygnalizuje dioda pomarańczowa. Należy pamiętać, aby nie robić przerwy do momentu jej zgaśnięcia zgodnie z opisem zawartym w ramce. W przeciwnym wypadku kod nie zostanie zapamiętany prawidłowo.
Rysunek 2. Schemat montażowy wyciszacza odbiornika TV Przygotowanie do pracy Programowanie sterownika kodem pilota. 1. Naciśnij równocześnie przyciski [up] i [down]. Trzymając odczekaj około 3 sekundy. 2. Kiedy zaświeci się zielona dioda uwolnij oba przyciski. Masz ok. 8 sekund na rozpoczęcie programowania. 3. Z odległości minimum 50 cm skieruj diodę nadawczą pilota w stronę odbiornika IR sterownika. 4. Naciśnij przycisk ‚MUTE’. Trzymaj w tej pozycji do momentu zgaszenia pomarańczowej diody. (Zapis kodu do nieulotnej pamięci sygnalizowany jest impulsowym światłem zielonej diody. 5. Powtórz krok 4. 6. Jeśli programowanie przebiegło poprawnie zgaśnie zielona dioda. Obie diody mrugną trzykrotnie. Urządzenie wykona cykl restartu. Sterownik jest zaprogramowany. 7. Jeśli nie jest spełniony warunek 6. to system wykona restart. W takim przypadku programowanie kodu należy rozpocząć od początku to należy rozpocząć programowanie od początku. OPCJA. Obniżenie progu reakcji (zwiększenie czułości urządzenia). 1. Krótko przyciśnij przycisk [down]. Zostanie potwierdzone mrugnięciem pomarańczowej diody. 2. Oceń czy urządzenie reaguje na głośne dźwięki. Reakcja jest sygnalizowana mignięciem zielonej diody. 3. Jeśli nie powtórz krok 1. i 2. OPCJA. Podniesienie progu reakcji (zmniejszenie czułości urządzenia). 1. Krótko przyciśnij przycisk [up]. Zostanie potwierdzone mrugnięciem zielonej diody. 2. Oceń czy urządzenie reaguje na głośne dźwięki. Reakcja jest sygnalizowana mrugnięciem zielonej diody. 3. Jeśli nie powtórz krok 1. i 2. OPCJA. Powrót do ustawień domyślnych 1. Naciśnij równocześnie przyciski [up] i [down]. Trzymając je odczekaj około 8 sekund. 2. Kiedy po 8 sekundach migną obie diody sygnalizacyjne uwolnij oba przyciski. 3. Urządzenie wykonuje reset do ustawień domyślnych.W tym czasie obie diody sygnalizacyjne święcą przez 5 sekund 4. Następuje automatyczny restart urządzenia
Ze względu na toggle bit, który występuje w niektórych protokołach IR (np. RC5) pełna procedura programowania zawsze wymaga
dwukrotnego przesłania kodu z pilota. Należy pamiętać, aby to były dwa następujące po sobie przyciśnięcia przycisku pilota.
Tabela 1. Obsługa przycisków [down]
[up]
Funkcja
3 sek
3 sek
1 sek
-
-
1 sek
8 sek
8 sek
Powrót do ustawień „fabrycznych” (reset)
8 sek
-
Wyłączenie testu monotoniczności sygnału
-
8sek
Wyłączenie testu korelacji między kanałem głównym i pomocniczym
20
018-026_tvmuter.indd 20
Zapamiętywanie kodu pilota. Inkrementalne obniżenie progu reakcji na klask Inkrementalne podniesienie progu reakcji na klask
Konsekwencja aktywacji Kod zaprogramowany. Tor transmisyjny przygotowany do pracy. Większa wrażliwość na dźwięki otoczenia Mniejsza wrażliwość na dźwięki otoczenia Ustawiona domyślna wartość czułości na klask. Włączone wszystkie procedury testowe dźwięku. Szersza klasa dźwięków interpretowana jako klask. Wrażliwość na dźwięki pozbawione niskich harmonicznych.
Użycie Jednorazowo przy pierwszym uruchomieniu urządzenia lub przy zamianie kodu pilota
Uwagi Procedurę należy uruchomić ponownie również przy niepoprawnym zaprogramowaniu
Opcja Opcja
W celu powrotu do ustawień domyślnych
W wyjątkowych przypadkach (!).
Rośnie podatność na dźwięki obce.
W wyjątkowych przypadkach (!).
Rośnie podatność na dźwięki obce.
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:22:47
Wyciszacz odbiornika TV Eksploatacja Od momentu zaprogramowania (opis w ramce) urządzenie jest gotowe do pracy. Każdorazowe zaświecenie zielonej diody sygnalizuje reakcję urządzenia na dźwięk i rozpoczęcie jego analizy. Jeśli sterownik poprawnie zidentyfikuje podwójne klaśnięcie w dłonie następuje transmisja zapamiętanego kodu pilota. Moment rozpoczęcia i czas trwania transmisji sygnalizuje pomarańczowa dioda. Urządzenie najskuteczniej reaguje na klask pełny, kiedy złączone palce jednej ręki uderzają w środek dłoni drugiej ręki. Brzmienie klasku należy dobrać eksperymentalnie. Ważną rzeczą jest, aby oba klaśnięcia były do siebie podobne co do sposobu wydobywania i natężenia dźwięku. Podyktowane jest to zastosowanym algorytmem, który porównuje stopień podobieństwa obu klaśnięć i na tej podstawie eliminuje dźwięki obce. Klask niekoniecznie musi być bardzo głośny gdyż może nastąpić przesterowanie sygnału i urządzenie nie zidentyfikuje dwuklasku.
Rysunek 3. Schemat blokowy wyciszacza odbiornika TV
Wskazówki eksploatacyjne W przypadku odbiorników telewizyjnych pracujących w oparciu o protokół wykorzystujący toggle bit przy naprzemiennym posługiwaniu się pilotem i sterownikiem mogą wystąpić tzw. przebiegi jałowe. Może oznaczać to konieczność ponownego naciśnięcia przycisku MUTE albo ponownego dwuklasku. Zjawisko trudne do rozwiązania na drodze technicznej nie jest w rzeczywistości uciążliwe, przez co nie zmniejsza walorów użytkowych urządzenia. Z myślą o nietypowych przypadkach została przygotowana procedura niezależnej dezaktywacji jednego z dwóch testów rozpoznania dwuklasku. Przytrzymanie przycisku [down] przez minimum 8 sekund wyłącza test badający monotoniczność obwiedni sygnału. Opcję tę stosuje się wyjątkowo, jeśli jest taka potrzeba w pomieszczeniach o dużym pogłosie (>20…30 ms). Aktywacja trybu sygnalizowana jest przez ponowne zaświecenie się diody pomarańczowej bezpośrednio po restarcie urządzenia. Analogicznie przytrzymanie przez 8 sekund przycisku [up] wyłącza analizę niskich harmonicznych sygnału. Urządzenie staje się wtedy bardziej wrażliwe na klaśnięcie w dłonie, ale równocześnie na podwójne stuki i trzaski o charakterystyce podobnej do klasku. Aktywacja trybu sygnalizowana jest krótkim włączeniem zielonej diody bezpośrednio po restarcie urządzenia. Uruchamianie powyższego trybu należy czynić rónież z pełną rozwagą wyłącznie tylko wtedy, gdy jest to konieczne. Powrót do ustawień domyślnych, zgodnie z opisem w ramce, dokonuje się przez równoczesne naciśnięcie i przytrzymanie przez 8 sekund przycisków [up] i [down]. ELEKTRONIKA PRAKTYCZNA 8/2013
018-026_tvmuter.indd 21
Rysunek 4. Bloki funkcjonalne programu Debug port procesora służy wyłącznie celom diagnostycznym. Wysyłane są na niego w standardzie RS232/TTL (38400 bit/s, 8,N,1) podstawowe komunikaty związane ze stanami pracy urządzenia. Oczywiście działanie sterownika nie musi być wyłącznie ograniczone do wyciszania reklam w odbiorniku telewizyjnym. Z powodzeniem można go używać do sterowania dowolnie wybraną funkcją każdego urządzenia, które współpracuje z pilotem podczerwieni. Dodatkowo na płytce drukowanej jest miejsce na umieszczenie transoptora. Za jego pośrednictwem można sterować dowolnym urządzeniem z pominięciem transmisji IR. Dwuklask przełącza stan diody nadawczej transoptora na przeciwny. Autor rozwiązania dołożył wszelkich starań, aby urządzenie pracowało niezawodnie praktycznie w każdych typowych warunkach
akustycznych. Z przeprowadzonych doświadczeń wynika, że statystyczny współczynnik skuteczności plasuje się na poziomie 90%. Oznacza to, że przeciętnie 9 na 10 dwuklasków zostanie poprawnie zinterpretowane oraz 1 na REKLAMA
21
2013-07-25 10:22:48
Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie elementów kolorem czerwonym
PROJEKTY Wykaz elementów Rezystory: R1: 91 kV R2: 27 kV R3, R18, R19: 1 kV R4, R11, R15, R16, R22: 10 kV R5: 4,7 kV R6, R10: 22 kV R7, R13: 2,2 kV R8: 47 kV R9: 82 kV R12: 220 kV R14: 15 kV R17: 720 V R20: 1,8 V R21: 100 V Kondensatory: C2, C8, C9: 1 nF (MKT) C7: 6,8 nF (MKT) C15, C16, C29: 10 mF C1: 10 nF (MKT) C13: 22 nF (MKT) C17, C20: 22 pF C5, C11, C19, C22…C25, C28, C31: 100 nF C4, C12, C18, C21, C26, C27, C30: 100 mF/16 V C3: 220 nF (MKT) C14: 270 pF C10: 470 nF (MKT) C6: 470 mF/16 V Półprzewodniki: D1, D2: BAT95 LED1: dioda LED, zielona LED2: dioda LED, pomarańczowa LED3, LED4, LED5: diody podczerwone, np. LD271 IC1, IC2: LM833N IC3: ICL7660CPA IC4: ATmega168-PU T1: BS170 TS: CNY17 U$1: TSOP31328 Inne: JP1: goldpin 10×2 Q1:8 MHz L1: 10 mH [DOWN], [UP]: DTE6 (switch, wysoki) JP2: goldpin M1: 6,0 mm×5,2 mm (mikrofon elektretowy np. KPCM6B-P) USB-ZAS: Mini USB
Rysunek 5. Przebieg czasowy klasku oraz jego rozkład widmowy
10 przypadków dźwięków zbliżonych do dwuklasku zostanie zinterpretowane jako podwójne klaśnięcie w dłonie. Dbałość o poprawną artykulację klasku oraz brak silnych dźwięków otoczenia dodatkowo podnoszą skuteczność urządzenia. W tabeli 1 podano opis funkcjonalny poszczególnych przycisków.
Dla dociekliwych Na rysunku 3 pokazano schemat blokowy urządzenia, natomiast na rysunku 4 bloki funkcjonalne programu. Detekcja dwuklasku jest realizowana na drodze sprzętowo-programowej. Sygnał akustyczny odebrany przez mikrofon jest wzmacniany, a następnie transmitowany dwoma niezależnymi kanałami do wejść przetwornika analogowo-cyfrowego mikrokontrolera. Kanał główny zawiera w swoim torze filtr
22
018-026_tvmuter.indd 22
Rysunek 6. Procedura detekcji dwuklasku górnoprzepustowy drugiego stopnia o częstotliwości charakterystycznej 8 kHz oraz detektor wartości szczytowych sygnału. Zadaniem toru
jest odcięcie z odebranego sygnału tych częstotliwości, które dominują typowo w dźwiękach otoczenia, a następnie wyekstrahowanie obELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:22:48
Wyciszacz odbiornika TV Listing 1. Uproszczona procedura zapamiętywania kodu pilota
‚--- konfiguracja TIMER1 (na potrzeby proc. Learn_IR) ----------------------------------------------‚Timer1 w konfiguracji learn_IR pełni rolę „linijki czasowej” w procesie rejestracji sygnału. ‚Mierzy długość impulsów i odstępów między impulsami. ‚Wartość dobrana tak, aby uzyskać rozdzielczość czasową na poziomie 1 mikrosekundy ‚oraz tak aby pomieścił długość przerwy między ramkami protokołów IR Config Timer1 = Timer , Prescale = 8 , Noise Cancel = 0 , Configuration = T_learn_ir On Icp1 Ir_event_isr Nosave ‘[...] Sub Learn_ir ‚----- procedura rejestracji kodu pilota -------------------------------------‚Procedura wykrywa pierwsze zbocze impulsu i rejestruje w postaci sygnatur czasowych ‚zmiany zbocza sygnału. Sygnatury zapamiętywane są w tablicy Ir_width(nn) Disable OVF1 ‚procedura nie korzysta z przerwań generowanych przez TIMER1 Set TIFR1.TOV1 ‚wyczyszczenie flagi od potencjalnego wcześniejszego wpisu przerwania ‚--- wykrycie zbocza „pierwszego” impulsu TIMER1 = 0 ‚wyzeruj timer1 (w celu poprawnego zliczenia czasu trwania pierwszego impulsu) Reset TCCR1B.ICES1 ‚inicjalnie ustaw zbocze opadające (czyli pierwszy sygnał IR) Enable ICP1 ‚włącz przechwytywanie impulsów Capture1 Start TIMER1 , T_learn_ir ‚uruchom Timer1 w celu rozpoczęcia odmierzania czasu poszczególnych impulsów Start Watchdog ‚uruchom Watchdog w celu realizacji „sprzętowego” timeout’u na programowanie kodu z pilota Reset Cap_f ‚flaga jest ustawiana w przerwaniu Capture1 Bitwait Cap_f , Set ‚oczekiwanie na pierwszy impuls Reset Watchdog ‚jeśli została wykryta transmisja podczerwieni wyzeruj watchdog Reset Cap_f Set TCCR1B.ICES1 ‚ustaw reakcję na zbocze rosnące Ir_last = Ir_cap ‚zapamiętaj inicjalną wartość CAPTURE1 (długość trwania pierwszego odebranego impulsu) ‚--- wykrycie kolejnych zboczy w pętli------------------------Bitwait Cap_f , Set ‚CZEKAJ na przerwania CAPTURE1 Reset Cap_f Toggle TCCR1B.ICES1 ‚zmień zbocze przy który ma wystąpić przerwanie Ir_width(nn) = Ir_cap - Ir_last ‚wylicz długość impulsu jako różnicę czasó pomiaru Ir_last = Ir_cap Stop Watchdog ‚zatrzymaj watchdog Reset Led_o ‚zgaś pomarańczową diode Disable ICP1 ‚wyłącz tryb przechwytywania Capture1 ‚------- Przerwanie pochodzące od Capture Timera 1 ---------------------------‚przechwycenie wartości i ustawienie flagi zdarzenia Ir_event_isr: Ir_cap = Capture1 ‚przechwyć aktualną wartość capture1 Set Cap_f Return
Listing 2. Uproszczona procedura transmisji zapamiętanego kodu pilota
‚--- konfiguracja TIMER1 (na potrzeby transmisji IR) ----------------------------------------------‚Rekonfiguracja Timer1 pod kątem transmisji sygnału IR w/g odebranych sygnatur Config TIMER1 = Timer , Prescale = 8 , Configuration = Transmisja_ir Disable Ovf1 On Ovf1 Ir_event_isr ‚--- konfiguracja TIMER2 (na potrzeby generacji nośnej IR) ----------------------------------------‚Timer2 służy do generacji częstotliwości nośnej dla sygnału IR ‚Nośna w ciele programu będzie włączana i wyłączana w takt trwania impulsów i przerw ‚Częstotliwość będzie dobierana (OCR2) do częstotliwości nośnej danego protokołu Config TIMER2 = Timer , Async = Off , Prescale = 1 , Compare_a = Toggle , Clear Timer = 1 Reset TCCR2A.COM2A0 : Set TCCR2A.COM2A1 ‚[...] Transmit_ir: Set TIFR1.TOV1 ‚wyczyszczenie flagi od potencjalnego wcześniejszego wpisu przerwania Enable OVF2 Set TCCR2A.COM2A0 : Reset TCCR2A.COM2A1 ‚aktywacja nośnej sygnału IR TIMER1 = 0 Enable OVF1 ‚aktywuj przerwanie Start TIMER1 , Transmisja_ir For Nn = R1 To R2 ‚transmituj sygnał na podstawie skorygowanych sygnatur z tablicy IR_width Load TIMER1 , Ir_width(nn) ‚załaduj wartość sygnatury czasowej Reset Cap_f Bitwait Cap_f , Set Toggle TCCR2A.COM2A0 : Toggle TCCR2A.COM2A1 ‘aktywuj nośną generowaną przez Timer2 Next Nn Reset TCCR2A.COM2A0 : Set TCCR2A.COM2A1 ‘dezaktywuj nośną generowaną przez Timer2 Disable OVF1 Disable OVF2 Return ‚from Transmit_IR
wiedni dla dalszej analizy przez program mikrokontrolera. Analogicznie jest zbudowany tor pomocniczy, z tą różnicą, że pracuje w nim filtr dolnoprzepustowy o częstotliwości charakterystycznej 1 kHz. Kanał niskich częstotliwości będzie wykorzystany przy wykrywaniu koincydencji zdarzeń dźwiękowych w obu kanałach. Nazwy kanałów wywodzą się z roli, którą pełnią przy dalszej analizie sygnału realizowanej prze mikroprocesor. Drugim zasadniczym elementem urządzenia jest podzespół odpowiedzialny za zapamiętywanie wzorca kodu oraz jego transmisję. Funkcja również jest realizowana na drodze sprzętowo-programowej. W skład podzespołu ELEKTRONIKA PRAKTYCZNA 8/2013
018-026_tvmuter.indd 23
wchodzi zintegrowany odbiornik podczerwieni, zespół diód nadawczych IR oraz fragment kodu procesora odpowiedzialnego za zapamiętywanie wzorca, generację częstotliwości
REKLAMA
nośnej IR oraz transmisję IR. Liczba diód nadawczych została podyktowana zapewnieniem wystarczającej mocy dla różnych warunków środowiskowych pracy urządzenia. Znakomita większość standardów transmisji IR wykorzystuje częstotliwość nośną z przedziału 36…40 kHz. Odbiornik podczerwieni został tak dobrany, aby obsługiwać możliwie szeroką gamę protokołów IR. Jego częstotliwość charakterystyczna wynosi 38 kHz. Generator częstotliwości nośnej, zrealizowany na drodze
23
2013-07-25 10:22:49
PROJEKTY Listing 3. Uproszczona procedura analizy dźwięku i wykrywania dwuklasku
‚--- konfiguracja TIMER1 (na potrzeby wykrywania klasku)-------------------------------------------Config TIMER1 = Timer , Prescale = 256 , Configuration = T_dce ‚stan licznika timera zwiększany co 32 us ‚[...] Sub Dce_engine: Disable OVF1 ‚procedura nie wykorzystuje przerwań a jedynie kontroluje stan licznika Timer1 Start TIMER1 , T_dce ‚uruchom odmierzanie czasu timera i procedurę wykrycia dwuklasku ‚---oczekiwanie na pierwszy klask---------------------------------Do Debounce Przycisk_up , Is_pressed , Pressed_przycisk , Sub ‚procedura obsługi przycisku [UP] Debounce Przycisk_down , Is_pressed , Pressed_przycisk , Sub ‚procedura obsługi przycisku [DOWN] Toph = Getadc(0) ‚zapamiętaj aktualną wartość szczytową sygnału Loop Until Toph >= Trigger ‚wykryj moment przekroczenia wielkości ustawionego progu wartości sygnału dźwiękowego (klask) ‚---gromadzenie próbek pierwszego klasku-----------------------------Tt = T1 TIMER1 = 0 For Ii = 1 To Ns Toph = 0 Topl = 0 While TIMER1 < Tt Ww = Getadc(0) ‚odczytaj wartość sygnału w kanale Vv = Getadc(1) ‚odczytaj wartość sygnału w kanale If Ww > Toph Then Toph = Ww ‚zapamiętaj wartość maksymalną Top czasowym
If Vv > Topl Then Topl = Vv ‚zapamiętaj wartość maksymalną Top w oknie czasowym Wend Sh1(ii) = Toph Sl1(ii) = Topl Tt = Tt + T1 Next Ii
głównym pomocniczym w kanale głównym w oknie w kanale pomocniczym
‚---oczekiwanie na drugi klask---------------------------------Ww = Sec_trig_ratio * Trigger : Shift Ww , Right , 4 ‚eksperymentalnie dobrany offset progu Threshold dla drugiego klasku Do Toph = Getadc(0) ‚zapamiętaj aktualną wartość szczytową impulsu If TIMER1 > Tpr Then Exit Sub ‚jeśli przekroczony limit czasowy (400ms) to opuść procedurę Loop Until Toph >= Ww ‚wykryj moment przekroczenia wielkości sygnału dźwiękowego (klask) ‚---gromadzenie próbek drugiego klasku-------------------------TIMER1 = 0 Tt = T1 For Ii = 1 To Ns Toph = 0 Topl = 0 While TIMER1 < Tt Ww = Getadc(0) Vv = Getadc(1) If Ww > Toph Then Toph = Ww ‚zapamiętaj wartość maksymalną If Vv > Topl Then Topl = Vv Wend Sh2(ii) = Toph Sl2(ii) = Topl Tt = Tt + T1 Next Ii
Top w oknie czasowym
‚---wyliczenie wartości średniej dla pierwszego klasku w kanale głównym Ww = 0 For Ii = 1 To Ns : Ww = Ww + Sh1(ii) : Next Ii Sh1_avg = Ww / Ns ‚---wyliczenie wartości średniej dla drugiego klasku w kanale głównym Ww = 0 For Ii = 1 To Ns : Ww = Ww + Sh2(ii) : Next Ii Sh2_avg = Ww / Ns ‚---wyliczenie współczynnika kowariancji Cov = 0 For Ii = 1 To Ns Ee = Sh1(ii) - Sh1_avg : Ff = Sh2(ii) - Sh2_avg : Ll = Ee * Ff Cov = Cov + Ll Next Ii ‚---wyliczenie odchylenia standardowego pierwszego klasku Ll = 0 For Ii = 1 To Ns : Ee = Sh1(ii) - Sh1_avg : Dd = Ee * Ee : Ll = Ll + Dd : Next Ii Ll = Sqr(ll) Sig_h1 = Ll ‚---wyliczenie odchylenia standardowego drugiego klasku----Ll = 0 For Ii = 1 To Ns : Ee = Sh2(ii) - Sh2_avg : Dd = Ee * Ee : Ll = Ll + Dd : Ll = Sqr(ll) Sig_h2 = Ll
Next Ii
‚---wyliczenie iloczynu odchyleń standardowych oraz korelacji funkcji obu klasków--Ll = Sig_h1 * Sig_h2 Corr_hh = Cov / Ll ‚wyliczenie współczynnika korelacji Pearsona ‚---zapamiętaj wartość pierwszego współczynnika miar P1 = Sh1(1) ‚---wylicz średnią dla drugiego współczynnika miar---------------------P2 = 0 For Ii = 2 To 5 : P2 = P2 + Sh1(ii) : Next Ii P2 = P2 \ 4
24
018-026_tvmuter.indd 24
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:22:50
Wyciszacz odbiornika TV programowej, dostosowuje jej wartość do rozpoznanego protokołu IR. Stany pracy urządzenia sygnalizowane są przez dwie diody LED umieszczone na przednim panelu. W trybie normalnej pracy dioda zielona sygnalizuje rozpoczęcie procesu analizy sygnału akustycznego, natomiast dioda pomarańczowa transmisję podczerwieni. W trybie inicjalizacji sterownika sygnalizowane są również inne stany opisane w sekcjach „Uruchomienie” i „Eksploatacja”. Sterownik wyposażony jest w dwa przyciski sterujące oznaczone jako [up] i [down]. Służą do zmiany stopnia czułości detektora dwuklasku, wyboru trybu jego pracy oraz inicjalizacji procedury zapamiętywania wzorca kodu pilota. Urządzenie zasilane jest z zewnątrz pojedynczym stabilizowanym napięciem 5 V. Do zasilania najlepiej użyć jednego z popularnych zasilaczy do telefonu komórkowego ze złączem Mini-USB. Wybór opcji zasilania sieciowego zamiast zasilania bateryjnego uczynił urządzenie bezobsługowym przez cały okres eksploatacji.
Detekcja klasku Rysunek 5 przedstawia typowy przebieg czasowy i rozkład widmowy pojedynczego klasku. Cechą charakterystyczną obwiedni sygnału jest gwałtowny wzrost jego wartości w ciągu
pojedynczych milisekund i monotoniczny zanik w przeciągu 200…300 ms. Częstotliwości harmoniczne klasku rozkładają się miej więcej równomiernie w całym paśmie akustycznym. W przedstawianym urządzeniu badane są cechy charakterystyczne kształtu obwiedni sygnału oraz powiązania czasowe między obwiedniami pierwszego i drugiego klasku w kanale wysokich i niskich częstotliwości. Procedura detekcji dwuklasku działa według schematu „wykryj zdarzenie – zapamiętaj próbki – zinterpretuj próbki”. W nieskończonej pętli program mikrokontrolera analizuje wielkość sygnału w kanale głównym. Jeśli sygnał przekroczy ustawioną wartość progową rejestrowany jest strumień wartości szczytowych sygnałów napływających w tym samym czasie niezależnie z kanału głównego i pomocniczego. Przekroczenie progu każdorazowo sygnalizowane jest krótkotrwałym zaświeceniem zielonej diody sygnalizacyjnej. Odebrany sygnał zostanie zinterpretowany jako podwójny klask w dłonie jeśli przejdzie pozytywnie szereg następujących po sobie testów. Każdy z testów bada spełnienie jednego z kryterium. W pierwszej kolejności sprawdzany jest odstęp czasowy między początkiem pierwszego i drugiego klasku – jeśli oba zdarzenia nie mieszczą się w oknie czasowym
250…400 ms, to procedura testowa jest przerywana. Następnie program analizuje powiązanie między sygnałami. Badany jest stopień podobieństwa sygnałów między pierwszym a drugim klaskiem w oparciu o statystyczną metodę współczynników korelacji Pearsona. Podobna analiza odbywa się dla piewszego klasku w kanale głównym i pomocniczym. Teraz procedura sprawdza czy obwiednia sygnału ma charakter monotoniczny i gasnący. Cała procedura testowa trwa pojedyncze milisekundy, a więc odbywa się niemal w czasie rzeczywistym, niezauważalnym da użytkownika. Jeśli wszystkie testy zakończą się pozytywnie, program inicjuje procedurę transmisji sygnału IR. W wypadku niezaliczenia któregokolwiek z testów, procedura jest przerywana i program ponownie powraca do nasłuchiwania sygnału w kanale głównym. Procedura detekcji symbolicznie jest przedstawiona na rysunku 6. Dla poprawnej pracy urządzenie musi dysponować zaprogramowanym wzorcem odpowiadającym kodowi ‘MUTE’ odbiornika TV, którym ma sterować. Wzorzec tworzony jest na podstawie kodu przesłanego z pilota w procedurze uczenia (listing 1). Procedura uruchamiana jest w momencie przygotowania urządzenia do pracy. Odbierane z pilota impulsy podczerwieni zamiętywane są w pamięci nie-
REKLAMA
Altium Designer 2013 jeszcze lepszy
„Kiedyś musieliśmy poprawiać projekt kilka razy, zanim udało się uzyskać finalną wersję elektroniki i dopasować mechanikę do niej – teraz wszystko odbywa się w jednym cyklu i pasuje idealnie.” - Scott Gemmell, Szef Działu Projektowego w Leica Geosystems Agriculture, Użytkownik Altium
EVATRONIX S.A. ul. Przybyły 2, 43-300 Bielsko-Biała, tel. 33 499 59 12 [email protected]; www.evatronix.com.pl/eda
ELEKTRONIKA PRAKTYCZNA 8/2013
018-026_tvmuter.indd 25
25
2013-07-25 10:22:51
PROJEKTY Listing 3. c.d.
‚---wylicz średnią dla trzeciego współczynnika miar--------------------P3 = 0 For Ii = 10 To 15 : P3 = P3 + Sh1(ii) : Next Ii P3 = P3 \ 6 ‚===================================================================== ‚---wyliczenie wartości średniej dla pierwszego klasku w kanale pomocniczym L---------Ww = 0 For Ii = 1 To Ns : Ww = Ww + Sl1(ii) : Next Ii Sl1_avg = Ww / Ns ‚---wyliczenie wartości średniej dla drugiego klasku w kanale pomocniczym L-----------Ww = 0 For Ii = 1 To Ns : Ww = Ww + Sl2(ii) : Next Ii Sl2_avg = Ww / Ns ‚---wyliczenie kowariancji między kanałami głównym H i pomocniczym L dla pierwszego klasku -------------------Cov = 0 For Ii = 1 To Ns Ee = Sh1(ii) - Sh1_avg : Ff = Sl1(ii) - Sl1_avg : Ll = Ee * Ff Cov = Cov + Ll Next Ii ‚---wyliczenie odchylenia standardowego dla pierwszego klasku----‚Sig_h1 było wyliczone w pierwszej iterakcji ‚---wyliczenie odchylenia standardowego w kanale pomocniczym dla pierwszego klasku----Ll = 0 For Ii = 1 To Ns : Ee = Sl1(ii) - Sl1_avg : Dd = Ee * Ee : Ll = Ll + Dd : Next Ii Ll = Sqr(ll) Sig_l1 = Ll ‚---wyliczenie iloczynu Ll = Sig_h1 * Sig_l1 Corr_hl1 = Cov / Ll
obu odchyleń standardowych i korelacji funkcji klasku--‚wyliczenie wartości korelacji
‚---wyliczenie kowariancji między kanałami głównym H i pomocniczym L dla drugiego klasku -------------------Cov = 0 For Ii = 1 To Ns Ee = Sh2(ii) - Sh2_avg : Ff = Sl2(ii) - Sl2_avg : Ll = Ee * Ff Cov = Cov + Ll Next Ii ‚---wyliczenie odchylenia standardowego dla pierwszego klasku----‚Sig_h1 było wyliczone w pierwszej iterakcji ‚---wyliczeniewartości odchylenia standardowego w kanale pomocniczym dla pierwszego klasku----Ll = 0 For Ii = 1 To Ns : Ee = Sl2(ii) - Sl2_avg : Dd = Ee * Ee : Ll = Ll + Dd : Next Ii Ll = Sqr(ll) Sig_l2 = Ll ‚---wyliczenie iloczynu obu odchyleń standardowych--Ll = Sig_h2 * Sig_l2 Corr_hl2 = Cov / Ll ‚wyliczenie wartości korelacji ‚---sekcja testów na spełnienie warunków---------------------------------------------------‚---TEST1,2: czy sygnał jest monotoniczny If P2 > P1 Then Exit Sub ‚jesli TEST1 niezaliczony opuść procedurę analizującą odebrany sygnał If P3 > Sh1_avg Then Exit Sub ‚jesli TEST2 niezaliczony opuść procedurę analizującą odebrany sygnał ‚---TEST3: czy korelacja sygnału w kanale głównym (test wykonywany przy wszystkich trybach) If Corr_hh < Corrh_threshold Then Exit Sub ‚jesli TEST3 niezaliczony opuść procedurę analizującą odebrany sygnał ‚---TEST4: korelacja między kanałem głównym i pomocniczym (aktywna przy zgaszonej fladze No_2chn) If Corr_hl1 < Corrhl_threshold And Corr_hl2 < Corrhl_threshold Then Exit Sub ‚jesli dla obu korelacji (tj. H1L1 i H2-L2) nie jest spełniony warunek opuść procedurę analizującą odebrany sygnał ‚---TEST5: czy odpowiednio wysoki poziom sygnału w kanale pomocniczym If Corr_hl1 >= Corr_hl2 Then ‚weź pod uwagę parę sygnałów L--H o lepszym współczynniku korelacji If Sl1_avg < Sh1_avg Then Exit Sub ‚dla oary sygnałów Else If Sl2_avg < Sh2_avg Then Exit Sub ‘dla pary sygnałów End If ‚jesli TEST3 niezaliczony opuść procedurę analizującą odebrany sygnał End If ‚w to miejsce program dociera po pozytywnym zaliczeniu WSZYSTKICH aktywnych testów Set Led_o ‚...zaświeć pomarańczową LED Toggle Transoptor ‚zmień stan transoptora Gosub Transmit_ir ‚...<== TRANSMITUJ SYGNAŁ IR End Sub ‘ of DCE_engine
ulotnej procesora jako ciąg czasowy zdarzeń. Właściwości techniczne odbiornika IR powodują, że odczytany ciąg nie pokrywa się dokładnie z ciągiem wysłanym przez pilota. Dlatego program usiłuje zidentyfikować protokół IR na podstawie charakterystycznych wzorców czasowych zapisanych w pamięci mikrokontrolera odpowiadających popularnym protokołom IR. Jeśli mu sie to uda to dokona stosownej korekcji odebranego ciągu. Protokoły niezidentyfikowane nie podlegają korekcji. Ostatecznie odebrane próbki czasowe zapamiętywane są w pamięci nieulotnej mikrokontrolera i stanowią wzorzec dla generacji sygnału. Niektóre protokoły, przy-
26
018-026_tvmuter.indd 26
kładowo RC5, mają zmienną wartość toggle bit. Dlatego procedura uczenia wymaga zapamiętania nie jednego, ale dwóch wzorców przebiegów czasowych. Transmisja podczerwieni wyzwalana jest każdorazowo po rozpoznaniu dwuklasku (listing 2). Zespół diód IR wysyła naprzemiennie jedną z dwóch zapamiętanych serii zapamiętanego kodu pilota. Transmisja sygnalizowana jest zaświeceniem pomarańczowej diody. Osobną kwestią jest generacja częstotliwości nośnej. Dla zidentyfikowanych protokołów podczerwieni programowo generowana jest właściwa dla protokołu częstotliwość nośna
sygnału IR z przedziału 36…40 kHz. Dla protokołów niezidentyfikowanych przyjmowana jest średnia wartość 38 kHz. Na listingu 3 pokazano uproszczoną procedurę detekcji dwuklasku. Jest ona opatrzona obszernym komentarzem. Po lekturze artykułu nie powinno być problemu z jej analizą. Program napisano w języku Bascom. Jego źródło nie jest dołączone do artykułu. W sprawie programu oraz innych, związanych z urządzeniem, można kontaktować się z autorem poprzez e-mail podany na końcu artykułu.
Maciej Rak [email protected] ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:22:51
Włącznik sterowany radiowo PROJEKTY
Włącznik sterowany radiowo Nieskomplikowane urządzenie pełniące rolę sterowanego radiowo przekaźnika mogącego włączyć lub wyłączyć zasilanie odbiornika. Nasz włącznik idealnie sprawdzi się w sytuacjach, w których potrzebujemy włączyć zasilanie urządzenia umieszczonego w niedostępnym miejscu. Może to być na przykład router lub modem wymagające restartu itp. Rekomendacje: włącznik uniwersalny, który może przydać się w wielu zastosowaniach związanych np. z automatyką domową. Z założenia włącznik powinien działać jak zdalnie sterowany przekaźnik. Te z kolei najczęściej są wytwarzane w dwóch wariantach – przekaźniki astabilne i bistabilne. W pierwszym wypadku przekaźnik przełącza zestyki tylko w momencie podania napięcia na jego cewkę. Drugi typ przełącza zestyki, które pozostają w nowym położeniu nawet po odłączeniu zasilania. Powrót do wcześniejszego położenia następuje po podaniu napięcia o odwrotnej polaryzacji. Zdecydowałem, że projektowane przeze mnie urządzenie powinno mieć możliwość wyboru pomiędzy trybem pracy astabilnym a bistabilnym. Ponieważ urządzenie ma być sterowane drogą radiową, odbiornikiem będzie sekcja przekaźnika, natomiast urządzenie sterujące czymś w rodzaju pilota, jak te do zdalnego otwierania zamków drzwi samochodu. A jeżeli w zasięgu łączności znajdą się dwa lub więcej zestawów sterujących? W takiej sytuacji odbiornik powinien rozróżniać sygnały sterujące swojego nadajnika i reagować tylko na nie. Nadajnik składa się z dwóch bloków funkcjonalnych. Pierwszy grupuje elementy sterujące, czyli przyciski i układ do generowania kodu określającego aktualny stan przycisków. W bloku nadajnika znajdują się elementy związane z wysyłaniem sygnału o wysokiej częstotliwości. Odbiornik składa się z trzech bloków funkcjonalnych. Najpierw odebrany sygnał o wysokiej częstotliwości jest wzmacniany i po detekcji poELEKTRONIKA PRAKTYCZNA 8/2013
027-031_modul-radiowy.indd 27
nownie zamieniany na sygnał kodu. W dekoderze następuje sprawdzenia czy odebrana transmisja jest właściwa i przeznaczona dla tego odbiornika. Jeżeli tak, sekwencja kodu jest zamieniana na sygnały sterujące układami wykonawczymi. Są nimi tranzystory i przekaźniki. Następnym krokiem było dobranie odpowiednich elementów pasujących do schematów blokowych nadajnika i odbiornika.
Tor radiowy Najłatwiejszy okazał się wybór układów radiowych. Firma Velleman produkuje kompletny tor radiowy pracujący w wolnym paśmie 433 MHz o zasięgu nawet do kilkudziesięciu metrów. W skład zestawu wchodzą miniaturowy nadajnik i odbiornik zestrojone na tę samą częstotliwość 433,92 MHz, gotowe do natychmiastowego użycia. Ponadto, nadajnik ponadto ma tę właściwość, że pracuje w szerokim zakresie napięcia zasilającego: 3…12 V. Po dołączeniu zasilania wysyła falę nośną o wysokiej częstotliwości, którą można modulować podając na jego wejście sygnał cyfrowy. Dla wysłania logicznej jedynki sygnał wejściowy powinien mieć napięcie bliskie napięciu zasilania, dla logicznego zera napięcie wejściowe powinno mieć wartość około 0 V. Współpracujący z nadajnikiem moduł odbiornika ma całkiem dobrą czułość -106 dBm. Maksymalna prędkość transmisji wynosi 4,8 kb/s i jest wystarczająca do sterowania przełącznikiem. Pewnym ograniczeniem może być duża szerokość pasma wynosząca ±500 kHz, ale przy pracy z niewielkim zasięgiem zakłócenia nie powinny znacząco
AVT 5407
W ofercie AVT* AVT-5407 A Podstawowe informacje: • Niezależne sterowanie dwoma przekaźnikami. • Praca w paśmie ISM. • Zasięg do ok. 100 m (zależnie od anten i warunków użytkowania). • Nie wymaga strojenia. • Transmisja kodowana i dekodowana sprzętowo. • Zasilanie nadajnika z baterii 9 V, odbiornika z zasilacza wtyczkowego. Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
pogarszać działania modułu odbiornika. Ponieważ moduł odbiornika wymaga do pracy napięcia stabilizowanego +5 V, to cały układ odbiorczy włącznika będzie zasilany napięciem z zasilacza sieciowego.
Koder i dekoder Zgodnie z przyjętymi założeniami nadajnik ma wysyłać do odbiornika sygnał, który spowoduje przełączenie styków przekaźnika w odpowiednie położenie. Dodatkowo, po-
27
2013-07-25 10:25:39
PROJEKTY
Rysunek 1. Schemat blokowy kodera HT12E
Rysunek 2. Zależność pomiędzy stanem wejścia TE a sygnałem na wyjściu DOUT
Rysunek 3. Schemat blokowy kodera HT12D winna istnieć możliwość rozróżnienia sygnału wysyłanego przez różne nadajniki, aby odbiornik reagował na sterowanie z tylko przez jeden, wybrany. Z tych powodów sygnał przesyłany pomiędzy nadajnikiem a odbiornikiem musi być bardziej skomplikowany, niż zwykłe włącz i wyłącz. Powinien on być kodowany.
Początkowo pomyślałem o zastosowaniu w roli koderów i dekoderów mikrokontrolerów o niewielkiej liczbie wyprowadzeń. Ale skoro urządzenie miało być łatwe w budowie, to należało poszukać innego rozwiązania. Po przejrzeniu dostępnej dokumentacji okazało się, że są dostępne układy scalone doskonale nadające się do zastosowania
Rysunek 4. Przebiegi sygnałów na wyjściach Data i VT układu kodera HT12E
28
027-031_modul-radiowy.indd 28
w konstruowanym urządzeniu. Są to HT12E i HT12D, komplet koder i dekoder. Układy posługują się kodem, który się składa z 8-bitowego adresu i 4 bitów danych. Do sterowania są wykorzystywane wyprowadzenia układów scalonych, które mogą pozostać niepodłączone albo są zwierane do masy. Stan wyprowadzeń wpływa na postać generowanego kodu. Schemat blokowy kodera HT12E pokazano na rysunku 1. Z wyjścia DOUT jest pobierany zakodowany przebieg generowany przez układ. Wejścia A0…A7 są wejściami adresowymi, których sekwencja dla każdego nadajnika powinna być inna i ustawiona na stałe. Wejścia AD8…AD11 są wejściami danych. W opisywanym urządzeniu do dwóch z nich, A8 i A9, dołączono przyciski sterujące, których stan zmienia kod sterujący ustawieniem przekaźników wysyłany do odbiornika. Wejście TE pełni rolę wejścia zezwalającego. Po zwarciu do masy jest uruchamiany wewnętrzny oscylator HT12E i kolejne bity sekwencji generowanego kodu pojawiają się na wyjściu DOUT. Zależność pomiędzy stanem wejścia TE a sygnałem na wyjściu DOUT pokazano na rysunku 2. Zadaniem układu dekodera jest odtworzenie z odebranego sygnału kodu stanu wejść sterujących. Schemat blokowy dekodera HT12D pokazano na rysunku 3. Kod z wyjścia radiowego układu odbiorczego jest podawany na wejście DIN. Następnie układ HT12D porównuje bity adresu w przesłanym kodzie z ustawieniem własnych wyprowadzeń oznaczonych na rys. 2 jako Address. Jeżeli zostanie wykryta różnica oznacza to, że odebrana transmisja nie jest przeznaczona dla dekodera i zostaje odrzucona. W wypadku zgodności adresów kod jest przetwarzany i wyprowadzenia Data dekodera ustawiane są zgodnie z danymi przesłanymi w odebranym kodzie. Jednocześnie na wyprowadzeniu VT pojawia się impuls dodatni informujący o sukcesie odbioru kolejnej transmisji. Na rysunku 4 przedstawiono przebiegi sygnałów na wyjściach Data i VT.
Nadajnik Schemat ideowy nadajnika pokazano na rysunku 5. Funkcję elementów sterujących pełnią dwa przyciski SW1 i SW2. Gdy sterują przekaźnikami pracującymi w trybie astabilnym, w czasie naciskania przycisku styki odpowiedniego przekaźnika będą zwierane, a po zwolnieniu przycisku rozłączane. W trybie stabilnym będzie pracował tylko jeden przekaźnik. Każdorazowe naciśnięcie przycisku SW1 będzie załączało styki przekaźnika, które pozostaną w takim stanie bez względu na kolejne naciśnięcia SW1. Dopiero po naciśnięciu drugiego przycisku SW2 styki przekaźnika zostaną rozwarte. Oba przyciski podłączone są do wejść danych AD8 i AD9 kodera U1. Naciśnięcie dowolneELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:25:41
Włącznik sterowany radiowo go przycisku pobudza koder do generowania kodu. Z wyjścia DOUT układu U1 wygenerowany kod jest podawany na wejście nadajnika U2 i wysyłany drogą radiową do odbiornika. Do wyjaśnienia pozostaje rola, którą pełnią w układzie podwójna dioda D1 i tranzystor Q1. W opisie kodera wspomniałem o szczególnej roli wejścia TE. Dopiero zwarcie tego wyprowadzenia do masy spowoduje rozpoczęcie generowania kodu. Naciśnięcie każdego przycisku Rysunek 5. Schemat ideowy nadajnika powinno zatem podawać poziom niski zarówno na sterowane wejście jest niewielka i dla przedłużenia jej żywotnodanych AD8 lub AD9, jak i na wejście TE. ści najlepiej ograniczyć pobór prądu tylko do Gdyby w układzie istniał tylko jeden przymomentów, w których nadajnik transmituje cisk, można by było wejście danych i wejście dane. Ponieważ w układzie nie przewidziaTE ze sobą zewrzeć i dołączyć do przycisku. no dodatkowego wyłącznika odcinającego Ponieważ jednak w układzie nadajnika są baterię, należało się przyjrzeć obciążeniom wnoszonym przez poszczególne elemendwa przyciski, za pośrednictwem podwójnej ty układu. Koder w stanie spoczynkowym diody D1 są one podłączone do wejścia TE pobiera prąd rzędu ułamków mikroampera i mogą działać niezależnie. i obciążenie wnoszone przez niego może być Układ nadajnika powinien być zasilany pominięte. Inaczej jest z układem nadajnika z małej baterii 9 V lub 6 V. Pojemność baterii
U2, który powinien być odcinany od zasilania, gdy nie pracuje. Służy do tego tranzystor Q1. Baza tranzystora poprzez opornik R3 jest na potencjale emitera, co powoduje zatkanie tranzystora i odcięcie zasilania nadajnika U2. Naciśnięcie któregokolwiek przycisku spowoduje podanie na wejście TE poziomu niskiego, a poprzez opornik R2 zmianę potencjału pomiędzy bazą a emiterem tranzystora Q1. Dzięki temu zostanie on otwarty, a nadajnik U2 zasilony. W ten sposób zasi-
Rysunek 6. Schemat ideowy odbiornika ELEKTRONIKA PRAKTYCZNA 8/2013
027-031_modul-radiowy.indd 29
29
2013-07-25 10:25:42
PROJEKTY Tabela 1. Tabela prawdy układu kodera Wejście 1 0 1 0 1
Wejście 2 0 0 1 1
Wyjście Y 1 1 1 0
lanie do nadajnika U2 jest dołączane tylko w momentach, w których do odbiornika jest wysyłany nowy kod.
Odbiornik
Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie elementów kolorem czerwonym
Schemat ideowy odbiornika i sterownika przekaźników pokazano na rysunku 6. Sygnał odebrany z nadajnika z wyjścia modułu radiowego M1 jest podawany na dekoder U1 i poprzez układ przełączających bramek logicznych steruje tranzystorami Q1, Q2 i przekaźnikami. Zastosowany układ bramek logicznych umożliwia pracę układu w trybie astabilnym lub stabilnym, wybór dokonywany jest ustawieniami zwór S1 i S2. Bramki logiczne coraz częściej wypierane są z bezpośredniego użycia przez układy programowalne, więc dla części Wykaz elementów Nadajnik Rezystory: (SMD 0805) R1: 1 MV R2: 1 kV R3: 10 kV R4: 3,3 kV Półprzewodniki: D1: BAR43A (SOT-23) D2: L-34ID Q1: BC857 (SOT-23) U1: HT12E-20 (SOL-20) Inne: SW1, SW2: mikroprzycisk A1: antena, np. odcinek drutu U2: TX433N (moduł radiowy) Odbiornik Rezystory: R1: 47 kV R2, R6: 3,3 kV R3, R7, R8: 4,7 kV R4, R5: 100 kV Kondensatory: C1, C2: 1 mF (SMD 0805) C3, C4: 100 nF (SMD 0805) Półprzewodniki: D1: dioda LED SMD, czerwona D2, D4, D5: DO-213AB D3, D6: dioda LED SMD, zielona Q1, Q2: BC847 (SOT-23) U1: HT12D-18 (DIP18) U2, U3: 74HC00 (DIP14) U4: 78N05 (TO-252) U5: DS1813 (TO-92A) Inne: A1: antena, np. odcinek drutu J1: DG308-2.54/3 J2, J3: DG308-2.54/2 K1, K2: JZC-6F M1: RX433N (moduł radiowy) S1, S2: goldpiny ze zworkami
30
027-031_modul-radiowy.indd 30
czytelników sposób ich działania może być mało czytelny. Dla tego najpierw krótkie przypomnienie jak działają te zastosowane w układzie odbiorczym. W układzie zostały użyte bramki typu NAND. W tabeli 1 zebrano wszystkie możliwe kombinacje stanów dwóch wejść Rysunek 7. Schemat montażowy wpływających na stan wyjścia Y. nadajnika Z tab. 1 wynika, że bramka NAND jest sumatorem negującym. Tylko podanie jedynek na obydwa wejście spowoduje pojawienie się na wyjściu Y stanu niskiego. Ta wiedza jest zupełnie wystarczająca do zrozumienia funkcji, które pełnią bramki w części odbiorczej przełącznika. Najpierw wyjaśnię działanie układu pracującego w stanie astabilnym wybieranym przez ustawienia zwór S1, S2 w pozycjach ON1, ON2. Naciśnięcie przycisku w nadajniku powoduje w układzie odbiorczym ustawienie odpowiedniego wyjścia U1-D8 lub U1-D9. Po zanegowaniu (proszę spojrzeć do tab. 1) przez bramki U2-A, U2-B sygnał o aktywnym poziomie wysokim podawany jest na wejścia bramek U2-C, U2-D. Na drugie wejścia tych bramek jest podawany dodatni sygnał taktujący z wyjścia Rysunek 8. Schemat montażowy odbiornika VT dekodera U1. Suma logiczna sygnału wynikającego z naciskania przycisku Dzięki temu tylko naprzemienne naciskaw nadajniku z sygnałem taktującym wyjnie przycisków nadajnika będzie powodościa VT spowoduje wyzerowanie wyjścia wać przełączanie przekaźnika K1. odpowiedniej bramki U2-C lubU2-D. Po zanegowaniu przez bramki U3-A, U3-B Układ U5 wysoki poziom aktywny steruje tranzyUżycie układu U5 może stanowić storami Q1, Q2 i jest załączany odpowiedprzykład na to, że podczas pracy zawsze ni przekaźnik. Jeżeli przycisk nadajnika mogą pojawić się nieprzewidziane probzostanie zwolniony, wyjście VT zostaje lemy zmieniające pierwotne założenia. wyzerowane i przekaźnik lub przekaźniki W tym wypadku w czasie uruchamiania zostaną rozłączone. układu przełącznika stwierdziłem, że na W trybie stabilnym dwoma przyciskawyjściu VT dekodera niekiedy pojawiają mi nadajnika sterowany jest jeden przesię przypadkowe impulsy o czasie trwania kaźnik K1. W tym trybie zwory powinny 10…50 ms. Impulsy pojawiały się losowo być ustawione w pozycji ON/OFF1. i pogarszały działanie przełącznika. PoPonieważ przekaźnik ma pozostać nieważ nie udało mi się odkryć przyczyny, w stanie stabilnym nawet po zaniku jedyną możliwością pozostało wyeliminotransmisji musi istnieć układ pamiętający wanie szkodliwych impulsów. Zastosowai podtrzymujący aktualny stan przekaźninie filtru dolnoprzepustowego RC nie było ka do czasu odbioru kolejnej transmisji. dobrym rozwiązaniem. Mógł on znacząco Taką elementarną komórkę pamięci stanopogorszyć zbocza prawidłowych impulwią połączone bramki U3-C, U3-D. sów z wyjścia VT. Wtedy przypomniałem sobie o układach zerujących, które jeszUkład działa przy założeniu, że wycze niedawno masowo stosowano w ukłaprowadzenia sterujące U3-10,12 w stanie dach mikroprocesorowych. Ich zadaniem nieaktywnym pozostają ustawione. Przebyło zapewnienie prawidłowego zerowałączenie układu nastąpi po podaniu ponia procesora po włączeniu zasilania lub ziomu niskiego na odpowiednie wejście w wypadku, gdy nastąpią wahania zasilasterujące. Układ przełączy się pozostając nia. Układ działa w ten sposób, że dopóki w stanie stabilnym, co znaczy, że podanie napięcie zasilania nie osiągnie wartości kolejnych ujemnych impulsów na to samo nominalnej na jego wyjściu pojawia się wejście niczego nie zmienia. Dopiero ponp. poziom niski zerując mikroprocedanie poziomu niskiego na drugie wejście sor. Gdy napięcie się ustabilizuje układ spowoduje przełączenie się układu, któprzez pewien czas np. 300 ms utrzymuje ry znów znajdzie się w stanie stabilnym. ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:25:42
Włącznik sterowany radiowo na wyjściu poziom zerujący, po czym automatycznie przełącza je w stan przeciwny. Taki sposób działania sprawia, że układy zerujące mogą działać jak dyskryminatory (filtry) krótkich sygnałów. Podanie sygnału z wyjścia VT na wejście U5-2 nie zmienia natychmiast stanu wyjścia U5-1. Dopiero, jeśli czas trwania impulsu przekroczy 150…300 ms na wyjściu U5-1 pojawi się poziom wysoki. Trwający krócej impuls zakłócający nie pojawi się na wyjściu U5-1 i zostaje wyeliminowany.
Schematy montażowe płytek nadajnika i odbiornika pokazano na rysunkach 7 i 8. Płytkę nadajnika zaprojektowano do montażu w obudowie pilota KMP12. Ponieważ jest to obudowa tylko z jednym przyciskiem należy ją poddać niewielkiej obróbce mechanicznej. Trzeba w górnej części obudowy wywiercić otwór dla popychacza drugiego mikro przycisku SW2. Poprzez wywiercony otwór popychacz będzie wystawał ponad płaszczyznę obudowy. Jako SW2 należy zastosować mikro przycisk z popychaczem o długości ok 5 mm. Z kolei przycisk SW1 powinien być jak najniższy. Dla typowego mikro przycisku z popychaczem 1…2 mm może okazać się konieczne zeszlifowanie od spodu plastikowego klawisza obudowy umieszczonego nad tym przyciskiem. Układ nadajnika U2 należy zamontować na płytce drukowanej poziomo. Do zasilania należy użyć typowej baterii do pilotów samochodowych np. L1022 o napięciu 9 V lub mniejszej o napięciu 6 V. Do płytki drukowanej należy przylutować paski sprężystej blaszki, które będą pełniły rolę kontaktów baterii. W modelu użyto blaszki ze styków większych złącz. Wymiary obudowy po zamknięciu i wycięcie w płytce drukowanej skutecznie unieruchamiają baterię i nie jest potrzebne dodatkowe jej mocowanie. Dioda 3 mm LED D2 powinna zostać wlutowana bezpośrednio pod oryginalny otworem w obudowie. Do odbiornika z przekaźnikami nie przewidziano obudowy. Pod układy scalone polecam zastosowanie podstawek, co ułatwi ich ewentualną wymianę. Należy zwrócić uwagę na montaż modułu odbiornika radiowego, ponieważ ma on symetrycznie rozłożone wyprowadzenia i łatwo o pomyłkę. Moduł powinien być wlutowany pionowo z cewkami zwróconymi w kierunku układów scalonych na głównej płytce drukowanej. Układ U5, czyli DS1813, powinien być przeznaczony do przy napięciu zasilania 4,75…4,85 V. Odbiornik należy zasilić napięciem stałym o wartości niezbędnej dla prawidłowej pracy przekaźników, czyli w praktyce 9…12 V. Gniazdo J2 jest zabezpieczone przez diodę D5 przed podaniem zasilania o błędnej polaryzacji. Wspomagając się podanymi wcześniej informacjami uruchomienie układu nie powinno być zbyt trudne. Nadajnik powinien działać prawidłowo, jeżeli po naciśnięciu któregokolwiek przycisku zaświeci się dioda LED. W tym momencie na wyjściu VT układu U1 odbiornika powinien pojawić się poziom wysoki o napięciu bliskim +5 V. Stanie się tak, jeżeli zostaną spełnione trzy warunki: odbiornik jest zasilany, nadajnik i odbiornik znajdują się w zasięgu oraz wyprowadzenia adresowe nadajnika i odbiornika są tak samo ustawione. W projekcie płytek nadajnika i odbiornika wszystkie ich wyprowadzenia adresowe są zwarte do masy i jeżeli nie zostało to zmienione urządzenia powinny się ze sobą komunikować. Wyboru pomiędzy trybem pracy astabilnym i stabilnym dokonuje się poprzez zmianę ustawień zwór S1 i S2 na płytce odbiornika.
REKLAMA
Montaż i uruchomienie
Ryszard Szymaniak, EP
ELEKTRONIKA PRAKTYCZNA 8/2013
027-031_modul-radiowy.indd 31
31
2013-07-25 10:25:42
PROJEKTY
Ramka cyfrowa do zdjęć
Obsługa kolorowego wyświetlacza OLED w języku C Kiedy kilka lat temu pierwszyy raz zajmowałem się tematyką obsługi paneli dotykowych, byłem niemal pewien, że tego rodzaju sposób interakcji urządzenia z użytkownikiem stanie się w przyszłości standardem dla elektroniki użytkowej i nie tylko. Nie czuję się bynajmniej, co oczywiste, żadnego rodzaju wizjonerem! Ot, taki scenariusz wydawał mi się najbardziej prawdopodobnyy biorąc pod uwagę rozwój interfejsów użytkownika opartych o wyświetlacze TFT oraz rosnące wymagania klientów. Inną sprawą jest, iż zastosowanie kolorowych wyświetlaczy TFT wyposażonych w panel dotykowy zapewnia naturalny sposób komunikacji z urządzeniem, którego możliwości ograniczone są wyłącznie wyobraźnią programisty czy grafika komputerowego. Rekomendacje: artykuł jest doskonałą bazą dla własnych projektów.
AVT 5409
Dzisiaj nie dziwi już fakt, że w wielu modelach samochodów, bynajmniej nie z segmentu premium, stosowane są rozbudowane systemy audiowizualne wyposażone w doskonałej jakości, duże wyświetlacze TFT oraz rozbudowane interfejsy użytkownika wzorowane na najlepszych rozwiązaniach dostępnych w urządzeniach do komunikacji mobilnej. Co wspólnego ma ta krótka historia z naszym artykułem? To proste, pewną analogię, o której za chwilę. Od dosyć dawna w projektach swoich urządzeń stosuję wyświetlacze wykonane w technologii OLED i mimo tego, że proces ten rozpoczął się jakiś czas temu, jestem nadal pod ogromnym wrażeniem tych elementów elektronicznych. Nie sposób tutaj nie zauważyć wielkiego postęp, który dokonał się w tej technologii. Jego wynikiem jest znaczny wzrost trwałości tego rodzaju paneli oraz towarzyszący mu, ustawiczny spadek cen gotowych rozwiązań, których pułap sięga już typowych wyświetlaczy LCD. Te wszystkie wydarzenia Rysunek 1. Uproszczony schemat funkcjonalny układu skłaniają mnie do twierSEPS525 w zakresie sterownika matrycy OLED
32
032-040_coloroled.indd 32
W ofercie AVT* AVT-5409 A Podstawowe informacje: • Napięcie zasilania: 4…6 V DC (lub 3 baterie AA). • Maksymalny prąd obciążenia: 100 mA (zależnie od treści obrazu oraz ustawienia sterownika ekranu). Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Projekty pokrewne na CD/FTP: (wymienione artykuły są w całości dostępne na CD)
AVT-5246 Atframe – ramka do zdjęć cyfrowych EP 7/2010 AVT-5208 T-Mixer. Nowoczesny mikser audio z panelem dotykowym EP 11/2009 * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
dzenia, iż przyszłość elektroniki w zakresie systemów wizualizacji oraz GUI, będzie należała do technologii OLED. Wystarczy skierować uwagę w stronę nowoczesnych, topowych modeli telefonów komórkowych, markowych przyrządów pomiarowych z tzw. wysokiej półki lub urządzeń medycznych, by ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:27:24
Ramka cyfrowa do zdjęć Tabela 1. Rozkład wyprowadzeń wyświetlacza MI160128AO z opisem ich funkcjonalności Pin 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
Symbol NC VSDH VDDH VSSH
Opis Niewykorzystane Masa sterownika kolumn Napięcie zasilania sterownika kolumn i wierszy (14 V) Masa sterownika wierszy Rezystor referencyjny źródła prądowego (regulacja jasności). Pomiędzy to wejście IREF a masę należy dołączyć rezystor o wartości 68 kV. OSCA2 Rezystor referencyjny wewnętrznego oscylatora. Jeśli wewnętrzny oscylator jest wykorzystywany pomiędzy OSCA2 a OSCA1 należy dołączyć rezystor o wartości OSCA1 10 k. W przeciwnym wypadku OSCA1 jest wejściem zewnętrznego sygnału zegarowego. VDDIO Napięcie zasilania interfejsów I/O sterownika (1.6÷3.3 V) VSYNCO Wyjście sygnału synchronizacji pionowej (aktywny interfejs RGB) VSYNC Wejście sygnału synchronizacji pionowej (aktywny interfejs RGB) HSYNC Wejście sygnału synchronizacji poziomej (aktywny interfejs RGB) DOTCLK Wejście sygnału taktującego (aktywny interfejs RGB) ENABLE Wejście aktywacji dla sygnału video RGB Wybór typu magistrali danych: 0: magistrala zgodna z interfejsem 80XX, 1: magiCPU strala zgodna z interfejsem 68XX PS Wybór rodzaju magistrali danych: 0: szeregowa, 1: równoległa D17 D16 D15 Dwukierunkowa, 9-bitowa magistrala danych. Znaczenie poszczególnych wyproD14 wadzeń zależy od ustawienia wejścia PS: dla magistrali równoległej 8-bitowej wykorzystywane są wejścia D17…D10 a dla 9-bitowej D17…D9. Dla magistrali D13 szeregowej SPI wybrane wejścia mają następującą funkcjonalność: D17->SCL, D12 D16->SDI, D15->SDO. Wejścia niewykorzystane należy podłączyć do masy. D11 D10 D9 Sygnał wyboru rodzaju danych: 0: rozkaz sterujący, 1: argument lub bajt pamięci RS obrazu DDRAM CS Sygnał wyboru układu (aktywacji chipsetu) RD Sygnał żądania operacji odczytu WR Sygnał żądania operacji zapisu RES Sygnał zerowania chipsetu VSS Masa logiki sterownika VDD Napięcie zasilania logiki sterownika (2.6÷3.3 V) VSSH Masa sterownika wierszy VDDH Napięcie zasilania sterownika kolumn i wierszy (14 V) VSDH Masa sterownika kolumn NC Niewykorzystane
nabrać pewności, iż postawiona wyżej teza graniczy z pewnością! Idąc, więc z duchem czasu wykorzystajmy w naszym projekcie kolorowy panel OLED, dla którego to dotychczasowe obszary zastosowań zarezerwowane były wyłącznie dla nowoczesnych smartfonów. Nie będzie to, co prawda, element o tak wysublimowanych parametrach, jakie można znaleźć we wspomnianych powyżej rozwiązaniach profesjonalnych, ale i cena tego peryferium jest, nazwijmy to, „amatorska”, a więc dostępna dla przeciętnego elektronika. Artykuł postanowiłem opracować w nieco inny sposób, niż miało to miejsce dotychczas. Tym razem przedstawię niezbędne minimum informacji dotyczących samego wyświetlacza skupiając się bardziej na aspektach programistycznych a na „deser” pokażę projekt ramki cyfrowej wyposażonej w tenże panel OLED (niespotykane w handlu rozwiązanie) oraz zintegrowaną obsługę kart typu microSD. Przejdźmy, zatem, do interesującego nas panelu będącego przedmiotem niniejszego artykułu. Przeglądając rozwiązania dostępne w handlu dość szybko zorientowałem się, że lista ich nie będzie zbyt długa, zwłaszcza mając na uwadze kryteria cenowe. W ten prosty sposób, jedynym panelem, jaki mogłem z powodzeniem zastosować, okazał się kolorowy, pasywny wyświetlacz OLED produkcji Multi-Inno Technology Co., Ltd. o oznaczeniu MI160128AO charakteryzujący się następującymi parametrami: • rozdzielczość ekranu 160×128 pikseli, • możliwość wyświetlania 262 tys. kolorów (18 bitów) lub 65 tys. kolorów (16 bitów), • rozmiar obszaru aktywnego ekranu 34 mm×28 mm,
REKLAMA
ELEKTRONIKA PRAKTYCZNA 8/2013
032-040_coloroled.indd 33
33
2013-07-25 10:27:27
PROJEKTY Listing 1. Listing funkcji zapisu rozkazu sterującego Listing 2. Funkcja zapisu argumentu • wbudowany, zaawansowany static void WriteCommand(uint8_t Command) rozkazu sterującego lub danej pamięci sterownik ekranu SEPS525 { ekranu DDRAM RESET_RS; wyposażony w pamięć static void WriteData(uint8_t Data) RESET_WR; { RESET_CS; ekranu DDRAM o wielkości RESET_WR; DATA_PORT = Command; RESET_CS; 160×18(RGB)×128=368640 SET_CS; DATA_PORT = Data; SET_WR; bitów, SET_CS; SET_RS; SET_WR; } • 3 dostępne interfejsy sterują} ce: równoległy (68/80 w konfiguracji 8/9/16/18-bitów), Listing 3. Listing funkcji zapisu rozkazu sterującego wraz z argumentem SPI i RGB, static void WriteRegister(uint8_t Register, uint8_t Value) • niewielkie wymiary zewnętrzne { WriteCommand(Register); 40 mm×34 mm×1,7 mm (imponująco WriteData(Value); } mała grubość!). List.4. Zawartość pliku nagłówkowego SEPS525drv.h
#define HORIZ_RESOLUTION 160 //Rozdzielczość pozioma ekranu #define VERT_RESOLUTION 128 //Rozdzielczość pionowa ekranu //Ustawienia liczby obsługiwanych kolorów (1->65K, 0->262K) #define COLOR_DEPTH_65K 1 //Informacja dla kompilatora czy korzystamy z możliwości odczytu obrazków z plików na karcie SD (używamy PetitFS) #define USE_SD_PICTURE_SUPPORT 1 //Definicje rozkazów sterujących (przedrostek SET) i dostępnej listy ich argumentów (bez przedrostka SET) #define SET_OSC_CTRL 0x02 //Konfiguracja sygnału zegarowego/oscylatora #define OSC_WITH_EXT_RESISTOR (0<<6) #define OSC_WITH_INT_RESISTOR (1<<6) #define CLOCK_SCR_CLOCK_OFF 0b00 #define CLOCK_SCR_INT_OSC 0b01 #define CLOCK_SCR_EXT_CLOCK 0b11 //Konfiguracja częstotliwości ramki: częstotliwość oscylatora oraz wartość podzielnika (wybrane wartości) #define SET_CLOCK_DIV 0x03 #define FRAME_RATE_75HZ (0b0000<<4) #define FRAME_RATE_80HZ (0b0001<<4) #define FRAME_RATE_85HZ (0b0010<<4) #define FRAME_RATE_90HZ (0b0011<<4) #define FRAME_RATE_95HZ (0b0100<<4) #define FRAME_RATE_100HZ (0b0101<<4) #define FRAME_RATE_105HZ (0b0110<<4) #define FRAME_RATE_110HZ (0b0111<<4) #define FRAME_RATE_115HZ (0b1000<<4) #define FRAME_RATE_120HZ (0b1001<<4) #define FREQ_DIVIDEDBY_1 0b0000 #define FREQ_DIVIDEDBY_2 0b0010 #define FREQ_DIVIDEDBY_3 0b0011 #define FREQ_DIVIDEDBY_4 0b0100 #define FREQ_DIVIDEDBY_5 0b0101 #define FREQ_DIVIDEDBY_6 0b0110 #define FREQ_DIVIDEDBY_7 0b0111 #define FREQ_DIVIDEDBY_8 0b1000 #define SET_REDUCE_CURRENT 0x04 //Konfiguracja poboru mocy przez peryferia sterownika #define DRIVING_CURRENT_NORMAL (0<<2) #define DRIVING_CURRENT_HALF (1<<2) #define OSC_POWER_ON (0<<1) #define OSC_POWER_OFF (1<<1) #define POWER_SAVE_MODE_DISABLE (0<<0) #define POWER_SAVE_MODE_ENABLE (1<<0) #define SET_SOFT_RESET 0x05 //Reset softwareowy sterownika SEPS525 #define SOFT_RESET_OFF (0<<0) #define SOFT_RESET_ON (1<<0) #define SET_DISPLAY_ON_OFF 0x06 //Programowe sterowanie załączaniem ekranu #define DISPLAY_OFF (0<<0) #define DISPLAY_ON (1<<0) #define SET_PRECHARGE_TIME_RED 0x08 //Czas wstępnego ładowania diod OLED (w cyklach oscylatora) #define SET_PRECHARGE_TIME_GREEN 0x09 #define SET_PRECHARGE_TIME_BLUE 0x0A #define SET_PRECHARGE_CURRENT_RED 0x0B //Prąd wstępnego ładowania diod OLED (wartosc * 8uA) #define SET_PRECHARGE_CURRENT_GREEN 0x0C #define SET_PRECHARGE_CURRENT_BLUE 0x0D #define SET_DRIVING_CURRENT_RED 0x10 //Prąd diod OLED (wartosc * 1uA) #define SET_DRIVING_CURRENT_GREEN 0x11 #define SET_DRIVING_CURRENT_BLUE 0x12 #define SET_DISPLAY_MODE_SET 0x13 //Konfiguracja sposobu odzwierciedlenia danych obrazu w pamięci DDRAM sterownika #define RGB_SWAP_OFF (0<<7) //RGB->RGB #define RGB_SWAP_ON (1<<7) //RGB->BGR #define ROW_SCAN_DIR_NORMAL (0<<5) //0, 1, 2...127 #define ROW_SCAN_DIR_REVERSE (1<<5) //127, 126, 125...0 #define COLUMN_SCAN_DIR_NORMAL (0<<4) //0, 1, 2...159 #define COLUMN_SCAN_DIR_REVERSE (1<<4) //159, 158, 157...0 #define ONE_SCREEN_MODE (0<<2) #define TWO_SCREEN_MODE (1<<2) #define COLUMN_DATA_DISP_CTRL_NORMAL 0b00 #define COLUMN_DATA_DISP_CTRL_ALL_LOW 0b01 #define COLUMN_DATA_DISP_CTRL_ALL_HIGH 0b10 #define SET_RGB_INTERFACE 0x14 //Konfiguruje rodzaj interfejsu RGB jak i magistrali sterującej #define RGB_INTERFACE_18BIT (0b00<<4) #define RGB_INTERFACE_16BIT (0b01<<4) #define RGB_INTERFACE_6BIT (0b10<<4) #define INTERFACE_MODE_MPU (1<<0) //Magistrala sterująca MPU #define INTERFACE_MODE_RGB (0<<0) //Aktywny interfejs RGB sterownika #define SET_RGB_POLARITY 0x15 //Konfiguruje polaryzację sygnałów interfejsu RGB #define DOT_CLOCK_POL_0 (0<<4) //Dane zatrzaskiwane przy zboczu rosnącym #define DOT_CLOCK_POL_1 (1<<4) //Dane zatrzaskiwane przy zboczu opadającym #define VSYNC_OUT_DISABLE (0<<3) //Dezaktywacja wyjścia sygnałów synchronizacji pionowej VSYNCO #define VSYNC_OUT_ENABLE (1<<3) //Aktywacja wyjścia sygnałów synchronizacji pionowej VSYNCO #define POLARITY_ENABLE (0<<5) #define POLARITY_DISABLE (1<<5)
34
032-040_coloroled.indd 34
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:27:27
Ramka cyfrowa do zdjęć List.4. c.d.
#define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define
SET_MEM_WRITE_MODE 0x16 //Konfiguruje tryb zapisu do pamięci obrazu oraz zachowanie wewn. licznika adresów SING_TRANS_18BIT_262K (0b000<<4) SING_TRANS_16BIT_65K (0b010<<4) DUAL_TRANS_9BIT_262K (0b100<<4) DUAL_TRANS_8BIT_65K (0b110<<4) TRIPLE_TRANS_8BIT_262K (0b111<<4) HORIZ_ADDR_INCR (1<<2) //Wewnętrzny licznik adresów DDRAM jest inkrementowany w pionie HORIZ_ADDR_DECR (0<<2) //Wewnętrzny licznik adresów DDRAM jest dekrementowany w pionie VERT_ADDR_INCR (1<<1) //Wewnętrzny licznik adresów DDRAM jest inkrementowany w poziomie VERT_ADDR_DECR (0<<1) //Wewnętrzny licznik adresów DDRAM jest dekrementowany w poziomie DDRAM_WRITTEN_HORIZ (0<<0) //Dane do DDRAM zapisywanie wierszami DDRAM_WRITTEN_VERT (1<<0) //Dane do DDRAM zapisywanie kolumnami SET_MEM_X1_ADDR 0x17 //Ustawienia aktywnego obszaru pamięci ekranu DDRAM (X1-Y1 , X2-Y2) SET_MEM_X2_ADDR 0x18 SET_MEM_Y1_ADDR 0x19 SET_MEM_Y2_ADDR 0x1A SET_MEM_ACCESS_POINTER_X 0x20 //Współrzędna X początkowego adresu pamięci DDRAM przeznaczonego do zapisu SET_MEM_ACCESS_POINTER_Y 0x21 //Współrzędna Y początkowego adresu pamięci DDRAM przeznaczonego do zapisu SET_DDRAM_DATA_ACCESS_PORT 0x22 //Rozkaz dostępu do pamięci ekranu DDRAM (rozpoczyna zapis ekranu) SET_DISP_DUTY_RATIO 0x28 //Wyznacza zakres wierszy dla mechanizmu odświeżania ekranu SET_DISP_START_LINE 0x29 //Określa adres początkowego wiersza ekranu SET_IREF 0x80 //Konfiguruje źródło napięcia odniesienia REF_VOLT_CTRL_BY_EXT_RESISTOR (0<<0) REF_VOLT_CTRL_BY_INT_RESISTOR (1<<0)
Jak wspomniano, wyświetlacz MI160128AO wyposażono w rozbudowany, scalony sterownik ekranu SEPS525 produkcji Synocoam Co. Ltd. Układ wyposażono w szereg zaawansowanych, sprzętowych funkcji sterujących czyniąc obsługę panelu OLED bardzo łatwą. Układ integruje
w sobie 480 źródeł prądowych (po 160 dla każdej składowej RGB) przeznaczonych do sterowania pracą kolumn matrycy OLED (wyprowadzeń wspólnych anod diod OLED) z możliwością programowej zmiany prądu (w 256 krokach, maksymalnie do wartości 255 mA), 128 kluczy tranzystorowych prze-
znaczonych do sterowania pracą wierszy (wspólnych katod diod OLED), blok formujący napięcia referencyjne dla całej architektury sterownika, zintegrowany, stabilizowany oscylator dostarczający przebiegi zegarowe do sterowania pracą wszystkich, wewnętrznych modułów oraz pamięć ekranu DDRAM
Listing 5. Listing funkcji inicjalizacji sterownika SEPS525 i włączenia panela OLED.
void SEPS525init(void) { //Port danych OLED jako port wyjsciowy ze stanem 0x00 DATA_DDR = 0xFF; //Porty sterujące OLEDa jako wyjsciowe ze stanami: RST=1, RD=1 (nie korzystamy z operacji odczytu), pozostałe=0 CONTROL_PORT |= (1<
ELEKTRONIKA PRAKTYCZNA 8/2013
032-040_coloroled.indd 35
35
2013-07-25 10:27:28
PROJEKTY
Rysunek 2. Wygląd okna aplikacji Bitmap2RGBconverter o organizacji 160×18(RGB)×128 bitów. Uproszczony schemat funkcjonalny układu SEPS525 w zakresie sterownika matrycy OLED przedstawiono na rysunku rysunku 1.
Szczegóły konstrukcyjne sterowników paneli OLED nie są tematem niniejszego artykułu, więc nie będę się wdawał w niuanse implementacyjne. Przypomnę tylko, że sterowanie pracą matrycy diod OLED (jak zresztą typowej diody LED) odbywa się dzięki zastosowaniu źródeł prądowych sterowanych cyfrowo, które zapewniają wysoki prąd ładowania wstępnego (pozwalający na szybkie naładowanie pojemności pasożytniczej diody OLED) oraz właściwy prąd sterujący, przy czym sama kontrola jasności pojedynczego piksela jest dokonywana poprzez zmianę wypełnienia impulsu sterującego generowanego przez sterownik kolumn. Czytelników szczególnie zainteresowanych tą tematyką odsyłam do bardzo ciekawego opracowania firmy Solomon Systech Ltd.
dostępnego w Internecie pod tytułem „OLED Driver IC Optimizes Display Performance” lub do artykułu mojego autorstwa opublikowanego w EP 01/2011 i 02/2011 pt. „Obsługa monochromatycznych wyświetlaczy OLED ze sterownikiem SSD1325”. Wróćmy, zatem do naszego wyświetlacza, ponieważ obiecałem skupić się na zagadnieniach programistycznych. Moduł ten wyposażony został w 35-stykowe złącze typu ZIF, którego rozkład wyprowadzeń wraz z opisem ich funkcjonalności zamieszczono w tabeli 1. Już z pobieżnej analizy opisów wyprowadzeń złącza możemy wnioskować, że wprowadzono typowe sygnały sterujące, z którymi można się spotkać przy każdego rodzaju modułach wyświetlaczy graficz-
Listing 6. Listing funkcji SetActiveWindow
static void SetActiveWindow(uint8_t X1, uint8_t Y1, uint8_t X2, uint8_t Y2) { WriteRegister(SET_MEM_X1_ADDR, X1); //Adres startowy aktywnego obszaru pamięci ekranu dla osi X WriteRegister(SET_MEM_X2_ADDR, X2); //Adres końcowy aktywnego obszaru pamięci ekranu dla osi X WriteRegister(SET_MEM_Y1_ADDR, Y1); //Adres startowy aktywnego obszaru pamięci ekranu dla osi Y WriteRegister(SET_MEM_Y2_ADDR, Y2); //Adres końcowy aktywnego obszaru pamięci ekranu dla osi Y WriteRegister(SET_MEM_ACCESS_POINTER_X, X1); //Współrzędna X początkowego adresu pamięci DDRAM przeznaczonego do zapisu WriteRegister(SET_MEM_ACCESS_POINTER_Y, Y1); //Współrzędna Y początkowego adresu pamięci DDRAM przeznaczonego do zapisu }
Listing 7. Listing funkcji umożliwiającej wyświetlenie kolorowego obrazu zapisanego w tablicy typu uint8_t.
void DrawPicture(uint8_t X1, uint8_t Y1, const uint8_t *Picture) { uint16_t Bytes, i = 2; /* Obliczamy liczbę bajtów niezbędnych do wysłania do pamięci ekranu DDRAM w zależnosci od wymiarów obrazka (okreslają je dwa, pierwsze bajty tablicy Picture) jak i aktulanej głębi kolorów. Wspomniana tablica, co oczywiste, musi miec odpowiednią budowę wynikającą z oczekiwanej liczby kolorów, za co odpowiada dedykowana aplikacja konwertera obrazów. W wersji 262K głębi kolorów wykorzystujemy pełną, 18-bitową paletę kolorów (RGB typu 666) , inaczej niż to ma miejsce w pozostałych funkcjach. */ #if COLOR_DEPTH_65K == 1 Bytes = 2*(pgm_read_byte(&Picture[0]))*pgm_read_byte(&Picture[1]); #else Bytes = 3*(pgm_read_byte(&Picture[0]))*pgm_read_byte(&Picture[1]); #endif //Ustawiamy aktywne okno pamięci obrazu DDRAM sterownika SEPS525 by uprościć zapis danych SetActiveWindow(X1, Y1, X1+pgm_read_byte(&Picture[0])-1, Y1+pgm_read_byte(&Picture[1])-1); //Komenda inicjująca zapis do pamięci ekranu DDRAM WriteCommand(SET_DDRAM_DATA_ACCESS_PORT); while(i < Bytes+2) WriteData( pgm_read_byte(&Picture[i++]) ); }
Listing 8. Listing funkcji umożliwiającej wyświetlenie kolorowego obrazu zapisanego na karcie SD w pliku *.rgb.
void DrawSDPicture(uint8_t X1, uint8_t Y1, char *fileName) { register uint8_t Width, Height; uint16_t Bytes, i; WORD readBytes; if(pf_open(fileName) != FR_OK) return; //Jesli brak pliku na karcie SD to kończymy działanie funkcji //Odczyt pierwszego sektora o wielkosci 512 bajtów pf_read(SDbuffer, 512, &readBytes); //Zmienna readBytes informuje nas o rzeczywistej liczbie odczytanych bajtów //Wyznaczenie szerokosci i wysokosci obrazka (pierwsze 2 bajty, gdyż obrazek jest mniejszy jest niż 256x256px) Width = SDbuffer[0]; Height = SDbuffer[1]; //Obliczenie ilości bajtów reprezentujących obrazek w zależnosci od formatu (565 lub 666) #if COLOR_DEPTH_65K == 1 Bytes = 2*Width*Height; #else Bytes = 3*Width*Height; #endif //Ustawiamy aktywne okno pamięci obrazu DDRAM sterownika SEPS525 by uprościć zapis danych SetActiveWindow(X1, Y1, X1+Width-1, Y1+Height-1); //Komenda inicjująca zapis do pamięci ekranu DDRAM WriteCommand(SET_DDRAM_DATA_ACCESS_PORT); //Wysyłamy pozostałą część bajtów z otwartego wczeniej bufora pomijając 2 pierwsze bajty definiujące rozmiar obrazka for(i=2; i
36
032-040_coloroled.indd 36
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:27:28
Ramka cyfrowa do zdjęć Listing 9. Konstrukcja struktury opisującej zestaw znaków
typedef struct //Deklaracja struktury przechowującej parametry bieżącej czcionki { uint8_t Width; //Rzeczywista szerokość znaku (px) uint8_t Height; //Rzeczywista wysokość znaku (px) uint8_t Interspace; //Odstęp pomiędzy znakami (px) uint8_t BytesPerChar; //Liczba bajtów danych tablicy wzorców przypadających na definicję 1 znaku uint8_t FirstCharCode; //Kod ASCII pierwszego znaku w tablicy wzorców const uint8_t *Bitmap; //Wskaźnik to tablicy zawierającej wzorce poszczególnych znaków } fontDescription;
nych, co z kolei przekłada się na podobieństwo procedur sterujących. Przypomnę już po raz kolejny, iż sterowanie pracą wyświetlaczy tego typu polega, po pierwsze, na wysyłaniu predefiniowanych rozkazów sterujących i towarzyszących im argumentów, za pomocą których ustawiamy niezbędne parametry konfiguracyjne sterownika ekranu zaś po drugie, na zapisie (lub też odczycie) danych do/z pamięci ekranu DDRAM powodującej ich natychmiastowe wyświetlenie. Interpretacja rodzaju danych, które mają zostać odebrane przez chipset SEPS525, jest zdeterminowana poziomem wyprowadzenia RS. Jest to typowe rozwiązanie w sterowaniu wyświetlaczami różnego typu. Poziom niski na tym wyprowadzeniu decyduje o tym czy przesyłana wartość zostanie zinterpretowana jako rozkaz sterujący, zaś poziom wysoki powoduje, że dana ta zinterpretowana zostanie jako argument przesłanego wcześniej rozkazu sterującego lub słowo pamięci ekranu DDRAM. W związku z powyższą organizacją procedur sterujących można wyróżnić dwa rodzaje sekwencji operacji zapisu do układu SEPS525 (operacje odczytu przebiegają analogicznie, lecz nie będą tematem naszych rozważań): • sekwencja zapisu rozkazu sterującego, • sekwencja zapisu argumentu rozkazu sterującego lub danych do pamięci ekranu DDRAM. Wspomnianym sekwencjom sterującym odpowiadają funkcje, które zamieszczono na listingu 1 i listingu 2. Dla uproszczenia kolejnej procedury, odpowiedzialnej za konfigurację sterownika SEPS525, wprowadzimy jeszcze jedną, prostą funkcję narzędziową, za pomocą której prześlemy do sterownika ekranu rozkaz sterujący wraz z towarzyszącym mu argumentem. Ciało tej funkcji narzędziowej pokazano na listingu 3. Posiłkując się tymi elementarnymi funkcjami narzędziowymi umożliwiającymi komunikację ze sterownikiem wyświetlacza możemy przejść do funkcji służącej inicjalizacji sterownika SEPS525 i włączeniu zasilania panelu OLED. Zanim jednak przejdę
do omawiania wspomnianej funkcji inicjalizacyjnej pokażę zawartość pliku nagłówkowego SEPS525drv.h, w którym zdefiniowano nazwy (oraz odpowiadające im wartości) interesujących nas rozkazów sterujących jak i możliwych wartości ich argumentów. Proszę o zwrócenie uwagi na sposób zapisu poszczególnych definicji. Preferuję tego typu rozwiązanie, gdyż umożliwia mi ono szybkie zorientowanie się w możliwościach danego peryferium bez jakiegokolwiek zaglądania do jego dokumentacji, gdyż każdy definiowany parametr (nazwa rozkazu, dostępne wartości argumentów) został bardzo jednoznacznie zidentyfikowany. Wspomniany plik nagłówkowy pokazano na listingu 4. Znając definicje pokazane na listingu 4 bez trudu i słowa komentarza zorientujemy się, jakiego rodzaju konfiguracje przeprowadzane są w zakresie funkcji inicjalizacyjnej, której ciało przedstawiono na listingu 5. Prawda, że łatwe? Mając tak skonstruowany plik nagłówkowy, bez trudu zorientujemy się, jakiego rodzaju konfiguracji poddawany jest sterownik SEPS525 w trakcie procedury inicjalizacji. Krótkiej wzmianki wymaga funkcja SetActiveWindow. Za jej pomocą definiujemy aktywny obszar ekranu ograniczony współrzędnymi jego górnego, lewego wierzchołka (X1/Y1) oraz dolnego, prawego wierzchołka (X2/Y2) w ramach, którego w trakcie operacji zapisu/odczytu sterownik SEPS525 automatycznie inkrementuje wewnętrzny licznik adresów. Jest to także dość typowe rozwiązanie stosowane powszechnie w implementacji wszelkiego rodzajów sterowników wyświetlaczy graficznych, które znacznie upraszcza procedury wyświetlające znaki czy obrazy. Ciało funkcji SetActiveWindow pokazano na listingu 6. W tym momencie, potrafimy już zainicjować interesujący nas panel OLED w związku, z czym przejdziemy do opisu funkcji odpowiedzialnych za wyświetlanie obrazów (zapisanych zarówno w pamięci Flash mikrokontrolera jak i na karcie pamięci SD) jak i czcionek ekranowych. Pierwszym z zadań, jakie przede mną stanęły było opracowanie efektywnej funkcji pozwalającej na
wyświetlanie obrazów na ekranie naszego panela OLED. Jako, że dla 8-bitowych mikrokontrolerów AVR obsługa plików BMP a w szczególności JPG w czasie rzeczywistym byłaby dość dużym wyzwaniem postanowiłem napisać prostą aplikację umożliwiającą konwersję wspomnianych typów plików do prostego formatu zawierającego surowe dane poszczególnych pixeli obrazu. Taka oto powstała prosta aplikacja Bitmap2RGBconverter, której wygląd pokazano na rysunku 2. Za pomocą tej prostej aplikacji każdy plik typu BMP czy JPG może zostać skonwertowany do dwóch typów danych wyjściowych: • pliku typu *.c zawierającego definicję tablicy bajtów w pamięci Flash opisujących kolory poszczególnych pixeli obrazu, • pliku typu *.rgb zawierającego dane binarne j.w. Ponadto, program ten umożliwia wybór docelowej palety kolorów spośród wartości RGB565 (dwa bajty opisujące kolor pojedynczego piksela obrazu) lub RGB666 (3 bajty opisujące kolor pojedynczego piksela obrazu) oraz nadanie nazwy generowanej tablicy, dla przypadku pliku *.c. Należy podkreślić, iż niezależnie od wybranego formatu danych wyjściowych, dwa (a dla szerokości>255px, trzy) pierwsze bajty pliku docelowego zawierają szerokość i wysokość obrazka. Posiłkując się wspomnianą wyżej aplikacją oraz funkcjami przedstawionymi na listingu 7 i listingu 8 otrzymujemy możliwość wyświetlenia obrazu na naszym panelu OLED, którego dane umieszczone są albo w tablicy, którą należy dołączyć do właściwej aplikacji lub też na karcie SD (użyto funkcji biblioteki PetitFS autorstwa Elm Chan). Jak widać, wyświetlanie obrazów wygenerowanych przez aplikację Bitmap2RGBREKLAMA
Listing 10. Konstrukcja funkcji SetFont
void SetFont(const fontDescription *Font) { CurrentFont.Width = pgm_read_byte(&Font->Width); CurrentFont.Height = pgm_read_byte(&Font->Height); CurrentFont.Interspace = pgm_read_byte(&Font->Interspace); CurrentFont.BytesPerChar = pgm_read_byte(&Font->BytesPerChar); CurrentFont.FirstCharCode = pgm_read_byte(&Font->FirstCharCode); CurrentFont.Bitmap = (uint8_t*)pgm_read_word(&Font->Bitmap); }
ELEKTRONIKA PRAKTYCZNA 8/2013
032-040_coloroled.indd 37
37
2013-07-25 10:27:29
PROJEKTY Listing 11. Konstrukcja funkcji odpowiedzialnej za wyświetlanie napisów na wyświetlaczu OLED
Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie elementów kolorem czerwonym
void DrawText(uint8_t X1, uint8_t Y1, char *Text, uint16_t Color, uint16_t Background) { register char Character; register uint8_t widthIndex, heightIndex, widthByteNr, readByte, pixelsNr, i; uint16_t offset; //Sprawdzamy kody ASCII kolejnych znaków napisu wejsciowego aż do wystąpienia terminatora kończącego C-string while ((Character = *Text++)) { if(Character == ‘ ‘) DrawFilledBox(X1, Y1, X1+CurrentFont.Width-1, Y1+CurrentFont.Height-1, Background); else { //Ustawiamy aktywne okno pamięci obrazu DDRAM sterownika SEPS525 by uprościć zapis danych SetActiveWindow(X1, Y1, X1+CurrentFont.Width-1, Y1+CurrentFont.Height-1); //Komenda inicjująca zapis do pamięci ekranu DDRAM WriteCommand(SET_DDRAM_DATA_ACCESS_PORT); //Obliczamy offset położenia wzroca bieżącego znaku ASCII w tablicy wzorców znaków offset = (Character-CurrentFont.FirstCharCode)*CurrentFont.BytesPerChar; for(heightIndex = 0; heightIndex < CurrentFont.Height; heightIndex++) { for(widthIndex = 0, widthByteNr = 0; widthIndex < CurrentFont.Width; widthIndex += 8, widthByteNr++) { //Odczytujemy kolejny bajt definicji znaku umieszczony w tablicy Bitmap pod odpowiednim adresem readByte = pgm_read_byte(&CurrentFont.Bitmap[offset++]); //Dla czcionek o szerokosci nie bedacej wielokrotnoscia liczby 8 każdy, ostatni w wierszu bajt definicji wzorca //nie jest w pełni wykorzystany, jesli chodzi o poszczególne bity w związku z czym w takim przypadku musimy //ustalic użyteczną liczbę pixeli przeznaczonych do przesłania do sterownika SEPS525 pixelsNr = ((widthByteNr+1)*8) <= CurrentFont.Width ? 8 : CurrentFont.Width - (widthByteNr *8); for(i=0; i
Wykaz elementów Rezystory: (obudowy SMD 0603) R1: 187 kV (1%) R2: 18 kV (1%) R3: 47 kV R4: 68 kV R5: 20 kV R6: 10 kV R7: 2,2 kV Kondensatory: C1: 10 mF/16 V (ceramiczny X5R, SMD 0805) C2:1 mF/16 V (ceramiczny X5R, SMD 0603) C3, C8…C10, C13…C15:100 nF (ceramiczny X5R, SMD 0603) C4: 3,3 nF (ceramiczny X5R, SMD 0603) C5: 1 mF/20 V (SMD A, EIA 3216-18W) C5A, C5B: 10 mF/25 V (ceramiczny X5R, SMD 0805) C6, C7, C11, C12: 4,7 mF/20 V (SMD A, EIA 3216-18W) Półprzewodniki: U1: LP2950CDT-3.3 (obudowa DPACK) U2: TPS61085 (obudowa TSSOP8) U3: ATmega324A (obudowa TQFP44) D1: SS14 (obudowa SMA) T1: BC807 (obudowa SOT23-BEC) Inne: OLED: wyświetlacz kolorowy OLED MI160128_A0 (MULTI-INNO TECHNOLOGY) L1: dławik mocy 3,3 mH typu DLG-0504-3R3 L2: dławik 10 mH (obudowa SMD 1206) Q1: rezonator kwarcowy SMD 12 MHz typ 7M-12.000MAAJ-T (TXC, obudowa 3,2 mm×2,5 mm) SD-CARD: gniazdo karty microSD push-push typ MEM2051-00-19500-A z wyprowadzeniem Card Detect (GLOBAL CONNECTOR TECHNOLOGY, obudowa SMT) KEY: microswitch SMD DTSM31 ZIF: złącze typu ZIF do montażu powierzchniowego (raster 0.5 mm, 35-pin, dolny kontakt)
38
032-040_coloroled.indd 38
converter jest łatwe i efektywne. Na koniec tej tematyki chciałbym w dużym skrócie omówić zagadnienie generowania jak i wyświetlania własnych czcionek ekranowych. Tym razem, do utworzenia stosownych tablic i struktur zawierających używane w programie obsługi czcionki wykorzystano doskonały program fi rmy Atnel (www.atnel. pl) o nazwie PixelFactory, którego autorem jest Mirosław Kardaś. Program ten, oprócz dostępnej innej funkcjonalności, umożliwia utworzenie wzorców czcionek na podstawie wybranych przez użytkownika fontów dostępnych w systemie Windows, przy czym możliwe jest w zasadzie dowolne skalowanie elementów wyjściowych jak i wybór zakresu dostępnych znaków. Wynikiem działania programu jest utworzenie dwóch plików: plik C zawierający tablice wzorców wygenerowanych znaków jak i 2 struktury opisujące parametry fizyczne zestawu tychże znaków oraz plik H zawierający deklaracje używanych tablic/struktur jak i nowych typów danych. Nie będę w tym miejscu rozpisywał się na temat obsługi programu PixelFactory, gdyż po pierwsze jest ona niezmiernie intuicyjna a po drugie, stosowne artykuły znaleźć można w Internecie, lecz skupię się na kwestii konstrukcji wspomnianych struktur w świetle ich implementacji dla wyświetlaczy OLED zaznaczając od razu, iż w naszym programie obsługi zmodyfikujemy nieco sposób dostępu do wzorców znaków, jako że nie jest nam potrzebna tak duża elastyczność użytkowa, jaką przewidział autor tego, skądinąd, unikalnego programu. Najważniejszą strukturą z punktu widzenia programu obsługi urzą-
dzenia jest ta, która niesie informację na temat cech fizycznych zestawu znaków jak i samego znaku. Konstrukcję takiej struktury pokazano na listingu 9. Tablica wzorców poszczególnych znaków, do której wskaźnik umieszczony zostanie we wspomnianej strukturze jest typową tablicą uint8_t Tablica[] PROGMEM zawierającą wygenerowane przez program PixelFactory wzorce znaków. Nie korzystamy zarazem z trzeciej struktury, którą tworzy oprogramowanie, a która to zawiera informację o kodach znaków (i stosownym offsecie) umieszczonych w tablicy wzorców, gdyż moim zdaniem zwykle korzystamy z ciągłego przedziału dostępnych znaków standardu ASCII w odpowiednio ograniczonym zakresie (np. same cyfry lub małe litery). Dla wygody przewidziano dodatkową funkcję SetFont, której zadaniem jest odczytanie z pamięci Flash parametrów bieżącej czcionki do zmiennej umieszczonej w pamięci RAM, co upraszcza nieco konstrukcję właściwej funkcji odpowiedzialnej za wyświetlanie tekstu. Konstrukcję wspomnianej funkcji jak i docelowej funkcji odpowiedzialnej za wyświetlanie napisów zamieszczono na listingu 10 i listingu 11. Dla porządku należy dodać, iż użyta w ciele funkcji DrawText funkcja Draw_Pixel powoduje wysłanie do pamięci ekranu dwóch lub trzech bajtów danych opisujących wybrany kolor (w zależności od wybranej głębi kolorów), zaś funkcja DrawFilledBox powoduje wyświetlenie na ekranie wyświetlacz OLED prostokąta wypełnionego wybranym kolorem o współrzędnych określonych argumentami wywołania. ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:27:29
Ramka cyfrowa do zdjęć
REKLAMA
Rysunek 3. Schemat ideowy cyfrowej ramki zdjęciowej z kolorowym wyświetlaczem OLED W tym miejscu znamy już wszystkie szczegóły dotyczące sposobu obsługi wyświetlaczy OLED wyposażonych w sterownik ekranu SEPS525 w związku, z czym przejdźmy do obiecanego wcześniej rozwiązania praktycznego, jakim jest cyfrowa ramka zdjęciowa, której chemat ideowy pokazano na rysunku 3. ELEKTRONIKA PRAKTYCZNA 8/2013
032-040_coloroled.indd 39
Jak widać, i co może okazać się zdumiewające, jest to niezmiernie prosty system mikroprocesorowy składający się zaledwie z czterech, głównych elementów: mikrokontrolera ATmega324A, wyświetlacza OLED o rozdzielczości 160×128 pikseli, gniazda kart microSD typu push-push oraz przetwornicy typu step-up o oznaczeniu TPS61085
39
2013-07-25 10:27:30
PROJEKTY Ustawienia Fuse-bitów (ważniejszych): CKSEL3...0: 1111 SUT1...0: 11 CKDIV: 1 CKOUT: 1 JTAGEN: 1 BODEN: 1 SPIEN: 0 OCDEN: 1 BOOTRST: 1
produkcji firmy Texas Instruments w swej, podstawowej aplikacji pracy. Wybór ostatnio wspomnianego elementu nie był przypadkowy! Przetwornica ta odznacza się doskonałymi parametrami elektrycznymi, z których najważniejsze to wysoka sprawność dochodząca do 93%, szeroki zakres napięcia wejściowego (2,3 do 6 V), opcja miękkiego startu, szereg wbudowanych zabezpieczeń (termiczne, od niskiego napięcia wejściowego) oraz duża częstotliwość przełączania 1,2 MHz, dzięki czemu można stosować elementy o mniejszych wymiarach (mniejsza indukcyjność i pojemność). Dodatkowo, układ TPS61085 wyposażono w wejście EN (Enable) przy pomocy, którego możemy wyłączyć przetwornicę, jeśli zajdzie taka potrzeba (np. wygaszenie wyświetlacza) i tym samym ograniczyć pobór prądu ze źródła napięcia zasilającego. Kilka słów uwagi należy się obsłudze karty pamięci SD, jako że jest to zwykle dość skomplikowane zagadnienie z punktu widzenia programisty. Uważny Czytelnik z pewnością już zauważył, że zasoby sprzętowe mikrokontrolera zostały użyte w naszym systemie tak naprawdę w niewielkim stopniu, jednak należy mieć na uwadze, iż urządzenie to musi zapewnić obsługę karty pamięci SD sformatowanej dla systemu plików FAT (16/32), co pociąga za sobą konieczność stosowania dość „pamięciożernych” bibliotek, a więc i zaopatrzonych w odpowiednią ilość pamięci RAM mikrokontrolerów. Co należy szczególnie podkreślić, prosta implementacja tej funkcjonalności możliwa stała się dzięki wykorzystaniu gotowej biblioteki PetitFS autorstwa Elm Chan, dzięki której tak skomplikowane zagadnienie stało się niezmiernie proste a poza tym niezbyt wymagające, jeśli chodzi o obciążenie mikrokontrolera (w porównaniu np. do biblioteki AVR-DOS dostarczanej wraz z kompilatorem Bascom, której to autorem jest Franz Vögel). Co oczywiste, używana karta pamięci powinna być odpo-
40
032-040_coloroled.indd 40
Rysunek 4. Schemat montażowy cyfrowej ramki zdjęciowej z kolorowym wyświetlaczem OLED wiednio sformatowana. Dodatkowo, w konstrukcji urządzenia wykorzystano specjalne wyprowadzenie złącza karty SD oznaczone jako CD a służące do sprawdzenia jej obecności w gnieździe, co powinno zapobiec potencjalnym problemom programistycznym. Co więcej, w projekcie naszej ramki zdjęciowej skorzystano z mośliwości programowego sterowania zasilaniem wspomnianej karty pamięci dzięki zastosowaniu pary tranzystor T1/rezystor R7, co przydaje się szczególnie w przypadku niepoprawnej inicjalizacji sterownika karty lub też problemów ze stosowną komunikacją. W takich przypadkach, program główny, wykonuje restart zasilania karty SD i rozpoczyna jej ponowną inicjalizację.
Montaż Projekt płytki drukowanej ramki zdjęciowej pokazano na rysunku 4. Jak widać zaprojektowano bardzo zwartą i niewielką konstrukcję z zastosowaniem wyłącznie montażu SMD umieszczając, na co należy zwrócić szczególną uwagę, poszczególne elementy po obu stronach obwodu drukowanego. Jak zwykle w przypadku tego typu systemów, rozpoczynamy od wlutowania elementów o najbardziej kłopotliwej konstrukcji, czyli układów scalonych SMD oraz złącza ZIF. Następnie przechodzimy do przylutowania wszystkich elementów biernych zaś na sam koniec pozostawiamy wszelkiego rodzaju elementy mechaniczne. Każdorazowo należy uważać by nie uszkodzić termicznie poszczególnych podzespołów, zwłaszcza półprzewodników. Z uwagi na zagęszczenie wyprowadzeń złącza ZIF jak i układów scalonych przed pierwszym podłączeniem układu należy jeszcze raz sprawdzić jakość wykonanych połączeń by nie dopuścić do ewentualnych zwarć. Wspomniana kontro-
la będzie znacznie łatwiejsza, jeśli zmontowana płytkę sterownika przemyjemy alkoholem izopropylowym w celu wypłukania nadmiaru kalafonii lutowniczej. Z uwagi na fakt, iż zastosowany typ wyświetlacza nie posiada jakichkolwiek elementów) ułatwiających jego montaż, moduł ten najlepiej jest przytwierdzić do obwodu drukowanego urządzenia za pomocą dwustronnej taśmy klejącej. Poprawnie zmontowany układ powinien działać od razu po dołączeniu zasilania. Ewentualnego sprawdzenia może wymagać wartość napięcia wyjściowego przetwornicy, która to powinna wynosić 14±0.5 V. Warto podkreślić, iż należy zwrócić szczególną uwagę na polaryzację źródła zasilania, jako że urządzenie nie zostało zabezpieczone przed przypadkowym jej odwróceniem.
Obsługa Na temat samej obsługi urządzenia można tak naprawdę napisać niewiele, gdyż jest ona niezmiernie prosta. Funkcja int main(void) przeszukuje w nieskończonej pętli while(1) główny katalog karty SD w poszukiwaniu plików *.rgb po czy sekwencyjnie, w cyklach 2-sekundowych, wyświetla znalezione obrazki. Przejście do kolejnego pliku z obrazem może zostać przyspieszone poprzez naciśnięcie przycisku KEY. Po wyświetleniu ostatniego, dostępnego w katalogu głównym pliku typu *rgb, algorytm funckji głównej powraca na początek katalogu. Wszelkie, potencjalne problemy związane z inicjalizacją sterownika karty SD, jej nieobecnością w gnieździe czy też dotyczące systemu plików zostaną każdorazowo zasygnalizowane poprzez wyświetlenie odpowiedniego komunikatu.
Robert Wołgajew, EP
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 10:27:30
DSP dla każdego PROJEKTY
DSP dla każdego (2) Zestaw z ADAU1701 Aby ułatwić uruchamianie modułu STK_ADAU1701 opisanego w poprzedniej części artykułu (EP 7/2013) opracowano płytkę bazową umożliwiającą wygodne podłączenie DSP w realny tor audio i przetestowanie jego możliwości pod kontrolą oprogramowania Sigma Studio. Rekomendacje: projekt ma spore walory użytkowe i edukacyjne, przyda się nie tylko do zestawu audio, ale również w laboratorium uczelnianym. Schemat płytki bazowej ADAU1701_ CNB pokazano na rysunku 1. Umożliwia ona: • zasilanie modułu ADAU1701_MB, • podłączenie sygnałów wejściowych i wyjściowych poprzez gniazda RCA, • filtrację bierną sygnałów ADC/DAC,
• dołączenie poprzez dedykowane złącze odbiornika SPDIF lub zewnętrznego A/C z interfejsem I2S (ze względu na możliwość przenikania zaburzeń płytka ma wydzielony zasilacz dla modułu I2S), • dołączenie do portów GPIO poprzez złącza: potencjometru, enkodera i sygnałów cyfrowych GPIO. • generowanie sygnału WB (Write Back) dla zapisu parametrów ADAU do pamięci nielotnej po zaniku napięcia zasilania. Moduł jest zasilany napięciem przemiennym 7…9 V/200 mA poprzez złącze PWR. Po wyprostowaniu, odfiltrowaniu oraz stabilizacji poprzez U3 otrzymujemy napięcie 5 V dla modułu M1 (STK_ADAU1701, opis w EP 7/2013). Układ generowania sygnału zerowania U1 (MAX810) wytwarza podczas zaniku zasilania 5 V narastające zbocze sygnału WB umożliwiające zapisanie przez ADAU1701 parametrów do zewnętrznej pamięci EEPROM. Sygnały wejściowe ADC0/1 poprzez filtry bierne złożone z cewki L1, rezystora R5 i kondensatora C5 oraz przez kondensator CE6 separujący składowa stała doprowadzone są do wejść A/C modułu M1. Sygnały
AVT 5403
wyjściowe DAC0…DAC3, także po filtracji biernej za pomocą rezystora R4 i pojemności C4 oraz odseparowaniu składowej stałej za pomocą pojemności CE4, doprowadzone są do gniazd wyjściowych DAC0…DAC3. Złącze I2S umożliwia doprowadzenie sygnałów wejściowych z odbiornika SPDIF lub zewnętrznego przetwornika A/D. Sygnały musza być zgodne z 3,3 V. W wypadku współpracy z wejściem I2S, układ ADAU1701 nie jest taktowany kwarcem XT1, ale zewnętrznym sygnałem MCLK i jest konieczne przelutowanie zwory OSC w module MB oraz ewentualne skonfigurowanie mnożnika M0/ M1 w zależności od częstotliwości próbkowania sygnału wejściowego I2S. Stabilizator U2 dostarcza napięcia 3,3 V przeznaczonego dla I2S. Układ ADAU1701 dla ułatwienia sterowania w przypadku, gdy pracuje samodzielnie, jest wyposażony w uniwersalne GPIO. Płytka bazowa jest wyposażona w specjalne złącza POT1/POT2 do dołączenia potencjometrów 10 kV (regulacja i sterowanie analogowe, np. głośność). Złącze ENC umożliwia dołączenie enkodera cyfrowego.
Rysunek 1. Schemat ideowy płytki bazowej ADAU1701_CNB ELEKTRONIKA PRAKTYCZNA 8/2013
041-044_mini-dsp_(2).indd 41
41
2013-07-25 11:00:05
PROJEKTY W ofercie AVT* AVT-5403 A Podstawowe informacje: • Płytka bazowa dla modułu ADAU1701 opisanego w EP 7/2013. • Umożliwia łatwe zapoznanie się z podstawowymi funkcjami DSP. • Programowanie za pomocą SigmaStudio. • Zasilanie ~9…12 V/200 mA. Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Projekty pokrewne na CD/FTP: (wymienione artykuły są w całości dostępne na CD)
Rysunek 2. Rozmieszczenie elementów ADAU1701_CNB
Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie elementów kolorem czerwonym
Fotografia 3. Zmontowany ADAU1701_CNB Wykaz elementów Rezystory: (SMD 0805) R1…R4, R7, R9, R10: 560 V (1%) R5, R6: 47 kV (1%) R8, R11…R19: 10 kV (1%) Kondensatory: (SMD 0805, 5%) C1…C4: 5,6 nF C5, C6: 100 pF C7…C9, C12, C13: 10 mF C10, C11: 10 nF CE1…CE9: 47 mF (elektrolit., LOW ESR, Audio) CE10, CE11: 1000 mF/16 V (elektrolit. LOW ESR) Półprzewodniki: D1…D4: SUF4007 (dioda szybka SMD) U1: MAX810 (SOT-23) U2: LM1117-3.3 (SOT-223) U3: LM1117-5 (TO-220H) Inne: ADC0, ADC1, DAC0…DAC3: gniazdo RCA CC134 do druku ENC: złącze EH 4-pin GPIO: złącze EH 6-pin I2S: złącze IDC10 L1, L2: dławik SMD 1 mH/250 mA M1: zmontowany moduł ADAU1701_MB (opis w EP 7/2013) POT1, POT2: złącze EH 3-pin PWR: złącze ARK2/5 mm
42
041-044_mini-dsp_(2).indd 42
Rezystory R16 i R19 oraz kondensatory C10 i C11 zapewniają polaryzację, i filtrowanie wstępne sygnałów enkodera. Pozostałe sygnały doprowadzone są do złącza GPIO i można wykorzystać je do odczytu przełączników, wysterowania LED lub wyprowadzenia wyjściowych sygnałów I2S
AVT-5385 Przetwornik D/A z układem TDA1541 (EP 3/2013) AVT-5359 1-bitowy przetwornik A/D wysokiej klasy (EP 9/2012) AVT-5346 Wielobitowy przetwornik cyfrowo-analogowy audio z PCM1704 (EP 6-7/2012) AVT-5335 DAC TDA1543 (EP 3/2012) AVT-5188 Kompaktowy przetwornik C/A dla Audiofilów (EP 6/2009) AVT-5159 SDSP procesor (EP 11/2008) AVT-5148 Stereofoniczny kodek z interfejsem SPDIF (EP 9/2008) AVT-931 DsPICorder (EP 6/2006) AVT-450 Przetwornik A/C z interfejsem ADAT (EP 11-12/2005) AVT-384 Przetwornik audio analogowo-cyfrowy z wyjściem S/PDIF (EP 4/2005) AVT-379 Audiofilski przetwornik C/A (EP 2/2005) AVT-566 Procesor audio z wejściem S/PDIF (EP 3-4/2004) AVT-5084 Audiofilski przetwornik C/A Audio (EP 10-11/2002) AVT-5082 Cyfrowy procesor dźwięku (EP 9/2002) AVT-244 Procesor dźwięku z układem LM1036 (EP 8/1996) AVT-196 Procesor audio na układzie TDA1524A (EP 2/1995) * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
Rysunek 4. Schemat połączeń ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:00:05
DSP dla każdego do nadajnika SPDIF lub zewnętrznego C/A. Należy tylko pamiętać o napięciu wyjściowym wynoszącym 3,3 V. Szczegółowy opis użycia GPIO wraz z odpowiednimi przykładami jest zamieszczony w nocie aplikacyjnej firmy Analog Devices AN-951. Moduł bazowy jest zmontowany na dwustronnej płytce drukowanej. Rozmieszczenie elementów pokazano na rysunku 2. Montaż jest typowy i nie wymaga opisu, a uruchomienie sprowadza się do sprawdzenia obecności napięć zasilania. Zmontowany ADAU1701_CNB pokazano na fotografii 3.
Programowanie modułu
Rysunek 5. Konfiguracja sprzętu w Sigma Studio
Rysunek 6. Konfiguracja wewnętrzna ADAU1701
Rysunek 7. Konfiguracja GPIO
Uruchomiony moduł gotowy jest do oprogramowania za pomocą Sigma Studio. Przed rozpoczęciem pracy należy zarejestrować się na stronie Analog Devices w celu pobrania najnowszej wersji oprogramowania oraz otrzymania kodu aktywacyjnego. Po zainstalowaniu oprogramowania i uruchomieniu należy założyć i zapisać w wybranym katalogu nowy projekt. Uproszczony opis obsługi programu Sigma Studio zostanie przedstawiony na podstawie aplikacji dwudrożnej, stereofonicznej zwrotnicy LR-4, z ustalonym podziałem i regulacją głośności wspólną dla wszystkich kanałów. Pierwszym krokiem jest konfiguracja sprzętowa układu. Z ToolBox’a należy wybrać układ ADAU1701, pamięć EEPROM oraz programator USBI przeciągając je w obszar roboczy i łącząc je zgodnie z rysunkiem 4. W bloku programatora można wybrać adresy magistrali I2C ADAU (0x68) i EEPROM (0xA0). Używając programatora USBI należy jedynie uważać na adres wewnętrznej pamięci konfiguracji programatora, ponieważ nie ma ona zabezpieczenia przez zapisem i jakikolwiek pomyłkowy zapis do niej spowoduje unieruchomienie programatora i konieczność odesłania go do serwisu AD. W głównym menu należy ustawić częstotliwość próbkowania na 48 kHz (kwarc 12,288 MHz, M0=GND, M1=3,3 V). Drugim
REKLAMA
ELEKTRONIKA PRAKTYCZNA 8/2013
041-044_mini-dsp_(2).indd 43
43
2013-07-25 11:00:07
PROJEKTY krokiem jest skonfigurowanie układu ADAU1701 za pomocą zakładki Register Control (rysunek 5). Zakładka ta umożliwia konfigurowanie bloków funkcjonalnych, sposobu przepływu strumienia sygnału oraz funkcji GPIO. Konfigurację dla przykładowej aplikacji przedstawiono na rysunku 6. Załączone są bloki A/C oraz C/A, ustawienia I2S są domyślne. Dla współpracy z potencjometrem POT1 jest konieczne skonfigurowanie wyprowadzenia MP2 bloku GPIO jako ADC1, zgodnie z rysunkiem 7. Skonfigurowaliśmy sprzęt dla przykładowego projektu. Można przejść do narysowania schematu zwrotnicy. W tym celu wybieramy zakładkę Schematic. W menu ToolBox w zakładce ADAU1701 pojawi się lista gotowych bloków funkcjonalnych możliwych do wykorzystania w przypadku tego typu procesora. Z folderów ADAU1701 IO/ należy wybrać bloki obsługujące wejścia, wyjścia i GPIO. Z zakładki Filters/Crossover/DoublePrecision/2-Way/Crossover blok zwrotnicy dwudrożnej oraz z zakładki VolumeControls/ Adjustable Gain/ExtControl/ClicklessSWSlew blok regulacji wzmocnienia. Dla każdego bloku funkcjonalnego jest dostępna (zaznaczenie bloku +F1) krótka pomoc ułatwiająca jego skonfigurowanie. W wypadku bloków, które obsługują więcej niż jeden kanał (np. regulacja głośności) jest możliwe zwiększenie lub zmniejszenie liczby obsługiwanych kanałów poprzez zaznaczenie bloku i klikniecie prawym przyciskiem myszy (rysunek 8). Kompletny schemat przykładowej zwrotnicy przedstawia rysunek 9. Pozostaje konfiguracja podziału pasma częstotliwości, oczywiście pod kątem własnego rozwiązania (rysunek 10). Po kliknięciu ikonki na bloku filtra otwiera się graficzne menu umożliwiające skonfigurowanie układu, wybór topologii oraz parametryzację częstotliwości podziału. Oczywiście w przykładzie należy skonfigurować oba bloki filtrów kanałowych. Po połączeniu wszystkich elementów zgodnie ze schematem z rys. 9. projekt jest gotowy do skompilowania. Z menu wybieramy Action/Link-Compile-Download (F7). Jeżeli kompilator nie zgłosi błędów, to za pomocą programatora USBI podłączonego do złącza I2C oraz po założeniu zwory PGM wprowadzającej ADAU1701 w tryb programowania jest możliwe załadowanie programu i konfiguracji do pamięci EEPROM. Zakładam jednak, że nie dysponujemy USBI i do zaprogramowania ADAU1701 użyjemy zewnętrznego programatora EEPROM. Konieczne jest wygenerowanie pliku *.hex z zawartością EEPROM. Można to zrobić poprzez wybór zakładki Config (rysunek 11), zaznaczenie procesora ADAU1701 i wybór z menu podręcznego opcji WriteLatestCompilationtoE2PROM. Po wygenerowaniu plik *.hex znajduje się w podkatalogu IC2 naszego projektu i jest gotowy do zaprogramowania pamięci zewnętrznym programatorem.
Pamięć I2C może być zaprogramowana bezpośrednio w module, gdyż po zwarciu sygnału PGM - ADAU1701 ustawia wyjścia magistrali I2C w stan wysokiej impedancji, nie powodując zakłóceń w programowaniu. Po zaprogramowaniu moduł można podać testom w aplikacji…
Adam Tatuś, EP
Rysunek 9. Schemat zwrotnicy dwudrożnej
Rysunek 10. Konfiguracja filtru zwrotnicy
Rysunek 8. Konfiguracja bloków wielokanałowych
44
041-044_mini-dsp_(2).indd 44
Rysunek 11. Generowanie zawartości EEPROM ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:00:07
Włącznik urządzeń zasilanych z sieci 230 V AC PROJEKTY
Włącznik urządzeń zasilanych z sieci 230 V AC Sterownik urządzeń zasilanych z sieci 230 V AC jest niewątpliwym udogodnieniem życia. Zapewne każdy zetknął się z sytuacją, kiedy chciał włączyć lub wyłączyć dane urządzenie o konkretnej godzinie bądź po upływie określonego czasu. Dzięki połączeniu zegara czasu rzeczywistego oraz mikrokontrolera, możemy zostać wyręczeni w tej kwestii przez prezentowany poniżej sterownik. Rekomendacje: urządzenie przyda się w automatyce domowej, do sterowania zraszaniem ogrodu itp. Schemat ideowy sterownika pokazano na rysunku 1. Urządzenie kontrolowane jest przez mikrokontroler ATmega16. Taktowanie mikroprocesora jest ustawione na wewnętrzny oscylator RC o częstotliwości 8 MHz. Cały układ zasilany jest napięciem sieciowym 230 VAC. Poprzez transformator, mostek prostowniczy oraz kondensatory otrzymujemy napięcie rzędu kilkunastu woltów, które stabilizujemy poprzez układ L7805 do 5 V DC. Urządzenie jest wyposażone w wyświetlacz LCD 2×16 ze sterownikiem HD44780. Do sterowania użytkownik ma do dyspozycji 5 przycisków, które są ułożone w taki sposób, aby intuicyjnie domyśleć się ich przeznaczenia (rysunek 2). Do dyspozycji użytkownika jest także zworka 2 pozycyjna, za pomocą której możemy blokować lub odblokować urządzenie. Oczywiście, zamiast zworki w prosty sposób można podpiąć dowolny przełącznik, wedle własnych potrzeb. Elementami odpowiadającymi za włączanie lub wyłączanie urządzeń końcowych są dwustykowe przekaźniki z cewką na 12 V. Do styków przekaźników doprowadzone są napięcia sprzed transformatora – napięcie sieciowe 230 V AC. Styki są połączone ze złączami ARK. Po załączeniu przekaźnika na złączu ARK występuje napięcie 230 V AC. Odmierzaniem czasu i obsługa kalendarza zajmuje się układ scalony PCF8583F. Jest on taktowany rezonatorem kwarcowym o częstotliwości 32,768 kHz. Układ ma wyjście generujące przerwania, które wykorzystano w tym projekcie. Przerwanie jest geneELEKTRONIKA PRAKTYCZNA 8/2013
045-050_sterownik.indd 45
AVT 5408 rowane dokładnie co 1 sekundę. Warto także dodać, iż po wyłączeniu zasilania sieciowego nie stracimy zapisanej daty oraz godziny z układu PCF, ponieważ zasilanie tego układu jest podtrzymywane za pomocą baterii CR2032. W urządzeniu zamontowano dodatkowe złącze służące do programowania mikrokontrolera wlutowanego na płytce drukowanej (ISP). Ułatwia to uruchomienie układu oraz aktualizację oprogramowania. Zarówno na schemacie jak i na płytce możemy zauważyć wyprowadzenie 3-pinowe o nazwie RC5. Jest to złącze, które w tej wersji urządzenia jest nieużywane, ale w przyszłości posłuży do implementacji obsługi zdalnego sterowania za pomocą podczerwieni.
Zasada działania Zadaniem sterownika jest włączanie i wyłączanie urządzeń o zadanej godzinie. Zastosowanie transformatora zwiększa wymiary gotowego urządzenia, ale za to jesteśmy w stanie zapewnić zasilanie zarówno dla sterownika, jak i dla dołączonych urządzeń wykorzystując do tego celu pojedyncze gniazdko sieciowe. Do dyspozycji użytkownika są 2 wyjścia, które są sterowane niezależnie. W efekcie końcowym, za pomocą jednego gniazdka zasilamy nasz sterownik oraz 2 urządzenia końcowe. Użytkownik ma możliwość zaprogramowania czasu włączenia lub wyłączenia podłączonych urządzeń za pomocą menu na wyświetlaczu LCD. Mamy do dyspozycji dwa wyjścia, czyli dwa urządzenia, którymi możemy sterować zupełnie niezależnie. Przy pracy programowej jesteśmy w stanie ustawić dwa tryby: tryb cykliczny
W ofercie AVT* AVT-5408 A Podstawowe informacje: • Zasilanie 230 V AC. • Sterowanie dwoma odbiornikami 230 V AC/7 A. • Wyjścia przekaźnikowe. • Dwa niezależne programy: cykliczny (załączanie/wyłączanie cyklicznie, o ustalonych porach) i chwilowy (załączanie na pewien czas). • Podtrzymanie bateryjne zegara RTC. • Menu z wyświetlaczem i przyciskami. • Złącze do programowania ISP Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Projekty pokrewne na CD/FTP: (wymienione artykuły są w całości dostępne na CD)
AVT-1714 Automatyczny włącznik kina domowego EP 12/2012 AVT-1689 Przekaźnikowy wyłącznik czasowy EP 8/2012
* Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
oraz tryb chwilowy. W trybie cyklicznym ustawiamy godzinę, o której ma się włączyć oraz wyłączyć urządzenie. Drugi to tryb chwilowy, w którym ustawiamy po jakim czasie ma się włączyć urządzenie oraz po jakim wyłączyć. Poza pracą programową możemy także na stałe włączyć lub wyłączyć zasilanie w dołączonych urządzeniach.
45
2013-07-25 11:08:16
PROJEKTY Użytkownik ma możliwość ustawienia daty oraz czasu, które po wprowadzeniu i zatwierdzeniu zmian są zapamiętywane przez układ PCF8583. Istnieje także
możliwość przywrócenia nastaw domyślnych. Domyślne ustawienia dla zegara i kalendarza, to 21 grudnia 1992, godzina 20:00.
Obsługa sterownika z poziomu użytkownika Do obsługi menu służą 4 klawisze, których opis funkcjonalny pokazano na rysun-
Rysunek 1. Schemat ideowy włącznika programowanego
46
045-050_sterownik.indd 46
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:08:18
Na CD: karty katalogowe i noty aplikacyjne elementów oznaczonych w wykazie elementów kolorem czerwonym
Włącznik urządzeń zasilanych z sieci 230 V AC Wykaz elementów Rezystory: (SMD 0805) R3: 2,2 kV R4…R7: 1 kV R8: 10 kV R10, R11: 4,7 kV R2: 10 kV (potencjometr) Kondensatory: C1…C3, C7…C10: 100 nF (SMD 0805) C11: 10 mF (SMD 3528) C15: 22 pF (SMD 0805) C16: 2,2 mF (elektrolityczny) Półprzewodniki: B1: mostek prostowniczy 1,5 A/50 V D1, D2: 1N4148 D3, D4: LL4148 (SOD-80) IC3: L7805 – IC3 IC4: ATmega16AU IC5: PCF8583F LED_PK1, LED_PK2: dioda LED, zielona, 3 mm T1, T2: BC547 T3: BC847 Inne: Transformator T08335B PK1, PK2: przekaźnik Zettler AZ822-2C12DSE JP1: gniazdo IDC-10 – JP1 GORA, DOL, PRAWA, LEWA, ENTER: przyciski 6×3 mm DIS1: wyświetlacz LCD 2×16 Q1: kwarc 32,768kHz G1: bateria CR2032 Złącza ARK2 – 3 sztuki ku 2. Po włączeniu zasilania na wyświetlaczu LCD pojawi nam się jeden z dwóch ekranów w zależności od ustawienia zworki BLOKADA (rysunek 3). W sytuacji gdy urządzenie jest zablokowane, nie reaguje ono na przyciski. Na wyświetlaczu w górnej linii widnieje aktualna data (domyślnie jest 21 grudnia 1992), natomiast w dolnej linii możemy zaobserwować aktualną godzinę (domyślnie godzina 20:00). Kiedy przełączymy zworkę BLOKADA w stan odblokowany, mamy do naszej dyspozycji menu, którego schemat możemy podejrzeć na rysunku 4. Po menu poruszamy się za pomocą przycisków zgodnie ze znakami na wyświetlaczu oraz ułożeniem przycisków (rys. 2). Przyciski PRAWA oraz LEWA to przyciski nawigacyjne. Przyciski GORA i DOL to przyciski do zmiany wartości aktualnie wybranego parametru (dzień, rok, godzina, itp.). Wybór zatwierdzamy środkowym przyciskiem ENTER. Ponadto po odblokowaniu naszego urządzenia zostanie włączone podświetlenie wyświetlacza LCD. Natomiast po jego zablokowaniu, wyświetlacz będzie podświetlony jeszcze przez 10 sekund a następnie podświetlenie zostanie wyłączone. Ustawienia przekaźników Pierwsze dwie pozycje w menu to ustawienia przekaźnika pierwszego oraz ustawienia przekaźnika drugiego. Zarówno dla pierwszego jak i dla drugiego przekaźnika ustawienia są jednakowe, wobec czego opiszę je tylko raz. Należy jednak pamiętać ELEKTRONIKA PRAKTYCZNA 8/2013
045-050_sterownik.indd 47
o tym, iż oba przekaźniki działają niezależnie od siebie. Po wejściu do menu przekaźnika mamy do wyboru kilka opcji. Pierwsze dwie opcje to włączenie lub wyłączenie przekaźnika. Jego stan jest sygnalizowany także poprzez zaświecenie lub zgaszenie diody LED przy odpowiednim Rysunek 2. Funkcje klawiszy przekaźniku. Istnieją jeszcze dwie pozycje menu ustaurządzenie ma się włączać. Tym razem przywień przekaźników: Program oraz Tryb praciski PRAWA oraz LEWA służą do wyboru cy. Są one ze sobą bezpośrednio powiązane. zmienianej wartości. Aktualnie edytowaną W zależności od wyboru trybu, w którym ma wartość możemy poznać po tym, że mruga. pracować przekaźnik, zmieniają się opcje do Zwiększamy lub zmniejszamy wartości poprzez przyciski GÓRA oraz DÓŁ. Po ustaustawienia w menu Program. W menu Tryb wieniu czasów wciskamy ENTER, co powopracy mamy do wyboru dwie opcje: Tryb duje przejście do menu, w którym ustawiachwilowy oraz Tryb cykliczny. Po wybraniu my dokładną godzinę wyłączania urządzei zatwierdzeniu trybu pracy zostajemy autonia. Analogicznie jak w trybie chwilowym matycznie przeniesieni na pozycję Program. jesteśmy proszeni o potwierdzenie wproAby ustawić konkretne czasy włączania wadzonych zmian. Dla przykładu godzinę i wyłączania naszych urządzeń wystarczy włączenia ustawiamy na 9:00, a wyłączenia wcisnąć ENTER. na 10:00. Urządzenie włączy się dokładnie Tryb chwilowy jest trybem, który działa o godzinie 9:00 i przez cały czas, aż do 10:00, jednorazowo od momentu ustawienia, stąd będzie włączone. Jeżeli wpiszemy odwrotnie nazwa chwilowy. Wybierając ten tryb, w menu Program będziemy proszeni o ustawienie godziny (celowo lub nie), czyli: godzina włączasu, po którym ma się włączyć nasze urzączenia: 10:00, a godzina wyłączenia: 9:00, to dzenie. Początkowa wartość to 0 minut, co w tym wypadku urządzenie włączy się o gooznacza natychmiastowe włączenie urządzedzinie 10:00, a wyłączy dopiero o godzinie nia zaraz po zatwierdzeniu wprowadzonych 9:00 kolejnego dnia. ustawień. Ustawienia czasu regulujemy za pomocą przycisków GÓRA i DÓŁ. Krok reUstawienia czasu i daty Po wejściu do menu ustawień czasu, gulacji to 15 minut, a maksymalny czas, jaki możemy ustawić godziny i minuty. Mrugamożemy ustawić, to 240 minut. jąca liczba to aktualnie zmieniana wartość. Kiedy wybierzemy czas, po którym urząMożemy ją zwiększać (GÓRA) lub zmniejdzenie ma się włączyć, jesteśmy proszeni szać (DÓŁ). Po wciśnięciu ENTER musimy o podanie czasu, po którym urządzenie ma zatwierdzić zmianę czasu. Jeśli zatwierdzisię wyłączyć od momentu jego włączenia. liśmy zmianę, to wartość godziny i minuW tym ustawieniu nie ma już opcji 0 minut, ty jest umieszczana w buforze, a następnie ponieważ w takim przypadku urządzenie by się po prostu nie włączyło. Po wybraniu wysyłana do układu PCF. Sytuacja z datą czasu wyłączenia urządzenia wymagane jest wygląda analogicznie z tą różnicą, że zmienpotwierdzenie ustawionych czasów. Jeśli pona przechowująca informację o aktualnym twierdzimy, wybierając opcję Tak, to od tego momentu przekaźnik rozpoczyna programową pracę, zgodnie z ustawieniami, które wybraliśmy. W przypadku braku potwierdzenia (wybór Nie) jesteśmy ustawiani w menu głównym a przekaźnik pozostaje w stanie pracy, w którym był przed wcześniejszymi ustawieniami. Tryb cykliczny to tryb, w którym program jest powtarzany codziennie. Po wyborze tego trybu, w menu Program pojawia się drugi wariant ustawień. Jako pierwszy Rysunek 3. Funkcjonowanie zworki parametr ustawiamy godzinę, o której nasze „Blokada”
47
2013-07-25 11:08:18
PROJEKTY Listing 1. Funkcja sprawdzania stanu przycisku uint8_t buttonDown(uint8_t BUTTON) { if( BUTTON ) { _delay_ms(150); if( BUTTON ) } return 0; }
Oprogramowanie
return 1;
Listing 2. Sterowanie podświetlaniem void lcdLight(uint8_t STATUS) { if(STATUS == 1) PORT(LCD_LIGHT_PORT)|= (1 << LCD_LIGHT_PIN); else PORT(LCD_LIGHT_PORT)&= ~(1 << LCD_LIGHT_PIN); }
Listing 3. Funkcja obsługi Timera 1
ISR(TIMER1_COMPA_vect) { //Czas wylaczania podswietlenia LCD if(led_off_flaga == 1) { led_off_cnt++; if(led_off_cnt > 100) { led_off_cnt = 101; led_off_flaga = 0; } } //Czas mrugania aktywnych wartosci blink_cnt++; if(blink_cnt > 9) blink_cnt = 0; }
roku jest zapisywana do pamięci EEPROM mikrokontrolera. Do układu PCF jest wysyłana jedynie informacja o tym czy dany rok jest przestępny, czy nie. Obliczenia związane z tą operacją wykonuje mikrokontroler. Ze względów bezpieczeństwa zmiana oraz zatwierdzenie zmiany czasu powoduje wyłączenie przekaźników z pracy programowej oraz ich wyłączenie.
Programowe zerowanie ustawień Ostatnią pozycją w naszym menu jest przywrócenie nastaw domyślnych. Jest to nieskomplikowany element menu, którego zadaniem jest przywrócenie domyślnych wartości czasu oraz daty, czyli 21 grudnia 1992, godzina 20:00. Ponadto zerowanie powoduje ustawienie obu przekaźników w pozycji wyłączonej.
W programie wykorzystałem dwie biblioteki do obsługi peryferii. Pierwszą jest biblioteka do obsługi wyświetlacza LCD. W katalogu LCD znajduje się plik lcd44780.h, w którym możemy zmienić przypisanie poszczególnych pinów wyświetlacza do mikrokontrolera. Drugą biblioteką jest biblioteka komunikacji I2C między układem PCF8583 a mikroprocesorem. W katalogu I2C mamy plik o nazwie i2c_soft_cfg.h, w którym możemy zmienić konfigurację interfejsu I2C. W projekcie użyłem jednak takiego dołączenia, aby wykorzystać alternatywne funkcje odpowiednich pinów procesora. Komunikacja między mikrokontrolerem i układem PCF8583F odbywa się poprzez magistralę I2C. Nasz mikroprocesor pełni w tym zestawieniu funkcję urządzenia w trybie Master, natomiast układ PCF jest urządzeniem pracującym w trybie Slave. Ze względu na to, że będziemy musieli odczytywać oraz zapisywać informacje do i z układu RTC musimy znać jego adres. Zgodnie z notą katalogową układu PCF8583F, kiedy podłączymy na stałe do zasilania pin A0, adres układu ustalany jest na 0xA2. Do wejścia INT0 mikrokontrolera jest dołączone wyprowadzenie INT układu PCF. Dzięki temu jest generowane przerwanie dokładnie co 1 sekundę, w takt „tykania” układu RTC. Za pomocą dwóch funkcji z biblioteki I2C, w prosty i przejrzysty sposób możemy odczytywać oraz zapisywać kolejne komórki pamięci układu PCF. Należy pamiętać, że dane przechowywane w pamięci układu PCF są w postaci kodu BCD. Aby poprawnie odczytać lub zapisać wartości,
Listing 4. Obsługa włączenia/wyłączenia przekaźnika w trybie cyklicznym
case cykliczny: //Tryb cykliczny { if(godzina1_on < godzina1_off) { if(godzina == godzina1_on && minuta == minuta1_on) if(godzina == godzina1_off && minuta == minuta1_off) //=========================== if(godzina == godzina1_on && minuta >= minuta1_on) if(godzina == godzina1_on && minuta < minuta1_on) if(godzina == godzina1_off && minuta < minuta1_off) if(godzina == godzina1_off && minuta >= minuta1_off) //=========================== if(godzina < godzina1_on || godzina > godzina1_off) if(godzina > godzina1_on && godzina < godzina1_off) } if(godzina1_on == godzina1_off) { if(godzina != godzina1_on) if(godzina == godzina1_on) { if(minuta >= minuta1_on && minuta < minuta1_off) else } } if(godzina1_on > godzina1_off) { if(godzina == godzina1_on && minuta == minuta1_on) if(godzina == godzina1_off && minuta == minuta1_off) //=========================== if(godzina == godzina1_on && minuta >= minuta1_on) if(godzina == godzina1_on && minuta < minuta1_on) if(godzina == godzina1_off && minuta < minuta1_off) if(godzina == godzina1_off && minuta >= minuta1_off) //=========================== if(godzina < godzina1_on && godzina > godzina1_off) if(godzina > godzina1_on || godzina < godzina1_off) } break; }
48
045-050_sterownik.indd 48
RELAY1_ON; RELAY1_OFF; RELAY1_ON; RELAY1_OFF; RELAY1_ON; RELAY1_OFF; RELAY1_OFF; RELAY1_ON;
RELAY1_OFF; RELAY1_ON; RELAY1_OFF;
RELAY1_ON; RELAY1_OFF; RELAY1_ON; RELAY1_OFF; RELAY1_ON; RELAY1_OFF; RELAY1_ON; RELAY1_OFF;
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:08:19
Włącznik urządzeń zasilanych z sieci 230 V AC
Rysunek 4. Struktura menu użytkownika należy je rozkodować w przypadku odczytu lub zakodować w przypadku zapisu danych. Urządzenie jest sterowane za pomocą 5 przycisków oraz przełącznika blokowania i odblokowania urządzenia. Program obsługi przycisku jest napisany w taki sposób, aby uniknąć efektu wielokrotnego wciśnięcia klawisza w sytuacjach, gdy jest to zjawisko niepożądane. Każdy przycisk ma własną flagę, która jest zerowana wtedy gdy dany przycisk jest zwolniony. Po przyciśnięciu przycisku sprawdzany jest warunek czy jego flaga jest równa zero. Przycisk był wcześniej zwolniony, więc flaga jest wyzerowana i wykonywane są instrukcje obsługi przycisku. Na końcu wykonywania instrukcji, flaga przycisku jest ustawiana. Zakładamy, że przycisk cały czas jest wciśnięty. Po ponownym przejściu programu nie zostaną wykonane instrukcje obsługi przycisku, ponieważ flaga nie została wyzerowana. Dopiero po zwolnieniu przycisku flaga się wyzeruje i będzie można ponownie wcisnąć przycisk. Zapobiega to sytuacjom tego typu, że naciśniemy raz przycisk, a program zamiast jednej pozycji w menu przeskoczy o kilka. Dodatkowo wykorzystałem funkcję sprawdzania stanu przycisku (listing 1). Funkcja sprawdza stan przycisku, następnie odczekuje 100 ms sprawdza stan ponownie. Jeśli przycisk jest wciśnięty funkcja zwraca wartość 1, natomiast jeżeli przycisk jest zwolniony, zwraca wartość 0. Czas 100 ms jest założonym, domniemanym czasem drgania styków przycisku. ELEKTRONIKA PRAKTYCZNA 8/2013
045-050_sterownik.indd 49
Do komunikacji z użytkownikiem służyć wyświetlacz LCD. Jest on podświetlany, gdy urządzenie jest odblokowane. Jeśli włączymy blokadę, to wyświetlacz jest podświetlany przez czas 10 sekund, po czym podświetlenie jest wyłączane. Wyprowadzenie sterujące podświetleniem możemy zmienić w pliku config.h. Nie musimy przejmować się w tym wypadku zmianą ustawień trybu pracy wyprowadzeń portów oraz poziomami wyprowadzeń, ponieważ jest to robione automatycznie. Do włączania oraz wyłączania podświetlenia napisałem krótką funkcję (listing 2). W połączeniu z definicjami, według których ON = 1 a OFF = 0, możemy w bardzo przyjazny dla użytkownika sposób włączać i wyłączać podświetlenie wyświetlacza, np. lcdLight(ON) – włączanie, lcdLight(OFF) – wyłączanie. Odliczaniem czasu, po którym ma się wyłączyć podświetlenie zajmuje się TIMER1, którego procedurę obsługi możemy zobaczyć na listingu 3. Timer1 jest skonfigurowany tak, aby wykonywał daną procedurę z częstotliwością 10 Hz. Taka częstotliwość pozwala na uzyskanie przerwania od timera co 100 ms. Gdy włączamy blokadę, zostaje ustawiona zmienna led_off_flaga, co pozwala na uruchomienie procedury odliczania czasu. Zmienna led_off_cnt jest inkrementowana przy każdym wejściu w przerwanie aż do wartości 100, co jest odpowiednikiem 10 sekund. Po tym czasie flaga jest zerowana, a w dalszym kroku jest wyłączane podświetlenie LCD. W procedurze obsługi przerwania Timera jest też zmienna blink_cnt, któ®a odpowiada za czas mrugania aktualnie zmienianych wartości w niektórych miejscach menu (ustawianie czasu, daty itp.).
Tryby pracy przekaźników Każdy przekaźnik ma przypisaną zmienną, która wskazuje na jego aktualny stan. Ta zmienna to stan_pk1 dla przekaźnika pierwszego. W naszym układzie przekaźniki mogą być w jednym z trzech stanów: przekaźnik włączony – odpowiada temu wartość 1 zmiennej stan_pk; wyłączony – stan_pk równy 2; przekaźnik wykonuje pracę programową – stan_pk równy 3. Podczas wykonywania pracy programowej każdy z przekaźników może przyjąć jeden z dwóch trybów pracy. Tryb cykliczny lub tryb chwilowy. Oprogramowanie trybu cyklicznego sprowadza się w zasadzie do ustalenia sposobu działania przekaźnika. W tym wypadku rozpisałem procedurę krok po kroku analizując każdy możliwy przypadek. Takie rozwiązanie pozwoliło na bezproblemową obsługę tego trybu pracy. W wypadku gdyby użyto flag przełączających przekaźnik tylko w konkretnych, granicznych momentach, wystąpiłby problem np. z sytuacjami typu: jest godzina 10:00, a my ustawiamy czas włączenia na godzinę 9:00 i wyłączenia na 11:00. Efekt jest taki, że w dniu dzisiejszym przekaźnik się nie włączy. Dopiero kolejnego dnia o godzinie 9:00 zostanie włączony, a o 11:00 wyłączony. Nam zależy na tym, aby przekaźnik włączył się także tego dnia, w którym go ustawiamy w wyżej opisanej sytuacji. Warunki, które to zapewniają można prześledzić na listingu 4. Tryb chwilowy natomiast, składa się z kilku etapów. Obsługa tego trybu dla przekaźnika numer 1 przedstawiona jest na listingu 5. Ustawiając czas włączenia a następnie wyłączenia przekaźnika, przypisujemy te
Listing 5. Obsługa włączenia/wyłączenia przekaźnika w trybie chwilowym
case chwilowy: //Tryb chwilowy { switch(odlicz_flaga1) { case 1: { odlicz_minuty1 = wlacz_minuty1*60; RELAY1_OFF; odlicz_flaga1 = 2; break; } case 2: { if(odlicz_minuty1 == 0) { RELAY1_ON; odlicz_flaga1 = 3; } break; } case 3: { odlicz_minuty1 = wylacz_minuty1*60; odlicz_flaga1 = 4; break; } case 4: { if(odlicz_minuty1 == 0) { RELAY1_OFF; odlicz_flaga1 = 0; stan_pk1 = 1; //Przelacz stan na wylaczony } break; } } break; }
49
2013-07-25 11:08:19
PROJEKTY Listing 6. Obsługa przerwania INT0 ISR(INT0_vect) { flaga_int0 = 1; if(odlicz_minuty1 != 0) if(odlicz_minuty2 != 0) }
Listing 7. Obsługa menu użytkownika enum menu { m_ekran_glowny, m_pk1, m_pk1_wybor, m_pk1_wylacz_o, m_pk1_wlacz_o, m_pk1_wylacz_za, m_pk1_wlacz_za, m_pk1_program, m_pk1_tryb_pracy, m_pk1_potwierdz, m_pk2, m_pk2_wybor, m_pk2_wylacz_o, m_pk2_wlacz_o, m_pk2_wylacz_za, m_pk2_wlacz_za, m_pk2_program, m_pk2_tryb_pracy, m_pk2_potwierdz, m_czas, m_czas_ustaw, m_czas_potwierdz, m_data, m_data_ustaw, m_data_potwierdz, m_reset, m_reset_potwierdz };
wartości do zmiennych wlacz_minuty1 oraz wylacz_minuty1, gdzie numer na końcu nazwy zmiennej oznacza numer przekaźnika. Gdy zatwierdzamy ustawione czasy zmienna o nazwie odlicz_flaga1 jest ustawiana na wartość 1. Powoduje to wystartowanie funkcji switch, która w czterech etapach obsłuży nasz tryb. Pierwszy etap to przypisanie do zmiennej odlicz_minuty1 wartości zmiennej wlacz_minuty1 pomnożonej przez 60. Mnożenie przez 60 wykonuje się po to, aby w dalszych krokach móc łatwo odliczać kolejne sekundy. Następuje także wyłączenie przekaźnika oraz przejście do drugiego etapu poprzez ustawienie odlicz_flaga1 na wartość 2. W drugim kroku oczekujemy, aż wartość wcześniej ustalonej zmiennej będzie równa zero. Dzieje się to w krótkiej obsłudze przerwania INT0, listing 6. Kiedy zmienna odlicz_minuty1 była równa zero wtedy nie była wykonywana żadna operacja. Natomiast po przypisaniu jej wartości jest zliczana w dół dokładnie co 1 sekundę. Efektem tego jest zliczenie do 0 po czasie załączenia przekaźnika. Wracamy do obsługi trybu. Nasza zmienna dekrementowana przez ustawiony czas osiąga 0. Następuje wtedy włączenie przekaźnika oraz przejście do trzeciego etapu. Trzeci etap jest analogiczny do pierwszego etapu z tą różnicą, że teraz do zmiennej odlicz_minuty1 przypisujemy czas w sekundach, po którym urządzenie ma się wyłączyć. Przechodzimy do etapu czwartego, ostatniego. W tym etapie ponownie czekamy aż zmienna odliczająca minuty będzie równa zero. Kiedy już to się stanie, czyli minie czas, po którym urządzenie ma się wyłączyć, przekaźnik jest wyłączany. Stan prze-
50
045-050_sterownik.indd 50
odlicz_minuty1--; odlicz_minuty2--;
kaźnika jest zmieniany na wyłączony, czyli stan_pk1=1. Zmienna odlicz_flaga1 jest zerowana, co oznacza, że ponowne włączenie tego trybu jest możliwe tylko poprzez ustawienie czasów włączenia/wyłączenia, a następnie zatwierdzenie tych ustawień. Tryb ten można w prosty sposób zapętlić, ustawiając w ostatnim kroku zmienną odlicz_flaga1 na wartość 1 oraz kasując linijkę zmiany stanu przekaźnika. Spowodowałoby to ciągłe wykonywanie się programu. Po ustawieniu czasu włączenia na 15 minut a wyłączenia po 30 minutach, nasze urządzenie zamiast wykonać program raz i na tym zakończyć, wykonywałoby program w nieskończoność. Czyli po 15 minutach przekaźnik się włącza, po 30 minutach od włączenia wyłącza, po 15 minutach od wyłączenia włącza itd. Interakcja z użytkownikiem zajmuje dużą część programu. Menu wykonano z użyciem funkcji switch. Bardzo pomocna okazała się możliwość enumeracji, za pomocą której kod stał się bardziej czytelny (listing 7). Po menu poruszamy się za pomocą przycisków LEWA oraz PRAWA, które ustalają wartość zmiennej kursor. W każdym podmenu, w którym mamy do wyboru jedną z kilku opcji, każdej opcji przypisana jest konkretna wartość kursora. Jeśli staniemy na danej opcji i wciśniemy ENTER, zostaniemy przeniesieni do kolejnego poziomu menu. Jak już opisałem wyżej, przyciski nawigacji i zatwierdzania działają raz po naciśnięciu. W przypadku zmiany wartości godziny, lat, dni itp. jest to raczej mało praktyczne, dlatego też przyciski zmieniające wartości, czyli GORA oraz DOL reagują cały czas po naciśnięciu aż do momentu puszczenia. Ułatwia to usta-
wianie dowolnych wartości. Każda zmiana ustawień, oprócz włączenia lub wyłączenia przekaźnika, jest zabezpieczona przed przypadkową zmianą poprzez wprowadzenie potwierdzeń. Komunikaty te, pojawiają się na koniec wszelkich ustawień i aby potwierdzić zmiany należy po raz drugi wcisnąć ENTER. Można anulować wykonanie zmian, stosując się do instrukcji w danym komunikacie.
Montaż i uruchomienie Schemat montażowy sterownika pokazano na rysunku 5. Uwaga! Przy uruchamianiu urządzenia oraz podczas jego użytkowania należy zachować szczególną ostrożność i pamiętać o tym, że sterownik jest zasilany napięciem 230 V AC! Pierwszym i chyba najważniejszym krokiem, który należy wykonać jest sprawdzenie układu zasilania. Przylutowanie w pierwszej kolejności mostka prostowniczego, dużych kondensatorów, stabilizatora czy transformatora z pewnością utrudni nieco montaż innych elementów. Jednak dzięki takiej kolejności działań możemy przetestować czy nasz układ zasilania dostarczy odpowiednie napięcie do procesora. Uważam, że lepiej spędzić 5 minut dłużej z lutownicą i miernikiem niż uszkodzić mikrokontroler. Ze względu na niebezpieczne napięcie zasilania i wynikające z tego spore niebezpieczeństwo, na płytce zostały umieszczone cztery otwory montażowe o średnicy 3 mm. Dzięki temu można umieścić układ w obudowie, a co za tym idzie, zmniejszyć ryzyko porażenia prądem. Można użyć dowolnej obudowy, według własnego uznania. Oczywiście, zworka BLOKADA i przyciski sterujące mogą być zastąpione przez inne przełączniki lub przyciski. Mikrokontroler można zaprogramować po zmontowaniu urządzenia lub użyć zaprogramowanego wcześniej.
Tomasz Piechowicz
Rysunek 5. Schemat montażowy włącznika programowanego ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:08:19
MINIPROJEKTY
Wzmacniacz audio o mocy 2×40 W z LM3875 Układ jest uzupełnieniem przedwzmacniacza LM4562 i przetwornika DAC TDA1541. Tworzy kompletny system audio nieodbiegający od rozwiązań fabrycznych. Wzmacniacz można również stosować niezależnie, np. do sterowania aktywnego monitora dwudrożnego, współpracującego z opisaną wcześniej zwrotnicą aktywną. Moduł zawiera dwa kanały wzmacniacza mocy z popularnym układem LM3875, zasilacz oraz obwody zabezpieczające głośnik. Zmontowana płytka jest gotowym blokiem funkcjonalnym systemu audio. Schemat układu pokazano na rysunku 1. Wzmacniacz składa się z bloku wzmocnienia U1L/R i układu zabezpieczeń U1. Układy U1L/ U1R (LM3875) pracują w konfiguracji odwracającej ze sprzężeniem stałoprądowym ze względu na niewielkie napięcie niezrównoważenia. Wzmocnienie układu ustalono na ok. 14 V/V. Można je zmieniać za pomocą rezystorów R1x/R2x, korygując przy tym R3x=R1x, R4x=R2x. Uwaga: poniżej 10 V/V układ przestaje być stabilny. Rezystory R5x i R6x, kondensator C3x oraz cewka L1x zapewniają stabilność przy współpracy z obciążeniami o złożonym charakterze. Zasilanie układu jest symetryczne, niestabilizowane otrzymywane z prostownika D1…D8 oraz
AVT 1749 filtru CE1…CE4 o odpowiedniej dla mocy pojemności sumarycznej wynoszącej 40 mF. Układ wykonano ze specjalizowanym układem uPC1237 firmy NEC (U1). Jego schemat blokowy pokazano na rysunku 2. Zawiera on zabezpieczenie przed składową stałą, układ detekcji napięcia zasilania, układ szybkiego wyłączenia i opóźnionego załączenia głośników, układ automatycznego zerowania oraz driver przekaźnika. Układ detektora przeciążenia jest nieaktywny ze względu na zastrzeżenia patentowe, ale w tym wzmacniaczu nie jest potrzebny, ponieważ za LM3875 jest zabezpieczony przez zwarciem na wyjściu.
Do układu detekcji napięcia stałego, poprzez rezystory R1 i R2, doprowadzone są sygnały wyjściowe kanałów. Wystąpienie napięcia stałego na dowolnym z wyjść aktywuje zabezpieczenie – głośniki zostają odłączone za pomocą przekaźnika RL1. Obwód opóźnionego załączenia składa się z rezystora R4 i kondensatora CE7 ustalających czas opóźnienia. Dla detekcji napięcia zasilania do wejścia należy doprowadzić wyprostowane napięcie transformatora (po odpowiednim dopasowaniu zakresu napięć), które po niewielkiej filtracji kondensatorem CE6 akty-
Rysunek 1. Schemat ideowy modułu wzmacniacza z LM3875 ELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 51
51
2013-07-25 12:03:57
MINIPROJEKTY W ofercie AVT* AVT-1749 A Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Projekty pokrewne na CD/FTP: (wymienione artykuły są w całości dostępne na CD)
Rysunek 2. Schemat blokowy uPC1237 (za notą aplikacyjną firmy NEC) wuje układ detekcji. Ze względu na rozdzielenie uzwojeń transformatora (brak masy odniesienia) układ detekcji napięcia zasilania jest rozwiązany inaczej, niż podano w nocie aplikacyjnej. Napięcie z jednego z uzwojeń transformatora poprzez prostownik D9 zasi-
la diodę LED transoptora IS, rezystory R7… R10 ograniczają jej prąd. Tranzystor z IS kluczuje napięcie stałe zasilające wzmacniacz „udając” prostowanie jednopołówkowe. Takie rozwiązanie zapewnia szybki zanik sygnału zasilania po wyłączeniu wzmacniacza,
Rysunek 3. Schemat montażowy modułu wzmacniacza z LM3875
52
051-079_mini.indd 52
* Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
umożliwiając prawidłową pracę układu detektora zasilania. W obwód diody LED transoptora włączono złącze JON umożliwiające zdalne załączenie głośników lub dodatkowe zabezpieczenie termiczne układu np. poprzez włączenie szeregowo wyłącznika termicznego (normalnie zwarty) umieszczonego na radiatorze. Jeżeli funkcja nie będzie wykorzystana, złącze może zostać zastąpione zworą. Układ U1 steruje bezpośrednio cewką przekaźnika o dopuszczalnym prądzie do 80 mA. Aby ograniczyć straty mocy w cewce przekaźnika, szeregowo z nią włączono rezystor R6. Jego wartość należy dobrać, aby Wykaz elementów Rezystory: R1, R2, R4: 56 kV (SMD 1206) R3, R5, R7…R10, R12, R13, R1L, R1R, R3L, R3R: 15 kV (SMD 1206) R6: 680 V/1 W (zależnie od prądu i cewki przekaźnika) R11, R2L, R2R, R4L, R4R: 220 kV (SMD 1206) R5L, R5R: 2,7 V/1 W R6L, R6R: 10 V/1 W Kondensatory: C1, C1L, C1R, C2L, C2R: 0,1 mF/50 V (SMD 1206) C3L, C3R: 0,1 mF/100 V (R=5 mm) CE1…CE4: 10 mF/50 V (elektrolit. SNAP-IN 30×50) CE5: 220 mF/50 V (elektrolit. R=7,5 mm) CE6, CE7, CE1L, CE1R, CE2L, CE2R : 10 mF/50 V (elektrolit. R=5 mm) Półprzewodniki: D1…D8: MUR860 (TO-220D) D9, D10: S1J (MELF) U1: uPC1237 (SIL-8) U1L, U1R: LM3875TF Inne: RL1: RM84-2P/24 przekaźnik miniaturowy HT: radiator SK85/50 mm IS: LTV356T (transoptor SMD) J1L, J1R, J2L, J2R, JLD, JON, JP1, JP2: złącze ARK2/R=5 mm TS1: transformator 2×26 V/180 VA L1R, L1R: cewka 8…12 zwojów DNE 0,8…1 mm na korpusie R6L/R6R ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 12:03:58
MINIPROJEKTY zapewnić znamionowe napięcie cewki w zależności od wartości napięcia zasilania końcówki mocy. Dioda D10 zabezpiecza U1 przed przepięciami przy wyłączaniu przekaźnika. W celu sygnalizacji prawidłowej pracy wzmacniacza, równolegle do cewki RL1 poprzez rezystory ograniczające prąd i złącze JLD włączona jest dioda LED. Układ U1 m „pamięć” zadziałania zabezpieczeń. W zależności od zastosowania montujemy kondensator C1, który zapewnia zatrzaskiwanie układu zabezpieczeń po wyzwoleniu. Aby ponownie przywrócić wzmacniacz do pracy i wyzerować zabezpieczenie, należy wyłączyć zasilanie. Jeżeli jest konieczne automatyczne zerowanie po ustaniu przyczyny zadziałania, w miejsce C1 należy wlutować zworę. Rysunek 4. Sposób dołączenia wzmacniacza Wzmacniacz zmontowano jest na dwustronnej płytce drukowałączonym do jej plusa dotykamy na płytce nej, jej schemat montażowy pokazano na padu nr 3 U1L oraz U1R, powinno spowodorysunku 3. Montaż jest typowy, ale warto wać to aktywowanie układu zabezpieczeń. w pierwszej kolejności zmontować i sprawJeżeli wlutowany jest C1 to konieczne jest dzić układ zabezpieczeń. W tym celu monwyłączenie wzmacniacza przed sprawdzetujemy wszystkie elementy oprócz U1L, niem U1R, w przypadku zwory w miejscu U1R, CE2, CE4. Zwieramy piny złącza JON, C1, układ po odłączeniu baterii powinien załączyć automatycznie przekaźnik RL1. podłączamy LED do złącza JLD. Do zacisków Zmieniamy biegunowość baterii łącząc plus JP1, JP2 doprowadzamy napięcia przemienz masą i przeprowadzamy test dla ujemnych ne 2×26 V z uzwojeń transformatora zasilanapięć stałych. Jeżeli zabezpieczenie działa, jącego. Po włączeniu zasilania sprawdzamy można wyłączyć układ, odczekać do rozłaobecność napięć zasilających – powinny wydowania kondensatorów i przygotować ranosić ok. ±35…38 V (nie mogą przekraczać diator z wstępnie zamontowanymi U1L/R. ±42 V). Układ powinien załączyć przekaźW zależności od wersji układu LM3875 nik RL1, co jest sygnalizowane świeceniem należy zastosować podkładkę izolacyjną diody LED. Rozwarcie zwory JON, powinno bezzwłocznie wyłączyć przekaźnik. Następi pastę termoprzewodzącą. Osobiście prenie zwieramy JON i wyłączamy zasilanie, feruję wersję izolowaną TF, która wymaga RL1 powinien bezzwłocznie zostać wyłątylko odrobiny pasty termoprzewodzącej, czony. Przy ponownym załączeniu zasilania chociaż wiąże się to z nieco mniejszą dopowinien załączyć się ze zwłoką. Pozostaje puszczalną mocą strat układu. Radiator sprawdzenie układu zabezpieczeń przed SK85, w zależności od sposobu użytkowaskładową stałą, najlepiej w tym celu posłunia wzmacniacza, powinien mieć wysokość 50 mm lub 75 mm. Jeżeli planujemy długożyć się baterią 1,5 V, podłączamy jej minus trwałe obciążenie mocą znamionową, poledo masy wzmacniacza, przewodem pod-
ELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 53
cam 75 mm lub chłodzenie wymuszone. Jest to ważne, ponieważ LM3875 zawiera zabezpieczenie termiczne, które po przekroczeniu dopuszczalnej temperatury struktury układu aktywuje wyciszenie. Przed wlutowaniem LM3875 należy stabilnie zamocować radiator do płytki drukowanej. Następnie należy przylutować układy U1L i U1R oraz dokręcić śruby mocujące. Po dokręceniu warto „odprężyć” wyprowadzenia układów poprzez ponowne przelutowanie. Po montażu LM3875 można wlutować kondensatory CE2 i CE4. Po zmontowaniu wzmacniacz jest gotowy do pracy po włączeniu zasilania. Uwaga! Układy z serii LM38xx są jednymi z częściej podrabianych elementów elektronicznych, więc dla uniknięcia problemów warto zaopatrywać się w nie w pewnych źródłach. Sposób dołączenia wzmacniacza pokazano na rysunku 4.
Adam Tatuś, EP
53
2013-07-25 12:03:59
MINIPROJEKTY
Detektor hałasu Wykrywanie przekroczenia natężenia dźwięku powyżej ustalonego poziomu jest pożyteczną, a jednocześnie prostą do zinterpretowania informacją. Korzystają z niej systemy alarmowe, elektroniczne nianie itp. Schemat ideowy detektora hałasu pokazano na rysunku 1. Zastosowanym przetwornikiem elektroakustycznym jest mikrofon elektretowy MIC1. Do poprawnego działania, wymaga on spolaryzowania napięciem stałym za pomocą rezystora R1. Składowa stała jest następnie oddzielana przez kondensator C1, a składowa zmienna o niskiej amplitudzie trafia na wejście wzmacniacza operacyjnego w układzie wzmacniacza odwracającego. By uniknąć zasilania go napięciem symetrycznym, została zastosowana „sztuczka” polegająca na umieszczeniu jego wejścia nieodwracającego na potencjale równym połowie napięcia zasilającego, wynoszącego tutaj ok. 6 V. Kondensator C2 filtruje napięcie „sztucznej masy”, natomiast rezystor R4 ustala wzmocnienie. Wzmocniony sygnał (wraz ze składową stałą ok. 6 V) przechodzi do drugiego wzmacniacza operacyjnego US1B pracującego jako komparator. Jeżeli chwilowy poziom napięcia na wejściu odwracającym przekroczy poziom ustalony potencjometrem P1 to na jego wyjściu wystąpi napięcie zbliżone do napięcia zasilania, otwierając tranzystor T1. Rezystor R7 ogranicza prąd jego bazy, a dioda Zenera (D1) zapobiega przypadkowemu załączeniu tranzystora, gdy wartość wzmocnionego sygnału jest bliska progu zadziałania. Dioda D2 chroni układ przed odwróceniem polaryzacji napięcia zasilajacego. Urządzenie zmontowano na płytce o wymiarach ok. 24 mm×60 mm (rysunek 2). Pod układ scalony warto zastosować podstawkę. Mikrofon winien zostać wlutowany tak, aby
AVT 1755 egzemplarz o większej (większe wzmocnienie) lub mniejszej (mniejsze wzmocnienie) rezystancji.
Michał Kurzela, EP
Rysunek 2. Schemat montażowy detektora hałasu jego obudowa była połączona z masą. Zasilanie napięciem ok. 12 V, niekoniecznie stabilizowanym, dobrze filtrowanym. Pobór prądu w stanie spoczynku to ok. 2 mA. Wyjście typu otwarty kolektor o może być obciążone prądem do 100 mA. Należy pamiętać, iż na wyjściu pojawiają się krótkie impulsy prostokątne, więc jeżeli zajdzie potrzeba uruchamiania np. przekaźnika, wówczas warto zastosować dodatkowo przerzutnik monostabilny. Jedyną czynnością uruchomieniową jest ustawienie pożądanego progu zadziałania. Najłatwiej zrobić to włączając między wyjście OUT a dodatni biegun zasilania diodę LED z rezystorem i obserwując jej zachowanie przy różnych położeniach suwaka potencjometru oraz pożądanym natężeniu dźwięku. Im bliżej krawędzi płytki znajdzie się suwak, tym mniejsza czułość. Ustawienie zbyt niskiego progu może powodować przypadkowe otwieranie się tranzystora wskutek fluktuacji powietrza wokół mikrofonu. Wzmocnienie przedwzmacniacza można zmienić poprzez wymianę rezystora R4 na
W ofercie AVT* AVT-1755 A AVT-1755 B AVT-1755 C Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1…R3: 10 kV R4: 1 MV R5…R7: 4,7 kV P1: 10 kV (montażowy, leżący) C1: 680 nF/50 V C2: 4,7 mF/16 V C3: 100 mF/25 V C4: 100 nF/50 V D1: dioda Zenera 9,1 V/0,4 W D1: 1N4148 T1: BC546 US1: LM358 J1: ARK 3/5 mm MIC1: mikrofon elektretowy np. KPCM29B-P Podstawka DIP8 * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
Rysunek 1. Schemat ideowy detektora hałasu
54
051-079_mini.indd 54
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 12:03:59
MINIPROJEKTY
LCD Booster Pack dla Launchpada
AVT 1751
Prezentowany Booster Pack umożliwia rozszerzenie funkcjonalności LaunchPada MSP430G2 o wyświetlacz graficzny, zgodny z Nokia 5110 lub wyświetlacz znakowy zgodny z HD44780 (3 V) oraz 3-przyciskową klawiaturę analogową. Nietypową cechą nakładki jest możliwość pracy samodzielnej, niezależnej od Launchpada. Schemat nakładki pokazano na rysunku 1. Wyprowadzenie nakładki przyporządkowane są zgodnie z definicjami obsługiwanych urządzeń umożliwiając łatwe użycie bibliotek Energii. Nakładka może być zasilana bezpośrednio z Launchpada poprzez złącza MSPJ1 i MSPJ2 lub napięciem 3 V, poprzez złącze BAT z zestawu baterii 2×LR6. Kondensatory CE1 i CE3 filtrują zasilanie, dioda D1 zabezpiecza przed odwrotnym dołączeniem baterii. Podstawowym wyświetlaczem, który może być używany z modułem jest wyświetlacz znakowy, zgodny z HD44780. Do dołączenia wyświetlacza służy złącze LCD, potencjometr RV umożliwia ustawienie kontrastu. Niestety, ze względu na niedostępność wyświetlaczy sterowanych napięcie
3 V mieszczących się na płytce, konieczne jest wykonanie taśmy połączeniowej pomiędzy złączem LCD, a modułem wyświetlacza. Schemat połączeń pokazano na rysunku 2. Wyświetlacz jest obsługiwany przez bibliotekę LiquidCrystal.h. Jeżeli nie korzystamy z wyświetlacza HD, jest możliwe użycie potencjometru RV jako nastawnika analogowego dołączonego do portu P15 (A5). W tym celu jest konieczne założenie zwory na wyprowadzenie wyprowadzenia 3-4 złącza P15. Drugim typem obsługiwanego wyświetlacza jest wyświetlacz graficzny zgodny z Nokia 5110, ze sterownikiem PCF8544. Jest to popularny moduł dostępny na aukcjach internetowych. Moduł składa się z wyświetlacza oraz elementów podświetle-
nia, a wszystkie sygnały sterujące dostępne są na typowym złączu SIL. Niestety, aby nie było zbyt łatwo, moduły dostępne są z różnym przypisaniem funkcji wyprowadzeń. Różnice pokazano na fotografii 3. Aby moż-
Rysunek 2. Schemat dołączenia wyświetlacza zgodnego z HD44780 W ofercie AVT* AVT-1751 A Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1…R4: 47 kV (SMD 0805) R5: 100 V (SMD 0805) RV: 22 kV (potencjometr montażowy) C1, C3: 0,1 mF (SMD 0805) C2: 1 nF (SMD 0805) C4, C5: 12 pF (SMD 0805, opcjonalnie) CE1: 22 mF/6 V (SMB) DS3: S1J (dioda uniwersalna SMD) MSP430G2553 (DIP20, opcjonalny) BAT: złącze ARK/5 mm CF: listwa SIL 2×2×2,54 LCD: złącze IDC2×5 proste LCD1: wyświetlacz LCD Nokia 5110 MSPJ1, MSPJ2: listwa żeńska SIL10×2,54 P13, P25: listwa SIL 3×2,54 P14, P15, I2C: listwa SIL 4×2,54 SW1…SW3, RES: mikroprzełącznik 6×3 mm UART: złącze EH4, kątowe XT: 16 MHz (opcjonalny rezonator kwarcowy)
Rysunek 1. Schemat modułu LCD Booster Pack ELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 55
* Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
55
2013-07-25 12:03:59
MINIPROJEKTY
Fotografia 3. Różnice wyprowadzeń modułu LCD5110 liwe było wykorzystanie obu wersji, płytka ma powielone złącze wyświetlacza. Jeżeli używamy modułu z wyprowadzeniami z lewej strony, wlutowujemy złącze SIL u dołu ekranu, jeżeli z prawej, wlutowujemy złącze ponad ekranem. Moduł jest obsługiwany przez bibliotekę LCD_5110.h. W wypadku wyświetlacza z lewej strony, jest zmieniona polaryzacja podświetlenia, należy o tym pamiętać przy programowaniu. Klawiaturę wykonano jako analogową, czyli sterowany przyciskami SW1…SW3 rezystorowy dzielnik napięcia (R1, R2, R3). Do odczytu wartości napięcia używany port P14 (A4), aby umożliwić odczyt jest konieczne założenie zwory na wyprowadzenia 3-4 złącza P14. Jeżeli nie korzystamy z klawiatury, zwora może być zdjęta. Można wtedy
korzystać z wejścia analogowego dla innych celów. Niewykorzystane wyprowadzenia Launchpada wyprowadzone są na złącza zgodne z Arduino Sensor. Do dyspozycji jest port analogowy P13(A3), cyfrowy P25 (13), magistrala I2C oraz interfejs szeregowy UART z możliwością zmiany sygnałów RX na TX i TX na RX za pomocą zworek CF (różnice wynikają z realizacji programowej/sprzętowej UART w procesorach G2). Jak wspominałem, płytka może pracować samodzielnie. W tym celu Rysunek 4. Rozmieszczenie elementów LCD umieszczono na niej gniazdo DIP20 Booster Pack (U1). Dla poprawnej pracy konieczne jest uzupełnienie układu o obwód RESET czenie elementów przedstawiono na ryC2/R4/RES oraz o opcjonalny generator zesunku 4. Sposób montażu jest typowy i nie garowy złożony z kondensatorów C4 i C5 wymaga opisu. Złącza, procesor i elementy oraz rezonatora XT1. Polecam w tym wypadopcjonalne montowane są w zależności od ku montaż żeńskich złącz MSPJ1 i MSPJ2. posiadanego LCD i sposobu użycia płytki. Wtedy po włożeniu procesora do płytki LCD W modelu wlutowano oba złącza pod wyjest możliwe użycie Launchpada tylko w roli świetlacz LCD5110 z opisanym wcześniej programatora. Po zaprogramowaniu można sposobem rozróżnienia typów, poprzez lupłytkę wyjąć i używać samodzielnie, oczytowanie złącza po „odpowiedniej” stronie ekranu. wiście po zapewnieniu zasilania. LCD BoosterPack zmontowany jest na Adam Tatuś, EP dwustronnej płytce drukowanej, rozmiesz-
Długowieczna latarka Kilka lat temu na rynku pojawiły się latarki zasilane jednym ogniwem 1,5 V, zawierające wewnątrz diodę LED oraz niewielką przetwornicę. Niestety, sprawność tych układów, jak i ich trwałość, pozostawiają niekiedy wiele do życzenia. Prezentowany układ stanowi niedrogą i trwałą alternatywę dla wyrobów fabrycznych. Schemat latarki pokazano na rysunku 1. Ponieważ diody świecące w kolorze białym
AVT 1753 potrzebują napięcia ok. 3,5 V, a siła elektromotoryczna ogniwa wynosi ok. 1,5 V, konieczne było zastosowanie niewielkiej przetwornicy. Została ona zrealizowana w oparciu o układ scalony MCP1640 firmy Microchip. Głównymi jego zaletami są: dostępność w handlu detalicznym, stosunkowo niska cena (ok. 4 zł brut-
to za sztukę), małe wymiary i łatwość montażu (obudowa SOT23-6), mała liczba wymaganych elementów dodatkowych (kondensatory, dławik i rezystory w pętli sprzężenia zwrotnego). Co ważne, strat przetwornicy następuje już od 0,65 V – oznacza możliwość zasilania nawet z bardzo rozładowanej baterii.
Rysunek 1. Schemat ideowy latarki LED
56
051-079_mini.indd 56
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 12:04:01
MINIPROJEKTY W ofercie AVT* AVT-1753 A AVT-1753 B Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1: 47 kV R2: 22 kV C1, C3: 100 nF C2, C4: 33 mF/10 V LED1: 500 mW (biała, neutralna) US1: MCP1640 L1: dławik pionowy 470 VH/min. 0,7 A S1: suwakowy, podwójny KBB70 – 2P2W Koszyk na baterię R20 * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
Na drodze eksperymentalnej dobrano takie wartości elementów, by uzyskać możliwie dużą wydajność świetlną przy małym poborze prądu. Charakterystyczne prądy i napięcia umieszczono w tabeli 1. Przy nominalnej pojemności baterii cynkowo-węglo-
Tabela 1. Parametry charakterystyczne Napięcie wejściowe Prąd wejściowy Napięcie na diodzie LED1 Prąd diody Sprawność
Rysunek 2. Schemat montażowy latarki LED wej na poziomie 8000 mAh (Wikipedia), powinno to wystarczyć na ok. 70 godzin pracy. Układ latarki zmontowano na jednostronnej płytce drukowanej o wymiarach 33 mm×39 mm, której schemat montażowy pokazano na rysunku 2. Przystępując do montażu, w pierwszej kolejności należy przylutować układ scalony US1, natomiast na końcu diodę LED i wyłącznik. Jako C2 i C4 warto zastosować kondensatory tantalowe, ze względu na mniejsze gabaryty i większą trwałość.
1,50 V 110 mA 3,22 V 40 mA 78%
W urządzeniu modelowym płytka została osadzona w obudowie widniejącej na zdjęciu: jest to odcinek profilu aluminiowego o wymiarach zewnętrznych 40 mm×40 mm i grubości ścianki 2 mm, ścięty pod kątem na jednym końcu. Umożliwia to odsłonięcie diody przy jednoczesnej ochronie samej elektroniki przed uszkodzeniami mechanicznymi. Struktura diody powinna mieć zapewnione chłodzenie, co w tej obudowie jest realizowane przez dociśnięcie jej metalowej, posmarowanej pastą termoprzewodzącą wkładki do ścianki profilu śrubami M3 mocującymi płytkę. Wewnątrz profilu jest miejsce na koszyk pojedynczej baterii R20. Drugi koniec został zaślepiony plastikową zatyczką, co pozwala na postawienie latarki w pionie i oświetlanie np. całego pomieszczenia. Ten wariant obudowy można zmodyfikować, poprzez dodanie np. przezroczystej klapki zakrywającej płytkę – zachęcam do wypróbowanie własnych pomysłów.
Michał Kurzela, EP
Ładowarka akumulatorków NiCd i NiMH Dostępne w handlu tanie ładowarki nie kontrolują parametrów ładowanych ogniw, a jedynie wymuszają przepływ stałego prądu. Użytkownik powinien samodzielnie pamiętać o odłączeniu jej od zasilania na czas, lecz często zdarza się o tym zapomnieć. Natomiast ładowarki procesorowe są drogie. Przedstawiony projekt stanowi kompromis pomiędzy tymi dwoma rozwiązaniami. Schemat ładowarki widnieje na rysunku 1. Składa się z dwóch identycznych bloków, po jednym dla każdego ładowanego ogniwa, zatem zostanie omówiony tylko jeden. Komparator US1A porównuje napięcie na podłączonym ogniwie z wzorcem. Szerokość pętli histerezy ustalono tak, że komparator załącza ładowanie, gdy napięcie jest niższe niż 1,35 V, a odłącza, gdy przekroczy 1,45 V. Najbardziej obiektywną informacją o stanie naładowania jest badanie pochodELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 57
AVT 1754 nej napięcia na ogniwie po czasie, lecz wymagałoby to zastosowania mikrokontrolera z przetwornikiem A/C o dużej rozdzielczości. Odłączanie ładowania po osiągnięciu odpowiedniego napięcia na pewno nie uszkodzi akumulatorów. Służy do tego tranzystor T1 typu PNP. Prąd ładowania jest ustalony za pomocą rezystorów, a nie źród-
ła prądowego. Nominalnie wynosi on około 100 mA (maleje wraz ze wzrostem napięcia na akumulatorku), a dołączenie równolegle drugiego rezystora spowoduje wzrost do ok. 200 mA. Świecenie diody LED2 sygnalizuje proces ładowania. Gdy dioda LED zgaśnie, ogniwo jest naładowane. Rezystor R6 jest obciążeniem dla tranzystora znajdującego się
57
2013-07-25 12:04:01
MINIPROJEKTY W ofercie AVT* AVT-1754 A AVT-1754 B Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1, R5, R12: 330 V R2: 240 V R3, R10: 4,7 kV R4, R8, R11, R15: 1 kV R6, R7, R13, R14: 33 V/1 W C1: 100 nF (foliowy, 5 mm) C2…C4: 100 mF/16 V (elektrolityczny) D1, D2: 1N4007 LED1: czerwona, 5 mm LED2, LED3: zielona, 5 mm T1, T2: BC337 US1: LM393 J1: ARK2 5mm SV1, SV2: goldpin 1×3 pin, raster 2,54 mm+zworka 2×koszyki na ogniwa AA (opis w tekście) Podstawka DIP-8
Rysunek 1. Schemat ideowy ładowarki NiMH i NiCd
* Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
Rysunek 2. Poglądowe przebiegi czasowe: prądu ładowania i napięcia na stykach akumulatora na wyjściu US1A oraz wstępnie polaryzuje tranzystor T1. Rola kondensatora C3 jest następująca: załóżmy, że chcemy naładować tylko jedno ogniwo lub już ładowane w jakiś sposób utraciło kontakt elektryczny ze stykami. Wówczas pętla dodatniego sprzężenia zwrotnego, którą objęty jest komparator, spowoduje wzbudzenie się układu na bliżej nieznanej częstotliwości. Dodanie tego kondensatora powoduje, że będzie on doładowywany bardzo krótkimi impulsami w dużych odstępach czasowych.
58
051-079_mini.indd 58
Jako źródło napięcia referencyjnego służą dwie połączone szeregowo diody 1N4007. Spadek napięcia w kierunku przewodzenia, przy prądzie 15 mA, wynosi 700 mV na jednej. Ponadto, cechują się sporo mniejszą, w porównaniu z diodami w szklanych obudowach DO-35, wrażliwością na temperaturę. A to z racji stosunkowo grubej warstwy tworzywa sztucznego otaczającego strukturę krzemową. Na rysunku 2 przedstawiono schematyczne przebiegi: napięcia na ogniwie i prądu ładowania w funkcji czasu. Należy
Rysunek 3. Schemat montażowy ładowarki NiMH i NiCd zwrócić uwagę na fakt, iż, po zakończeniu ładowania, akumulatorek ulega powolnemu, samoczynnemu rozładowaniu – na skutek wewnętrznych reakcji chemicznych oraz przepływu niewielkiego prądu polaryzującego wejście komparatora. Po dostatecznie długim czasie, ładowanie zostanie powtórnie załączone. W przypadku mocno rozłaELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 12:04:02
MINIPROJEKTY dowanych i zniszczonych ogniw, może się to wręcz objawiać cyklicznym załączaniem i odłączaniem ładowania w odstępach kilkusekundowych. Układ zmontowano na jednostronnej płytce drukowanej o wymiarach 60 mm×88 mm, której schemat montażowy pokazano na rysunku 3. Montaż wymaga komentarza: diody D1 i D2 należy wlutować pozostawiając stosunkowo długie wy-
prowadzenia (kilka milimetrów nad płytką) oraz przytrzymując je szczypcami podczas lutowania dla odprowadzenia ciepła. Pod układem scalonym US1powinna znaleźć się niewielka zworka z drutu. Na samym końcu montowane są koszyki baterii. W układzie modelowym użyto dwóch na ogniwa AA i przyklejono je klejem na gorąco, lecz nic nie stoi na przeszkodzie, by zamontować inne, stosownie do potrzeb. Również prąd ładowa-
nia można ustalić na inny, wyliczając rezystory zgodnie z prawem Ohma. Ładowarka powinna być zasilana stabilizowanym napięciem +5 V. W układzie modelowym wykorzystano w tym celu złącze USB, co pozwala na zasilanie ładowarki z komputera, laptopa lub ładowarki sieciowej do telefonów komórkowych. Pobierany prąd jest o ok. 30 mA większy niż ustawiony prąd ładowania.
Michał Kurzela, EP
Miniaturowa ładowarka akumulatorów Li-Po zasilana z USB Akumulatory LiPo coraz częściej stają się podstawowym źródłem zasilania, zastępując inne bateryjne lub akumulatorowe źródła energii. Przestawiona ładowarka jest zasilana z portu USB. Umożliwia ładowanie ogniw LiPo o niewielkiej pojemności z zachowaniem procedur krytycznych dla trwałości i bezpieczeństwa eksploatacji. Schemat układu ładowarki Li-Po pokazano na rysunku 1. Jest on zasilany ze złącza USB. Za ładowanie ogniw odpowiada specjalizowany układ MCP73831(2). Jego cechą charakterystyczną jest możliwość programowania prądu ładowania poprzez zmianę wartości rezystora pomiędzy wyprowadzeniem PROG i masą układu. Maksymalny prąd ładowania jest ograniczony do 500 mA, co wynika z ograniczeń starszych portów USB. Dokładną wartość określa się z wzoru: I[mA] = 1000 / Rprog [kV]. W modelu zastosowano przełącznik SW umożliwiający dostosowanie prądu ładowania do pojemności akumulatora. Minimalny prąd ładowania to 100 mA, każda załączona sekcja SW dodaje dodatkowe 100 mA. Przy wszystkich pozycjach załączonych prąd jest
AVT 1757
maksymalny i wynosi 500 mA. Oczywiście, ładowarka ładuje bezproblemowo ogniwa o większej pojemności, proces ładowania trwa wtedy odpowiednio dłużej, z korzyścią dla trwałości akumulatora. Układ uzupełniają diody LED sygnalizujące: LD1 – zasilanie ładowarki, LD2 – proces ładowania. Kondensator C2 zapewnia stabilność układu przy odłączonym akumulatorze. Pojemność C1 odsprzęga zasilanie ładowarki. Gniazdo „Lipo” służy do dołączenia ładowanego akumulatora, jest to typowe dla większości ogniw 4-pinowe gniazdo EH. Układ zmontowany na niewielkiej, jednostronnej płytce drukowanej w formie wtyku do gniazda USB. Rozmieszczenie elementów przedstawia rysunek 2. Montaż układu nie wymaga opisu. Możliwe jest zastosowanie (bez zmian na płytce) układu MCP73832. Różni się on tylko wyjściem STAT typu OC, co dla aplikacji z rys. 1. nie ma znaczenia.
Rysunek 1. Schemat ideowy miniaturowej ładowarki Li-Po ELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 59
W ofercie AVT* AVT-1757 A Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1, R2: 2,2 kV (SMD 1206) R3…R7: 10 kV (SMD 1206, 1%) C1, C2: 10 mF (SMD 1206) LD1: dioda LED SMD, zielona LD2: dioda LED SMD, czerwona U1: MCP73831T-2AT (SOT-23-5) LiPo: gniazdo akumulatora, EH4, kątowe SW: przełącznik DIP, 4 pozycje USB: wtyk USB A, do druku, SMD * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http:// sklep.avt.pl
Rysunek 2. Schemat montażowy miniaturowej ładowarki Li-Po
59
2013-07-25 12:04:02
MINIPROJEKTY W zależności od typu akumulatora, jest możliwe dopasowanie napięcia ładowania z zakresu 4,2; 4,35; 4,4; 4,5 V poprzez odpowiedni wybór typu układu. W modelu zastosowano układ MCP73831T-2AT, przystosowany do akumulatorów z napięciem ładowania 4,2 V.
Uwaga: podczas użytkowania ogniwa należy zachować odpowiednie warunki eksploatacji: zabezpieczyć ogniwo przed uszkodzeniem mechanicznym, zwarciem, przeciążeniem, przeładowaniem, przegrzaniem – w żadnym przypadku nie demontować wbudowanego układu nadzorującego
ogniwo. Nieprzestrzeganie warunków bezpiecznej eksploatacji może spowodować eksplozję ogniwa i pożar oraz zagrożenia dla zdrowia użytkownika.
Adam Tatuś, EP
Wzmacniacz z układem TPA3110 Nowoczesny wzmacniacz o dobrych parametrach. Może być zasilany napięciem z zakresu 8…25 V DC, uzyskuje mocy wyjściową 2×15 W na obciążeniu 8 V. Pracuje w klasie D i ma sprawność dochodzącą do 90%, dzięki czemu nie wymaga stosowania radiatora. Przy długości kabli głośnikowych do 1 m nie trzeba też dławików. Schemat ideowy wzmacniacza pokazano na rysunku 1. Do złącza CON3 jest doprowadzany stereofoniczny sygnał audio. Kondensatory C4, C7, C14, C16 tworzą obwody wejściowe, które konfigurują wejścia różnicowe wzmacniacza do pracy w trybie single ended. Rezystor R5 oraz kondensatory C10 i C13 filtrują napięcia zasilające dla części analogowej oraz stabilizatora 7 V wbudowanego w układ TPA. Kondensatory C1…C3
AVT 1758 oraz C18…C20 filtrują zasilanie dla stopnia mocy. Wyjścia połączone są z filtrami LC zbudowanymi z koralików ferrytowych L1... L4 oraz kondensatorów o niewielkiej pojemności C6, C8, C12, C15 i doprowadzone do złącz CON4 i CON5. Dioda świecąca LED2 sygnalizuje obecność napięcia zasilającego. Dioda LED1 jest dołączona do wyjścia FAULT, a więc sygnalizuje zadziałanie któregoś z zabezpieczeń. Wyjście FAULT jest połączone z wejściem SD odpowiadającym za wprowadzenie układu w stan standby – dzięki temu jest aktywna funkcja Automatic
Rysunek 1. Schemat ideowy wzmacniacza z TPA3110
60
051-079_mini.indd 60
Recovery (patrz dokumentacja TPA3110). Zabezpieczenie przeciwzwarciowe wyłącza się automatycznie po usunięciu zwarcia, natomiast zabezpieczenie DC detect wywołane wystąpieniem napięcia stałego na wejściu wymaga ponownego dołączenia zasilania. Zabezpieczenie termiczne nie wymaga restartu zasilania i nie jest sygnalizowane na wyjściu FAULT, po prostu wyłącza wzmacniacz do czasu obniżenia się temperatury W ofercie AVT* AVT-1758 A AVT-1758 B Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1, R2: 2 kV (SMD 0805) R3: 100 kV (SMD 0805) R4, R6: nie montować! C1, C20: 100 mF/25 V C2, C4, C7, C10, C13, C14, C16, C19: 1 mF (SMD 0805) C3, C5, C9, C11, C17, C18: 220 nF (SMD 0805) C6, C8, C12, C15: 1 nF (SMD 0805) IC1: TPA3110 (np. Farnell element14) LED1, LED2: dioda LED SMD L1...L4: koralik ferrytowy CON1: gniazdo zasilania 2.1/5.5, do druku CON2: goldpin 1×2+zworka CON3: gniazdo jack 3,5 mm, stereo CON4, CON5: DG301-2 * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 12:04:03
MINIPROJEKTY
Rysunek 2. Schemat montażowy wzmacniacza z TPA3110 jego struktury. Wprowadzenie układu w tryb standby wymaga zwarcia szpilek opisanych STBY (CON2), czyli podanie napięcia bliskiego 0 V na wejście SD, co również jest sygnalizowane świeceniem diody LED1. Wzmacniacz zmontowano na płytce o wymiarach 60 mm×28 mm×15 mm, któ-
rej schemat montażowy pokazano na rysunku 2. Większość elementów biernych ma obudowy SMD 0805, więc montaż wymaga precyzji, ale nie powinien sprawić problemów. Sam układ TPA3110 jest dostępny w obudowie TSSOP28, a więc jest łatwy do przylutowania. Należy tylko pamiętać, aby przylutować wyprowadzenie „Power Pad” na tylnej ściance układu. Przelotki pod układem należy zalać cyną od dolnej strony płytki druku. Cyna przepłynie na drugą stronę i połączy „Power Pad”. Po zmontowaniu układ jest od razu gotowy do pracy. Układ ma zabezpieczenie przed napięciem stałym na wejściu, które działa bardzo dobrze – nawet dołączenie rezystorów 100 kV pomiędzy wejściami a masą (R4
i R6 – nie montować) powodowało zadziałanie zabezpieczenia. Gdyby układ z niewiadomych przyczyn zabezpieczał się, to warto najpierw podać sygnał audio, a potem dołączyć zasilanie. Zaskakująca jest sprawność tego układu – wzmacniacz, odtwarzający muzykę, pracujący ze średnią mocą nie pobierał nawet 200 mA. Natomiast w stanie standby pobór prądu wynosił ok. 7 mA (zasilanie 12 V), ale tylko przez świecące się diody LED, ponieważ on sam pobiera poniżej 1 mA. W aplikacjach energooszczędnych warto nie montować diod LED.
KS
Mikrokrokowy sterownik silnika krokowego Sterowniki silników krokowych cieszą się ogromnym zainteresowaniem. Ich zastosowanie umożliwia np. budowę zaawansowanych narzędzi, takich jak frezarki czy wiertarki sterowane numerycznie. Prezentowany sterownik silnika umożliwia płynną regulację prędkości obrotowej i kierunku obrotów silników bipolarnych (4-przewodowych) i unipolarnych (5- lub 6-przewodowych) za pomocą tego samego potencjometru. Zakres zmian prędkości wirowania podzielono na dwa podzakresy: 1...10 i 7...100 cykli na sekundę. Sterowanie mikrokrokowe odbywa się z rozdzielczością 1/64 lub 1/8 kroku. Sterownik może być zasilany napięciem 8...25 V DC, a prąd wyjściowy wynosi do 2 A/kanał (cewkę). Dodatkowo wyposażono go w funkcję pracy czasowej (czas regulowany płynnie w zakresie 0,5...70 s). Schemat sterownika pokazano na rysunku 1. Stopień mocy zrealizowano układzie scalonym L298. Jego pracą steruje mikrokontroler ATtiny26, a zasilania dostarcza stabilizator 78M05. Poza tymi układami scalonymi zamontowano również kilka elementów, które nie wymagają szerszego opisu. Sekwencje pośrednie uzyskiwane są poprzez sterowanie uzwojeniami silnika przebiegiem PWM. Charakterystyka modulacji PWM ma kształt przebiegu trójkątnego. Takie rozwiązanie jest nieskomplikowane i skuteczne w większości wypadków, ale w sterownikach profesjonalnych jest stosowany kształt sinusoidalny. Na płytce znajdują dwa rezystory, które służą do konfigurowania układu. Rezystor R5 służy do wyboru zakresu prędkości obrotowej. Jeśli jest zamontowany, to jest wybrana ELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 61
AVT 1725 wyższa częstotliwość sekwencji, ok. 7...100 cykli na sekundę (czyli pełnych okresów przebiegu w każdym kanale). Oraz układ pracuje z niższą rozdzielczością 1/8 kroku. Brak rezystora R5 oznacza niższą częstotliwość sekwencji, ok. 1...10 cykli na sekundę oraz wyższą rozdzielczość mikrokrokową 1/64. Rezystor R6 określa czy silnik w czasie zatrzymania będzie miał odłączone zasilanie – zatrzymanie statyczne (R6 zamontowany) czy zasilanie będzie utrzymane – zatrzymanie dynamiczne (brak R6). Przy zatrzymaniu statycznym jest możliwy prawie swobodny ruch wału silnika, w czasie zatrzymania dynamicznego wał silnika jest zablokowany w swym położeniu, ale przez cewki płynie prąd przez co silnik grzeje się. Sterownik ma funkcję pracy czasowej. Jej załączenie następuje po zwarciu złącza START/STOP i trwa przez czas proporcjonalny do położenia potencjometru R1. Czas liczony jest od momentu zdjęcia zwory START/STOP. Jeśli zwora pozostanie założona, sterownik będzie pracował przez cały czas. Jeśli ustawiony będzie minimalny czas 0,5 s, to silnik będzie się zatrzymywał praktycznie zaraz po zdjęciu zwory, a więc jakby nie było funkcji czasowej. Potencjometr R3 służy do regulacji kierunku i prędkości obrotowej – w środkowym
W ofercie AVT* AVT-1725 A AVT-1725 B AVT-1725 C AVT-1725 UK Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1, R3: 10...50 kV (potencjometr miniaturowy) R2, R7: 1 kV (SMD 0805) R5, R6: 1...100 V (SMD 0805) C1: 220 mF/25 V (SMD „D”) C2, C3, C5: 100 nF (SMD 0805) C4: 10 mF/10 V (SMD „A”) LED1: dioda LED SMD D1...D8: SS14 IC1: 78M05 (DPACK) IC2: ATtiny26 (SMD) IC3: L298D L1: 1...10 mH (SMD 0805) START/STOP: goldpin 1×2+zworka DIRECT: goldpin 1×2 (opcjonalnie) ZAS, OUT1, OUT2: DG301/5-2 * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
61
2013-07-25 12:04:04
MINIPROJEKTY
Rysunek 1. Schemat ideowy sterownika silników krokowych z przedziału 0...5 V i w ten sposób sterować pracą silnika. Wtedy dla napięcia 2,5 V silnik będzie zatrzymany, wzrost napięcia powyżej 2,5 V spowoduje płynne zwiększanie obrotów w jedną stronę, a spadek napięcia spowoduje płynne zwiększanie obrotów w stronę Rysunek 2. Schemat montażowy sterownika przeciwną. Zamiast R3 można dołączyć joystick potencjometryczny, silników krokowych wtedy obroty silnika będą proporcjonalne do kierunku i siły wychypołożeniu silnik jest zatrzymany, przesulenia joysticka. wanie potencjometru powoduje stopniowe Układ jest zbudowany w większości zwiększanie prędkości obrotowej. Można z elementów SMD, dlatego montaż wymaga nie montować potencjometru R3, zamiast staranności i precyzji. W trakcie montażu tego do złącza DIRECT podawać napięcie
należy podjąć decyzję odnośnie do montażu rezystorów R5 i R6. Jeśli silnik będzie pobierał prąd powyżej 0,5 A na kanał, układ L298 wymaga zastosowania dodatkowego radiatora. Prawidłowo zmontowany układ działa od razu. Prototyp układu powstał do sterowania napędem wózka do kamery tzw Glidetrack i doskonale nadaje się do uzyskiwania bardzo niskich prędkości obrotowych silnika krokowego. Należy jednak pamiętać, że pomimo wysokiej rozdzielczości sterowania mikrokrokowego w niektórych silnikach ruch wału może nie być idealnie płynny i mogą występować niewielkie oscylacje.
KS
AVTduino_DCMotor – driver silników DC o średniej mocy Przedstawiony moduł umożliwia sterowanie i monitorowanie dwóch silników prądu stałego średniej mocy o prądzie uzwojeń do 2,8 A zasilanych napięciem 8…50 V. Układ współpracuje z płytkami zgodnymi mechanicznie z Arduino, zasilanymi z 5 V lub 3,3 V. Ułatwia to zastosowanie z zestawami STM, Freedom, Pioneer (3,3 V). W porównaniu ze standardowymi rozwiązaniami, płytka ma możliwość płynnego ustawiania ograniczenia prądu silnika, monitorowania bieżącej wartość prądu, regulacji PWM. Sygnały sterujące są zgodne ze standardem PWM/DIR, jest dostępny sygnał BRAKE wraz z wyborem sposobu (Fast/ Slow). Zadziałanie zabezpieczenia przeciążeniowego silnika sygnalizowane jest przerwaniem. Piny portu analogowego zostały wyprowadzone na złącza SIP3, zgodne z Arduino Brick, co umożliwia łatwe dołączenie czujników współpracujących z silnikiem. Schemat modułu pokazano na rysunku 1. Sercem AVTDuinoDCMotor jest U1,
62
051-079_mini.indd 62
specjalizowany sterownik-driver L6206 firmy ST. Układ zawiera wszystkie niezbędne dla sterowania silnikiem obwody (rysunek 2): mostek H z tranzystorami MOSFET o małej Rdson, zintegrowaną przetwornicę podwyższającą napięcie dla bramek mostka H, niewymagający zewnętrznych elementów układ monitorowania prądu i detekcji przeciążenia, o możliwości ustawienia wartości progowej oraz układ logiki sterującej z zabezpieczeniami. Napięcie zasilania silnika MVCC jest oddzielone od napięć sterujących i musi pochodzić ze źróła zewnętrznego. Napięcie MVCC, podawane poprzez złącze PWRM,
AVT 1759 zasila mostki H układu U1. Diody D1 i D2, kondensatory Cb i Cp oraz rezystor Rp są elementami przetwornicy napięcia niezbędnej dla prawidłowego sterowania „górnych” tranzystorów mostka. Do wyprowadzenia U1-SENSEA są dołączone „dolne” wyprowadzenia mostka H. Rezystory szeregowe RAS1...RAS4 umożliwiają pomiar prądu silnika. Sygnał jest dostępny na złączu CSA. Ze ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 12:04:05
MINIPROJEKTY Tabela 1. Tablica prawdy układu multipleksera U3 (74HC153) DIRA 0 1 0 1 0 1 0 1
BRKA 0 0 1 1 0 0 1 1
BRA 0 0 0 0 1 1 1 1
IN1A 1 0 0 0 1 0 1 1
IN2B 0 1 0 0 0 1 1 1
OUT1A VM GND GND GND VM GND VM VM
OUT2A GND VM GND GND GND VM VM VM
względu na traconą moc jest zbudowany z 4 rezystorów 1206/0,5 W. Rezystory RAS1… RAS4 mogą zostać zastąpione zworą, jeżeli nie potrzebujemy informacji o prądzie uzwojeń. Można je też pozostawić wlutowane, a zworę zakładać na złącze CSA zmniejszając w ten sposób moc rozpraszaną na płytce. Wewnętrzny pomiar prądu L6206, w porównaniu do starszych wersji, nie wymaga rezystora w obwodzie silnika. Wykorzystuje
Rysunek 1. Schemat ideowy modułu AVTduino_DCmotor ELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 63
63
2013-07-25 12:04:06
MINIPROJEKTY jeden z kilkunastu równolegle połączonych tranzystorów składających się na tranzystor mocy mostka H jako proporcjonalny czujnik prądu. Umożliwia to znaczące zredukowania mocy traconej i upraszcza układ. Wyprowadzenie PROGCLA umożliwia ustawienie
progu zabezpieczenia przeciążeniowego silnika zgodnie z rysunkiem 3. Do ustawienia dokładnej wartości prądu zabezpieczenia służy potencjometr RVA. Rezystor RCLA ustawia wstępnie maksymalny próg zadziałania. Zadziałanie zabezpiecze-
Rysunek 2. Schemat blokowy L6206 (za notą producenta). Listing 1. Program testujący działanie płytki // AVTDuinoDCMotor TEST, Adam Tatus // Kolejno dwa silniki w rewersie #define #define #define #define #define #define
PWMA DIRA BRKA PWMB DIRB BRKB
6 7 9 5 4 8
byte LDT = 1000; byte SDT = 10; void setup() { pinMode(PWMA, pinMode(PWMB, pinMode(DIRA, pinMode(DIRB, pinMode(BRKA, pinMode(BRKB, }
OUTPUT); OUTPUT); OUTPUT); OUTPUT); OUTPUT); OUTPUT);
digitalWrite(PWMA,0); digitalWrite(PWMB,0);
void loop() { digitalWrite(DIRA,0); // A Right digitalWrite(BRKA,0); for (int i=0; i <= 255; i++){ // A PWR RUN analogWrite(PWMA, i); delay(SDT); } digitalWrite(BRKA,1); // A Brake delay(LDT); digitalWrite(DIRA,1); // A Left digitalWrite(BRKA,0); for (int i=0; i <= 255; i++){ // A PWR RUN analogWrite(PWMA, i); delay(SDT); } digitalWrite(BRKA,1); digitalWrite(DIRA,0); digitalWrite(PWMA,0); // A Stop digitalWrite(DIRB,0); // B Right digitalWrite(BRKB,0); for (int i=0; i <= 255; i++){ // B PWR RUN analogWrite(PWMB, i); delay(SDT); } digitalWrite(BRKB,1); // B Brake delay(LDT); digitalWrite(DIRB,1); // B Left digitalWrite(BRKB,0); for (int i=0; i <= 255; i++){ // B PWR RUN analogWrite(PWMB, i); delay(SDT); } digitalWrite(BRKB,1); digitalWrite(DIRB,0); digitalWrite(PWMB,0); // B Stop }
64
051-079_mini.indd 64
nia przeciążeniowego jest sygnalizowane wyzerowaniem wyjścia (otwarty dren) OCDA wstępnie zasilanego przez rezystor RA1. Bramka AND (U2-1) buforuje sygnał przerwania OVCA, który poprzez przełącznik DIP SW2-2 jest doprowadzony do złącza IOL. Przerwanie może być „odłączone” SW2-2, jeśli nie będzie używane przez kontroler, „uwalniając” piny dla innych zastosowań. Sygnał przerwania OVCA poprzez bramkę U2-3 blokuje wysterowanie sygnałem PWM wejścia sterującego U1-ENA. Powoduje to wyłączenie mostka H przy przeciążeniu. Sterowanie silnikiem odbywa się przez sygnały kierunku DIRA, zezwolenia PWMA oraz hamowania BRKA (wszystkie sygnały aktywne na poziomie wysokim). Przełącznikiem SW-4 zadajemy sygnał BRA określający sposób hamowania silnika. Sygnały doprowadzone są do multipleksera U3-HC153 pełniącego funkcję transkodera. Funkcje realizowane przez U3 określa tabela 1. Znaczenie sygnałów „B” i zasada działania dla drugiego silnika są identyczne. Złącza GNDA, VCCA, IAD umożliwiają wyprowadzenie sygnałów portu analogowego zgodnie z ArduinoBricks i mogą być wykorzystane W ofercie AVT* AVT-1759 A Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1, RA2, RB2: 2,2 kV (SMD 1206) RA1, RA3, RB1, RB3: 100 kV (SMD 1206) RAS1…RAS4, RBS1…RBS4: 1 V (SMD 1206, 1%, 0,5 W) RCLA, RCLB: 5,1 kV (SMD 1206) RP: 100 V (SMD 1206) RVA, RVB: 47 kV (potencjometr do druku) C1…C4, CB: 220 nF (SMD 12106) CA2, CB2: 5,6 nF (SMD 1206) CE1, CE2: 47 mF/50 V (elektrolit. SMD FKV8E) CP: 10 nF (SMD 1206) D1, D2: LL4148 (MINI MELF) U1: L6206PD (POWERSO36) U2: HC08 (SO14) U3, U4: 74HC153 (SO16) AD: złącze przelotowe SIP6 RES: przycisk 6×3 mm SW: przełącznik DIP SW-4 CSA, CSB: złącze męskie SIP2+zwora IAD, GNDA, VCCA: złącze męskie SIP6 IOH: złącze przelotowe SIP10 IOL, PWR: złącze przelotowe SIP8 ISP: złącze przelotowe IDC6 PW: dioda LED SMD PWRM: złącze MC kątowe, kompletne PWS: złącze MSS-2235 * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 12:04:07
MINIPROJEKTY
Rysunek 3. Zależność progu zabezpieczenia od wartości RCLA (za notą producenta)
do podłączenia współpracujących z silnikami czujników. Przełącznik PWS umożliwia wybór napięcia zasilającego logikę pomiędzy 3,3 V, a 5 V zależnie od wymogów płytki bazowej. Złącze ISP jest opcjonalne, moduł nie wykorzystuje jego sygnałów, należy je wlutować, gdy zamierzamy „kanapkować” płytki rozszerzeń dla zachowania pełnej zgodności z Rev3 Arduino. Silniki i zasilanie doprowadzone są do płytki rozłączanym złączem śrubowym MC. Układ zmontowano na dwu-
Licznik impulsów
stronnej płytce drukowanej. Rozmieszczenie elementów pokazano na rysunku 4. Montaż jest typowy i nie wymaga opisu. Bardzo istotne jest prawidłowe wlutowanie U1, a szczególnie padu termicznego, który ułatwia odprowadzenie ciepła. Poprawnie zmontowany układ nie wymaga uruchamiania. W celu przetestowania płytki przygotowałem program zamieszczony na listingu 1. Przed załadowaniem i podłączeniem silników, należy zgodnie z rys. 3 ustalić wartość
Rysunek 4. Schemat montażowy modułu AVTduino_DCmotor prądu zabezpieczenia i potencjometrami RVA,B ustawić przybliżoną wartość. Oprogramowanie najpierw rozpędza silnik A za pomocą PWM, zatrzymuje, zmienia kierunek i ponownie rozpędza. Po zatrzymaniu silnika A cykl jest powtarzany dla silnika B. Jeżeli wszystko działa zgodnie z założeniami, moduł jest gotowy do realizacji bardziej złożonych zadań.
Adam Tatuś, EP
AVT AVT 1750/1 1750/2
Licznik impulsów pochodzących na przykład z różnych czujników lub włączników. Zlicza on impulsy w górę i w dół z częstotliwością nie większa niż 10 Hz (10 impulsów na sekundę). Maksymalna pojemność licznika wynosi 9999. Dodatkowo, układ wyposażono w możliwość zapamiętania wyniku oraz sygnalizację dźwiękową. Licznik może pracować z wyświetlaczami o dwóch wielkościach – pierwszym, miniaturowym, o wysokości cyfry 7 mm lub drugim, większym, z wyświetlaczami o wysokości 27 mm, idealnie mieszczącym się w obudowie typu KM50 (fotografia 1). Schemat ideowy licznika pokazano na rysunku 2. Powinien on być zasilany napię-
Fotografia 1. Wyświetlacz o wysokości znaków 27 mm w obudowie KM50 ELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 65
ciem stałym o wartości 7...15 V doprowadzonym do złącza POWER. Dioda D1 zabezpiecza układ przed niewłaściwą polaryzacją napięcia wejściowego, natomiast kondensatory C1, C2 i C3 pełnią rolę filtra zasilania. Zewnętrzne napięcie wejściowe jest podawane na stabilizator U1. Pracą licznika steruje
mikrokontroler ATtiny2313 taktowany wewnętrznym sygnałem zegarowym. Wyświetlacze zostały opracowane w dwóch wersjach gabarytowych, natomiast ich sterowanie odbywa się w sposób identyczny. Anody
Rysunek 2. Schemat ideowy licznika
65
2013-07-25 12:04:07
MINIPROJEKTY W ofercie AVT* AVT-1750 A AVT-1750 B AVT-1750 C AVT-1750 UK Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1, R13...R15: 10 kV (SMD 0805) R2...R5: 4,7 kV (SMD 0805) R6...R12: 100 V (SMD 0805) C1, C2: 100 nF (SMD 0805) C3: 10 mF/16 V D1: 1N4007 (MELF) T1...T4: BC857 (SOT-23) U1: 78M05 (TO-252) U2: ATtiny2313 (SOIC20) LED1...LED4: wyświetlacze 7 mm lub 25 mm (w zależności od wersji) listwa goldpin kątowa 14szpilek DG381-3.5/2 – 5 szt. mikroswitch 3×6 – 3 szt. * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
wyświetlaczy są zasilane poprzez tranzystory T1...T4, natomiast katody bezpośrednio z portu mikrokontrolera poprzez rezystory ograniczające R6...R12. Rezystory R13...R15 podciągają wejścia licznika do +5 V. Schemat montażowy licznika pokazano na rysunku 3. Składa się on z dwóch płytek
Rysunek 2. c.d. schematu drukowanych. Wielkość i komponenty płytki wyświetlacza zależą od wybranej wersji gabarytowej. Montaż jest typowy i nie powinien przysporzyć problemów. Po zmontowaniu należy połączyć obydwie płytki za pomocą listwy szpilek goldpin. Do wejść oznaczonych UP, DOWN oraz RESET dołączone zostały mikroprzyciski umożliwiające bezpośrednie sterowanie pracą licznika. Impuls na wejściu wyzwalającym UP powoduje zwiększenie wartości, a impuls na wejściu DOWN powoduje jej zmniejszanie. Krótkie naciśnięcie przycisku RESET umożliwia zapis aktualnego stanu licznika do pamięci.
Sytuacja ta jest sygnalizowana krótkim mignięciem wyświetlanej wartości. Zapisany w ten sposób wynik będzie przywracany po każdorazowym włączeniu zasilania licznika. Aby wyzerować licznik należy przez około 3 sekundy przytrzymać przycisk RESET, a gdy wyświetlona zostanie wartość 0, kolejne krótkie naciśnięcie tego przycisku zapisze tę wartość do pamięci. Do wyjścia oznaczonego PIEZO można dołączyć brzęczyk piezo – będzie on pełnił rolę sygnalizatora zaliczenia impulsu.
EB
Rysunek 3. Schemat montażowy licznika
ATmega128 na płytce ewaluacyjnej AVT5311 Moduł opracowano z myślą o użytkownikach płytki testowej AVT5311 pragnących rozszerzyć jej możliwości. Przejściówka umożliwia zastosowanie mikrokontrolera ATmega128 dołączając ją do złącza JP1 w płytce testowej dla mikrokontrolerów AVR. Schemat elektryczny przejściówki pokazano na rysunku 1. Poza złączem J1 służącym do połączenia modułu z płytką ewaluacyjną, z mikrokontrolera ATmega128 wyprowadzone zostały pozostałe sygnały,
66
051-079_mini.indd 66
niewykorzystane na płytce. Dostępne są one na złączach J2 port E, J3 port G oraz J4 port F, rozmieszczonych wzdłuż krawędzi płytki. W module zastosowano również rezonator kwarcowy umożliwiający taktowanie
AVT 1752 ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 12:04:08
MINIPROJEKTY
Rysunek 1. Schemat ideowy adaptera ATmega128/AVT5311 W ofercie AVT* AVT-1752 A AVT-1752 B AVT-1752 C Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: C1, C2: 22pF U1: ATmega128 Q1: rezonator kwarcowy16 MHz J1: goldpin 2×20 J2, J3, J4: goldpin 2x5 * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http:// sklep.avt.pl
mikrokontrolera zewnętrznym sygnałem zegarowym. Bezpośrednio na płytce modułu umieszczone zostało 10-pinowe złącze przeznaczone do dołączenia programatora ISP oraz dodatkowe, umożliwiające programowanie oraz debugowanie programu z wykorzystaniem interfejsu JTAG. Schemat montażowy modułu pokazano na rysunku 2. Montaż jest typowy i nie powinien nastręczać żadnych trudności. Nieco uwagi należy jedynie poświęcić montażowi mikrokontrolera. W montażu tego typu układów bardzo pomocne są topnik i plecionka. Topnik umożliwia rozpłynięcie się cyny i uniknięcie zwarć pomiędzy nóżkami układu, natomiast plecionka jest pomocna do odprowadzania jej nadmiaru.
EB
Rysunek 2. Schemat montażowy adaptera ATmega128/AVT5311
AVT 1756
Mostek H Mostek H jest układem umożliwiającym sterowanie kierunkiem przepływu prądu. Najczęściej takie mostki są używane do zasilania silników prądu stałego. Znajdują one zastosowanie zarówno w elektronice profesjonalnej, jak i amatorskiej, modelarstwie, robotyce itp. ELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 67
67
2013-07-25 12:04:08
MINIPROJEKTY W ofercie AVT* AVT-1756 A AVT-1756 B AVT-1756 C Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1...R4, R7, R8: 10 kV R5, R6: 1 kV T1, T2: BC547 T3, T4: IRF4905 T5, T6: IRL3803 Złącza ARK Radiator tulejki izolacyjne i podkładki silikonowe
Rysunek 1. Schemat ideowy mostka H
Rysunek 2. Schemat montażowy mostka H Schemat ideowy modułu mostka H pokazano na rysunku 1. W proponowanym rozwiązaniu elementami wykonawczymi, bezpośrednio zasilającymi dołączony do układu silnik, są cztery tranzystory MOS-
FET pracujące w układzie mostka, w którego przekątnej został włączony silnik. Pojawienie się poziomu wysokiego na wejściu IN1 spowoduje spolaryzowanie tranzystora T1, a w konsekwencji jednoczesne włączenie tranzystorów T3 i T6 oraz obrót silnika w jednym kierunku. Podobnie spolaryzowanie bazy tranzystora T2 wywoła włączenie tranzystorów T2 i T5 oraz obrót silnika w kierunku przeciwnym. Schemat montażowy mostka H pokazano na rysunku 2. Sterownik wykonano na laminacie dwustronnym z użyciem elementów przewlekanych. Montaż jest typowy i nie
* Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
powinien przysporzyć kłopotów. Należy pamiętać, aby układ mocy wyposażyć w radiator, a pod tranzystory zastosować podkładki i tulejki izolacyjne.
EB
MicroMic – przedwzmacniacz mikrofonowy Pierwsze, co zwraca uwagę, po włączeniu przedwzmacniacza w torze audio, to... Absolutna cisza – szum jest na ekstremalnie niskim poziomie. Efekt jest dużo lepszy, niż w popularnych przedwzmacniaczach z TL0xx czy NE5532. Również bardzo dobrze działa funkcja automatycznej regulacji wzmocnienia – dobrze słyszalny był każdy szept, a sprzężenia pojawiały się dopiero po zbliżeniu mikrofonu do głośnika.
AVT 1760
Rysunek 2. Schemat montażowy wzmacniacza mikrofonowego z MAX9814
Rysunek 1. Schemat ideowy wzmacniacza mikrofonowego z MAX9814 Schemat ideowy wzmacniacza pokazano na rysunku 1. Jego sercem jest specjalizowany, miniaturowy układ scalony MAX9814, który w strukturze zawiera 3-stopniowy przedwzmacniacz, blok automatycznej regulacji wzmocnienia oraz niskoszumne źródło
68
051-079_mini.indd 68
napięcia zasilającego mikrofon. Wzmacniacz powinien być zasilany dobrze odfiltrowanym napięciem 5…15 V DC, pobór prądu jest mniejszy od 5 mA. Płytka drukowana ma bardzo małe wymiary (32 mm×12 mm), co umożliwia jej zamontowanie np. w obu-
dowie mikrofonu. Wzmacniacz jest przeznaczony do współpracy z mikrofonami elektretowymi zasilanymi napięciem 2 V. Wzmocnienie wynosi 50 lub 60 dB i jest automatycznie dopasowywane do poziomu natężenia dźwięku za pomocą obwodów AGC. Układ scalony MAX9814 do poprawnej pracy wymaga jedynie kilku elementów biernych. Rezystory R3 i R8 tworzą dzielnik, który ustala próg zadziałania AGC. Kondensator ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 12:04:09
MINIPROJEKTY W ofercie AVT* AVT-1760 A Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1…R6, R8: 3,3 kV (SMD 0603) R3: 10 kV (SMD 0603) C1, C2, C7: 100 nF (SMD 0603) C3…C6: 1 mF (SMD 0603) IC1: MCP1703-3,3 V IC2: MAX9814 (Farnell) CON1: goldpin 1×4 CON2: mikrofon elektretowy 2 V
C2 oraz rezystory R2 i R7 określają czasy reakcji i zwolnienia bloku AGC. Włączenie rezystora R6 ustala maksymalne wzmocnienie całego toru na poziomie 50 dB (316 razy), bez tego elementu można uzyskać wzmocnienie 60 dB (1000 razy). Wartości tych elementów zostały dobrane do uzyskania najlepszych efektów dla mowy. Rezystory R4 i R5 tworzą dzielnik sygnału wyjściowego, który ogranicza maksymalną amplitudę do ok 1,5 V. Aby uzyskać większą amplitudę należy zastąpić R4 zworą. Napięcia stabilizowanego o wartości 3,3 V dostarcza miniaturowy stabilizator MCP1703.
Schemat montażowy wzmacniacza mikrofonowego pokazano na rysunku 2. Montaż układu wymaga dużej staranności i precyzji, ponieważ elementy RC mają miniaturowe obudowy SMD0603 a wymiary obudowy układu MAX9814 to zaledwie 3 mm×3 mm. Układ jest gotowy do pracy tuż po zmontowaniu. Na złączu CON1 jest dostępne wyjście sygnału oraz wejście zasilania. Do złącza CON2 należy dołączyć mikrofon elektretowy, opis poszczególnych wyprowadzeń znajduje się na schemacie.
KS
Stopień mocy z układem ULN2003 Układ prostego modułu wykonawczego z układem ULN2003. Ten popularny układ zawiera w swej strukturze 7 par tranzystorów w układzie Darlingtona, ze wspólnym emiterem. Doskonale nadaje się do sterowania silnikami lub przekaźnikami. Wyjście każdej pary tranzystorów jest zabezpieczone diodą. Schemat elektryczny stopnia mocy pokazano na rysunku 1, natomiast montażowy na rysunku 2. Za pośrednictwem układu ULN2003 można sterować obciążeniami wymagającymi prądu zasilania do 0,5 A i zasilanych ze znacznie wyższego napięcia, Rysunek 1. Schemat ideowy modułu z ULN2003 niż układy sterujące jego pracą. Diody LED1...LED7 zostały dołączone bezpośrednio do wyjść układu i informują o tym, które z nich jest aktualnie aktywne (przewodzi prąd). Układ należy zmontować na płytce drukowanej pokazanej na rysunku 2. Montaż nie powinien sprawić problemów, a układ po poprawnym zmontowaniu nie wymaga uruchamiania i powinien Rysunek 2. Schemat montażowy modułu od razu pracować poprawnie. z ULN2003
EB
AVT 1761
W ofercie AVT* AVT-1761 A AVT-1761 B AVT-1761 C Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: RP1: Rpack 8×10 kV C1: 100 nF PWR, LED1...LED7: dioda LED SMD U1: ULN2003 Listwa goldpin kątowa * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
Miniaturowy, regulowany stabilizator impulsowy Zaletą prezentowanego stabilizatora jest dobra sprawność, więc doskonale sprawdzi się w sytuacjach, w których napięcie wyjściowe musi być dużo niższe od wejściowego. Tam zwykły stabilizator liniowy zwyczajnie by się przegrzał. ELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 69
AVT 1762
Inną nietypową możliwością jest praca z wypełnieniem 100%, czyli ze zwartym kluczem w strukturze układu scalonego. Tranzystor kluczujący może być stale otwarty, bez cyklu wyłączenia. Dzięki temu uzyskanie za-
69
2013-07-25 12:04:09
MINIPROJEKTY
Rysunek 1. Schemat ideowy zasilacza z L5973D danego napięcia wyjściowego np. 12 V będzie możliwe przy zasilaniu już 12 V (pomijając niewielki spadek napięcia, który przy prądzie wyjściowym 1 A wynosi zaledwie 0,3 V). Przetwornica może być zasilana napięciem 5…35 V. Przy napięciu wejściowym rzędu 15 V lub więcej, napiecie wyjściowe może być regulowane w zakresie 1,2…14,4 V. Prąd obciążenia może krótkotrwale sięgać do 1,5 A, ale jego wartość ciągła to 1 A. Sprawność dochodzi do 90%. Układ ma wbudowane zabezpieczenie termiczne, które zabezpiecza go przed przegrzaniem. Sercem przetwornicy (rysunek 1) jest scalony stabilizator impulsowy L5973D. Dioda D1 zabezpiecza układ przed odwrotną polaryzacją napięcia zasilającego. Została włączona równolegle do zacisków napięcia wejściowego, aby nie wprowadzać dodatkowego spadku napięcia. Przy odwrotnym włączeniu powoduje zwarcie i nie dopuszcza do wzrostu napięcia, chroniąc w ten sposób pozostałe elementy, jednak w takim wypadku sama może ulec uszkodzeniu. Kondensatory C1 i C2 filtrują zasilanie, rezystor R2 oraz kondensatory C4 i C5 są niezbędne do poprawnej pracy układu. Dławik L1, dioda D2 i klucz w strukturze układu scalonego tworzą typową przetwornicę buck. Rezystory R1 i R3 tworzą dzielnik ustalający napięcie wyjściowe. Dla podanych wartości zakres regulacji wynosi 1,2...14,4 V. Gdyby okazał się za mały, można zmniejszyć wartość R1 np. do 2,2 kV i osiągnąć regulację w zakresie prawie
Rysunek 2. Schemat montażowy zasilacza z L5973D do 30 V. Uwaga – należy wtedy zastosować kondensatory C6 i C7 o wyższym napięciu przebicia. Rezystor R4 i kondensatory C3, C6, C7 tworzą filtr wyjściowy. Dioda D3 zasilana za pomocą R5 sygnalizuje występowanie napięcia wyjściowego. Dioda Zenera D4 jest opcjonalnym elementem zabezpieczającym. W wypadku uszkodzenia układu scalonego napięcie zasilające może pojawić się na wyjściu, wtedy dioda Zenera ograniczy to napięcie, spowoduje przepływ dużego prądu przez R4 i w efekcie jego uszkodzenie – przerwanie obwodu. Wartość napięcia dla D4 należy dobrać o kilka woltów wyższą od wymaganego napięcia wyjściowego. Układ został wykonany w większości z elementów SMD, ale montaż (rysunek 2) nie powinien sprawić problemów. Komponenty są obudowach 1206, a przy tym luźno rozmieszczone na płytce. Należy zwrócić uwagę na nietypowe, poziome ułożenie kondensatora C1. Po zmontowaniu, przy pierwszym uruchomieniu, należy tylko ustawić za pomocą potencjometru R3 wymagane napięcie wyjściowe. KS
W ofercie AVT* AVT-1762 A AVT-1762 B Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1, R2, R5: 4,7 kV (SMD 1206) R3: 50 kV (potencjometr) R4: 0,1 V (SMD 1206) C1: 470 mF/35 V C2, C3, C5: 22 nF (SMD 1206) C4: 220 pF (SMD 1206) C6, C7: 100 mF/16 V (SMD „D”) D1: 1N4007 (SMD) D2: SS34 (SMD) D3: dioda LED SMD D4: dioda Zenera np. 20 V IC1: L5973D (HSOP-8) L1: 100 mH, co najmniej 1 A CON1, CON2: DG381-2 * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
Miniaturowa przetwornica 3 V/5 V (500 mA) Akumulatory Li-Po coraz częściej stają się podstawowym źródłem zasilania zastępując inne chemiczne źródła energii. Przestawiona przetwornica umożliwia wykorzystanie ogniwa Li-Po do zasilania układów 5 V. Schemat przetwornicy pokazano na rysunku 1. Jest ona oparta o specjalizowany układ scalony U1 typu TPS61202 zawierający w swej strukturze przetwornicę podwyższająco-obniżającą o sprawności powyżej 90% (dla Uwe>3 V), klucz odcinający obciążenie po wyłączeniu przetwornicy, układy zabezpieczeń przeciwzwarciowych, termicznych i podnapięciowych. Układ jest zasilany z ogniwa Li-Po poprzez typowe gniazdo EH4. Wyłącznik PWR
70
051-079_mini.indd 70
umożliwia wyłączenie przetwornicy na czas manipulacji w zasilanym układzie, dioda LD1 sygnalizuje obecność 5 V, napięcie wyjściowe dostępne jest na gniazdach ARK-DC5V oraz złączach SIL 5V/GND ułatwiających stosowanie w płytkach prototypowych. Kondensatory C1…C3 odsprzęgają, odpowiednio: bateryjne, wewnętrzne i wyjściowe napięcia układu. Rezystory R1 i R2 tworzą dzielnik układu komparatora zabezpieczenia podnapięciowego. Próg dla wyłączenia prze-
AVT 1763 twornicy jest określony na 250 mV z histerezą 100 mV dla ponownego załączenia. Zalecana wartość R1 to około 250 kV, wartość R2 można obliczyć ze wzoru: ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 12:04:09
MINIPROJEKTY W ofercie AVT* AVT-1763 A Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1: 270 kV (SMD 0805) R2: 2,7 MV (SMD 0805) R3: 2,2 kV (SMD 0805) C1, C3: 10 mF (SMD 0805) C2: 0,1 mF (SMD 0805) U1: TPS61202DCRT (SON10) LD1: dioda LED SMD BAT: złącze EH4/254H DC5V: złącze ARK2/200 GND: SIP2 L1: 2.2 mH np. DLJ4018 PWR: MSS-2235 VCC: złącze SIP2 * Uwaga: Zestawy AVT mogą występować w następujących wersjach: AVT xxxx UK to zaprogramowany układ. Tylko i wyłącznie. Bez elementów dodatkowych. AVT xxxx A płytka drukowana PCB (lub płytki drukowane, jeśli w opisie wyraźnie zaznaczono), bez elementów dodatkowych. AVT xxxx A+ płytka drukowana i zaprogramowany układ (czyli połączenie wersji A i wersji UK) bez elementów dodatkowych. AVT xxxx B płytka drukowana (lub płytki) oraz komplet elementów wymieniony w załączniku pdf AVT xxxx C to nic innego jak zmontowany zestaw B, czyli elementy wlutowane w PCB. Należy mieć na uwadze, że o ile nie zaznaczono wyraźnie w opisie, zestaw ten nie ma obudowy ani elementów dodatkowych, które nie zostały wymienione w załączniku pdf AVT xxxx CD oprogramowanie (nieczęsto spotykana wersja, lecz jeśli występuje, to niezbędne oprogramowanie można ściągnąć, klikając w link umieszczony w opisie kitu) Nie każdy zestaw AVT występuje we wszystkich wersjach! Każda wersja ma załączony ten sam plik pdf! Podczas składania zamówienia upewnij się, którą wersję zamawiasz! (UK, A, A+, B lub C). http://sklep.avt.pl
R2=R1((Vinmin/Vlvo)–1) gdzie Vlvo=250±15 [mV]. W modelu rzeczywiste wartości wynoszą 3,85 V/2,75 V.
Rysunek 1. Schemat ideowy przetwornicy z TPS61202 Próg można oczywiście dostosować do własnych potrzeb, jeżeli do zasilania przetwornicy używamy 2 lub 3 akumulatory NiMH lub baterie R6. Układ zmontowany jest na niewielkiej, jednostronnej płytce drukowanej. Rozmieszczenie elementów pokazano na rysunku 2. Montaż nie wymaga opisu. Zastosowany układ U1 ma obudowę SON z wkładką radiatorową, należy zwrócić uwagę na poprawne przylutowanie wkładki do masy układu. Prawidłowo zmontowany układ nie wymaga uruchamiania. Warto sprawdzić jedynie zgodność progu wyłączenia z obliczonym, gdyż wewnętrzne odniesienie Ulvo dla komparatora ma spory rozrzut. Uwaga: podczas użytkowania ogniwa Lipo należy zachować odpowiednie warunki eksploatacji: zabezpieczyć ogni-
Rysunek 2. Schemat montażowy przetwornicy z TPS61202 wo przed uszkodzeniem mechanicznym, zwarciem, przeciążeniem, przeładowaniem, przegrzaniem – w żadnym wypadku nie demontować wbudowanego układu nadzorującego ogniwo. Nieprzestrzeganie warunków bezpiecznej eksploatacji może spowodować eksplozję ogniwa i pożar oraz zagrożenia dla zdrowia użytkownika.
Adam Tatuś, EP
Efekt Gitarowo/Basowy Crunch Drive Zasada działania efektu jest prosta: symuluje on delikatne przesterowanie. Efekt „Crunch Drive” opracowałem samodzielnie, ponieważ szukałem delikatnego przesterowania „Overdrive” by móc wydobyć unikatowe brzmienie. Doskonale nadaje się on do gitary elektrycznej i basowej. Schemat ideowy efektu Crunch Drive pokazano na rysunku 1. W pętli pierwszego stopnia podwójnego wzmacniacza operacyjnego USA (NE5532) znajduje się ogranicznik diodowy z diodami LED i potencjometr VR1 100 kV/A. „Wzmocnienie” (Gain), którym regulujemy siłę przesterowania. Diody LED ograniczają sinusoidę, ale nie jest to ograniczenie symetryczne. Ponieważ przed diodami LED znajdują się rezystory o różnych rezystancjach, które indywidualnie podwyższają próg obcięcia dla każdej z diod. Taka kombinacja jest jak najbardziej celowa, ponieważ asymetryczne obcięcie sinusoidy daje zupełnie inny charakter przesterowania niż w przypadku symetrycznego obcięcia sinusa. Dla przykładu, gdy gramy delikatnie, z tzw. „feelingiem” (wyczuciem) efekt dopasowuje się do nas. Co niestety przy symeELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 71
trycznym obcięciu sinusa jest trudniejsze i wymaga zmniejszenia wielkości przesterowania i dość dużego doświadczenia w grze na gitarze. Obcięty asymetrycznie sygnał musi być wzmocniony przez kolejny stopień wzmacniacza USB (NE5532) z prostego powodu: obcięta sinusoida spowodowałaby spadek sygnału wyjściowego, co utrudniałoby korzystanie z efektu w dopasowaniu głośności przy minimalnych ustawieniach „wzmocnienia”. Za tym stopniem znajduje się prosty pasywny regulator tonów, którego zadaniem jest urozmaicenie barwy efektu od jasnego (bogatego w wysokie tony) do ciemniejszego (bogatego w niskie tony) brzmienia. Za regulatorem tonów znajduje się potencjometr głośności VR3 100 kV o charakterystyce logarytmicznej. Został on dodatkowo wyposażony w specjalny filtr pasmowy. Przy minimalnych
AVT 1765 wartościach głośności kondensator 470 pF (C11) ma niewielkie znaczenie, ponieważ jego wyprowadzenia są prawie zwarte ze sobą przez rezystancję potencjometru, natomiast kondensator 150 pF (C10) odgrywa znaczną rolę i przenosi wysokie tony. Kompensuje
71
2013-07-25 12:04:10
MINIPROJEKTY
Rysunek 1. Schemat ideowy efektu Crunch Drive
Rysunek 2. Schemat montażowy efektu Crunch Drive on naturalną fizjologiczną regulację głośności i poprawia wadę tej regulacji, co niestety w standardowej głośności wiązało się z dość dużym rozkręceniem potencjometru głośności na około połowę zakresu by tony wysokie były bardziej wyraźne. Wraz ze zwiększaniem głośności kondensator 150 pF zaczyna odgrywać coraz mniejsze znaczenie, a rośnie znaczenie kondensatora 470 pF, który kompensuje pojawiające się drobne szumy. Dodatkowy kondensator 1 nF (C14) wspomaga
ograniczenie szumów. Kondensator 220 nF (C12) został odseparowany rezystorem 10 kV (R12), dlatego, że przy minimalnym poziomie głośności kondensator 220 nF zostałby prawie zwarty do masy, co spowodowałoby obcięcie tonów wysokich i zakłóciłby działanie „kompensacji fizjologicznej regulacji głośności”. Układ zasilany jest z baterii 9 V lub zasilacza stabilizowanego 9 V. Schemat montażowy pokazano na rysunku 2. Efekt ma zabezpieczenie przed odwrotnym podłączeniem zasilania. To dioda krzemowa 1N4007, która jest włączona szeregowo z dodatnim biegunem zasilania. Efekt zmontowany ze sprawdzonych elementów działa od razu i nie wymaga żadnej regulacji. Zaleca się wmontowanie efektu w metalową obudowę, co ochroni układ przed zakłóceniami elektromagnetycznymi z otoczenia. W przypadku obudowy plastikowej należy podłączyć do obudowy tych potencjometrów przewód z masą.
Piotr Łuciuk
W ofercie AVT* AVT-1765 A AVT-1765 B Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1, R4, R10: 1 MV R2: 470 kV R3, R7, R8: 4,7 kV R5: 2,2 kV R6: 3,3 kV R14: 1 kV R9, R11, R12, R17: 10 kV R13: 100 kV R15, R16: 22 kV VR1: 100 kV/A VR2: 20 kV/A VR3: 100 kV/C C1, C3: 22 nF C2, C13: 120 pF C10: 150 pF C5: 100 pF C4, C15: 100 nF C6, C9: 1 mF C11: 470 pF C14: 1 nF C8, C12: 220 nF C7: 2,2 nF C16: 220 mF (elektrolit.) C17: 47 mF (elektrolit.) D1, D2: dioda LED 3 mm, czerwona D3: dioda LED 5 mm, żółta D4: 1N4007 US: NE5532 (USA/USB, podwójny wzmacniacz operacyjny) 2×gniazdo mono, metalowe lub plastikowe 1×gniazdo zasilania 1×przełącznik nożny (2 pozycje/3 obwody) 1×podstawka DIL8
http://sklep.avt.pl 72
051-079_mini.indd 72
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 12:04:11
MINIPROJEKTY
Efekt Gitarowo/Basowy Overdrive Efekt symuluje klasyczne brzmienie przesterowania typu Overdrive. Schematem nieco przypomina efekt Crunch Drive, różni się jednak od niego mocniejszym przesterowaniem, symetrycznym obcięciem sinusoidy i nieco zakresem działania regulatora tonów. Schemat ideowy efektu Overdrive pokazano na rysunku 1. Efekt jest zbudowany w oparciu o podwójny wzmacniacz operacyjny NE5532 (USA, USB). W pierwszym stopniu pętli wzmacniacza operacyjnego (USA) włączono potencjometr VR1 500 kV/A. „Wzmocnienie” oraz symetryczny ogranicznik napięcia zbudowano na czterech diodach krzemowych 1N4148. Połączony z nimi szeregowo rezystor 4,7 kV (R5) podnosi próg obcięcia sinusa. Jego brak tego rezystora spowodowałby, że efekt swoim przesterowaniem przypominałby efekt Distortion. Różnica między tymi efektami jest następująca: Overdrive delikatnie obcina same wierzchołki sinusoidy i sam sposób obcięcia realizuje się w pętli pierwszego lub drugiego stopnia wzmacniacza operacyjnego, natomiast Distortion bardzo mocno obcina
AVT 1766
W ofercie AVT* AVT-1766 A AVT-1766 B Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1, R4, R6, R10: 1 MV R2: 470 kV R5: 4,7 kV R8: 1,5 kV R9, R11, R12, R17: 10 kV R13: 100 kV R3, R7, R16: 1 kV R14, R15: 22 kV VR1: 500 kV/A VR2: 20 kV/A VR3: 100 kV/C C1, C3: 33 nF C2, C5: 220 pF C4, C12: 220 nF C6, C9: 1 mF C10, C13: 120 pF C8: 4,7 nF C7: 220 nF C15: 100 nF C17: 220 mF (elektrolit.) C16: 47 mF (elektrolit.) D1…D4: 1N4148 D6: 1N4007 D5: dioda LED 5 mm, czerwona US: NE5532 (USA/USB, podwójny wzmacniacz oper.) 2×gniazdo mono metalowe lub plastikowe 1×gniazdo zasilania 1×przełącznik nożny (2 pozycje/3 obwody) 1×podstawka DIL8
Rysunek 1. Schemat ideowy efektu Overdrive ELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 73
73
2013-07-25 12:04:11
MINIPROJEKTY
Rysunek 2. Schemat montażowy efektu Overdrive
sinusoidę praktycznie przerabia ją na prostokąt, ale jest realizowane na wyjściu drugiego stopnia wzmacniacza operacyjnego za pomocą diod dowolnego typu (LED, Si, Ge) lub ich kombinacji. Drugi stopień NE5532 (USB) wzmacnia obciętą sinusoidę i dalej kieruje sygnał do pasywnego regulatora tonów, który jest zbudowany na potencjometrze VR2 20 kV/A oraz kondensatorach 4,7 nF (C8), 220 nF (C7) i rezystorze 10 kV (R11). Regulacja barwy mieści się w skrajnych położeniach suwaka potencjometru, od wysokich tonów do niskich (od jasnej do ciemnej barwy). Za regulatorem tonów znajduje się potencjometr głośności VR3 100 kV/C. Został
on dodatkowo wyposażony w specjalny filtr pasmowy, którego sposób działania opisano przy okazji efektu Crunch Drive. Schemat montażowy efektu Overdrive pokazano na rysunku 2. Uwagi odnośnie do montażu i obudowy są takie same, jak dla Crunch Drive.
Piotr Łuciuk
Stabilizator o napięciu wejściowym do 75 V DC Wyróżniającym parametrem tego stabilizatora jest napięcie wejściowe, które może wynosić nawet 75 V DC. Napięcie o takich wartościach raczej nie występują w sprzęcie elektronicznym powszechnego użytku, ale spójrzmy z drugiej strony – maksymalne napięcia popularnych stabilizatorów LM78 lub LM2576 sięgają 45 V. To wyklucza ich stosowanie w pewnych aplikacjach. Nie zastosujemy takich stabilizatorów w systemach gdzie standardem jest napięcie o wartości 48 V (np. urządzenia telekomunikacyjne, elektryczne wózki widłowe). Także ryzykowne byłoby zastosowanie w systemie o napięciu 42 V – rozsądny konstruktor nie zastosuje komponentów niemających pewnego zapasu wytrzymałości. W powyższych przypadkach doskonale sprawdzi się prezentowany stabilizator, ponieważ zapewnia bezpieczny margines tolerancji dla wartości napięcia zasilającego. Popularnym zastosowaniem, w którym może pracować, jest PoE (Power over Ethernet), czyli zasilanie urządzeń przez sieć Ethernet. W tym standardzie wartość napięcia powinna wynosić 48 V, a w praktyce waha się od 25 V do 60 V. Prezentowany stabilizator (rysunek 1) może pracować w zakresie napięcia wejściowego od 20 do 75 V. Napięcie wyjściowe wynois
W ofercie AVT* AVT-1764 A Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów:
AVT 1764 12 V, a prąd obciążenia do 500 mA. Za pomocą zmiany komponentów przetwornicy napięcie wyjściowe może być zmieniane w zakresie 2,5…15 V. Sprawność jest rzędu 80%. Wymiary kompletnej przetwornicy to 48 mm×23 mm× 15 mm. Układ LM5007 to przetwornica impulsowa obniżająca napięcie. Do pracy wymaga tylko kilku elementów zewnętrznych. Dioda D1 zabezpiecza przed niewłaściwą polaryzacją, a kondensatory C2 i C3 filtrują zasilanie. Powinny one mieć napięcie przebicia co najmniej 80 V. Rezystor R4 ustala ograniczenie prądowe układu na poziomie 500 mA. Przy takim prądzie stabilizator znacznie się nagrzewa i nie może pracować w sposób ciągły. Wartość prądu wyjściowego dla pracy ciągłej nie powinna przekraczać 300 mA (z możliwością krótkotrwałego przeciążenia do 500 mA). Dzielnik złożony z rezystorów R3 i R5 określa wartość napięcia wyjściowego. Dla R3=3,9 kV napięcie wyjściowe wynosi 12,25 V. Zmieniając R3 na 1 kV można uzyskać napięcie 5 V. Rezystor R2 oraz kondensatory C5 i C6 tworzą filtr wyjściowy, a dioda
Rysunek 1. Schemat ideowy przetwornicy z LM5007
74
051-079_mini.indd 74
R1, R4: 100 kV (SMD 1206) R2: 2,2 V (SMD 1206) R3, R6: 3,9 kV (SMD 1206) *R3, R5: 1 kV (SMD 1206, R3 – opis w tekście) C2: 10 mF/100 V C3: 100 nF/100 V (SMD 1206) C5: 10 mF/16 V (SMD „C”) C1, C4, C6: 100 nF (SMD 1206) D1, D2: BYS11-90 D3: dioda Zenera 20 V (SMD) LED1: dioda LED SMD IC1: LM5007 (MSOP8) L1: 100 mH/min. 0,5 A (SMD) CON1, CON2: DG301-2
LED1 sygnalizuje obecność napięcia wyjściowego. Dioda Zenera D3 na napięcie 20 V została zastosowana na wypadek awarii stabilizatora. Jeśli wysokie napięcie wejściowe w jakiś sposób przedostanie się do wyjścia, to zadaniem diody jest spowodowanie przepływu dużego prądu przez R2 i w efekcie jego uszkodzenie. Urządzenie dołączone do wyjścia ma duże szanse na przetrwanie takiej awarii. Schemat montażowy stabilizatora pokazano na rysunku 2. Montaż wykonujemy w sposób typowy. Kondensator C2 –powinien być zamontowany poziomo, aby nie wystawał poza obrys pozostałych elementów. Po zmontowaniu układ od razu jest gotowy do pracy, ale pierwsze uruchomienie dobrze jest wykonać przy zasilaniu niskim napięciem np. 20 V. KS
Rysunek 2. Schemat montażowy przetwornicy z LM5007 ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 12:04:12
MINIPROJEKTY
Efekt Gitarowo/Basowy Distortion Efekt Distortion zbudowany jest podobnie jak efekty Crunch Drive i Overdrive z tą różnicą, że obcięcie sinusoidy jest realizowane na wyjściu drugiego stopnia wzmacniacza operacyjnego. W rezultacie daje to silne przesterowanie, a obcięta sinusoida przypomina prostokąt. W ofercie AVT* AVT-1767 A AVT-1767 B Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1, R7: 1 MV R4: 2,2 kV R6, R9, R10, R15: 10 kV R11: 100 kV R7: 470 kV R3, R5, R8, R14: 1 kV R12, R13: 22 kV VR1: 200 kV/A VR2: 20 kV/A VR3: 100 kV/C C1, C3: 47 nF C2: 150 pF C4, C12: 220 nF C6: 10 mF(tantalowy) C8, C17: 100 nF C7: 6,8 nF (ceramiczny, MKSE lub MKT) C9: 1 mF C14: 1 nF C11: 470 pF C5, C10, C13: 100 pF C15: 220 mF C16: 47 mF D1, D2: dioda LED 3 mm, czerwona D3: dioda LED 5 mm, zielona D4: 1N4007 US: NE5532 (USA, USB) 2×gniazdo mono metalowe 1×gniazdo zasilania 1×przełącznik nożny (2 pozycje/3 obwody) 1×podstawka DIL8
Schemat ideowy efektu Distortion pokazano na rysunku 1. Przebieg sinusoidalny ukształtowany we wspomniany wyżej sposób, daje o wiele mocniejsze przesterowanie, a zastosowanie diod LED (D1, D2) jako ogranicznika napięcia daje przesterowanie podobne do efektu lampowego Distortion. Można zastosować diody o odmiennych kolorach świecenia lub ich kombinacje, co znacznie zmieni sposób obcięcia sinusoidy i wpłynie na siłę przesterowania. Można też zmienić diody LED na krzemowe np. 1N4148 – zwiększy to siłę przesterowania, ale zmniejszy poziom napięcia wyjściowego i wzrosną szumy, ponieważ zmniejszy się odstęp sygnału od szumu. Urządzenie, podobnie jak poprzednie, ma trzy potencjometry „Wzmocnienie” (VR1 200 kV/A), „Tony”(VR2 20 kV/A), i „Głośność” (VR3 100 kV/C). Schemat montażowy widnieje na rysunku 2. Efekt zmontowany ze sprawdzonych elementów nie wymaga regulacji i działa od razu po włączeniu zasilania.
Piotr Łuciuk
AVT 1767
Rysunek 2. Schemat montażowy efektu Distortion
Rysunek 1. Schemat ideowy efektu Distortion ELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 75
75
2013-07-25 12:04:13
MINIPROJEKTY
Efekt Gitarowo/Basowy Fuzz Ten efekt symuluje pracę dobrze znanego gitarzystom fuzza tranzystorowego. Konstrukcją przypomina efekty Crunch Drive, Overdrive, Distortion, ale za obcięcie przebiegu sinusoidalnego odpowiada tylko jedna dioda LED. W ofercie AVT* AVT-1768 A AVT-1768 B Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1, R7: 1 MV R3, R4, R5, R8, R14: 1 kV R2: 470 kV R9, R6, R10, R15: 10 kV R11: 100 kV R12, R13: 22 kV VR1: 500 kV/A VR2: 20 kV/A VR3: 100 kV/C C1, C17: 100 nF C3, C4, C7, C9: 1 mF C2, C8: 220 pF C5: 1 nF C6: 330 nF C14: 10 nF C10, C13: 100 pF C11: 470 pF C12: 220 nF C15: 220 mF C16: 47 mF D1: dioda LED 5 mm, zielona D2: 1N4007 D3: dioda LED 5 mm, niebieska US: NE5532 (USA/USB) 2×gniazdo mono metalowe lub plastikowe 1×gniazdo zasilania 1×przełącznik nożny (2 pozycje/3 obwody) 1×podstawka DIL8
Obcięcie jednej połówki sinusa za pomocą tego efektu daje wynik zbliżony do układu tranzystorowego. Fuzz tranzystorowy przeważnie ma dwa stopnie i jest zbudowany z dwóch tranzystorów. Pierwszy wzmacnia sygnał, a drugi pracuje w zakresie nasycenia obcinając sinusoidę. Taki fuzz rzadko zawiera w swojej konstrukcji dodatkowe diody ograniczające sygnał, ponieważ rolę ogranicznika pełni sam tranzystor. Fuzz charakteryzuje się dość „brudnym” przesterowaniem i jest to pierwszy efekt w historii ewolucji instrumentów strunowych, który dodawał mocy gitarze elektrycznej i basowej. Mój układ znacząco odróżnia się konstrukcyjnie od fuzzów tranzystorowych, ponieważ został zbudowany na wzmacniaczu operacyjnym. Większość konserwatywnych muzyków gitarzystów i basistów twierdzi, że prawdziwe fuzzy są zbudowane tylko na tranzystorach, ale opracowany przeze mnie fuzz bardzo mocno
AVT 1768
Rysunek 2. Schemat montażowy efektu Fuzz
Rysunek 1. Schemat ideowy efektu Fuzz
76
051-079_mini.indd 76
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 12:04:13
MINIPROJEKTY przypomina wersje tranzystorowe. Schemat ideowy efektu Fuzz pokazano na rysunku 1. Sposób działania jest praktycznie identyczny jak efektu Distortion z tą tylko różnicą, że w pętli wzmacniacza operacyjnego drugiego stopnia włączono zieloną diodę LED o średnicy 5 mm, która powoduje specyficzne obcięcie jednej połówki sinusa. Ponieważ wzmocnienie wzmacniacza objętego taką pętlą w pętli jest bardzo duże
i sam stopień jest już przesterowany, dodanie tej diody daje asymetryczne obcięcie. Drugą istotną zmianą jest dodanie korekcji tonów przed drugim stopieniem, co znacząco wpływa na barwę przesterowania. Takie rozwiązanie w fuzzach nazywano „Color” lub „Body”. W niektórych fuzzach tranzystorowych jest stosowany regulator tonów, który jest na wyjściu drugiego stopnia. Podobnie jak poprzednio opisywane efekty, tak
i ten ma trzy potencjometry „Wzmocnienie” (VR1 200 kV/A), „Color” (VR2 20 kV/A), „Głośność” (VR3 100 kV/C). Schemat montażowy efektu pokazano na rysunku 2. Efekt zmontowany ze sprawdzonych elementów nie wymaga regulacji i działa od razu.
Piotr Łuciuk
DragonSafe v2 – zabezpieczenie programatora Dragon Programator/debuger Dragon jest narzędziem o bardzo dobrym stosunku ceny do jakości. Niestety, w wypadku jego uszkodzenia koszt naprawy może być zbliżony do ceny nowego programatora. Aby zmniejszyć ryzyko uszkodzenia, warto zastosować opisany w artykule DragonSafe. W EP 2/2012 opisano pierwszą wersję zabezpieczenia programatora. Posiadał on wadę, polegającą na tym, że po zaprogramowaniu mikrokontrolera, linie MOSI i SCK pozostawały ustawione. W konsekwencji, jeśli linie te wykorzystano do innych celów, pojawiały się problemy. Schemat zabezpieczenia DragonSafe v2 pokazano na rysunku 1. Jest ono zmodyfikowaną wersją opisanego wcześniej DragonSafe. W nowej wersji zamiast 74HC08 (HC32) zastosowano 74HC125. Jest to bufor trójstanowy. Dzięki temu, po zaprogramowaniu układu, linie wyjściowe przechodzą w stan trzeci i jest możliwe sterowanie nimi przez mikrokontroler. Buforem trójstano-
wym steruje sygnał Reset. Gdy jest on wyzerowany (programowanie ISP) bufor jest aktywny. Po zaprogramowaniu układu linia Reset jest ustawiana przez co bufor przechodzi do stanu trzeciego. Aby przy używaniu trybu JTAG bufor nie przechodził w stan trzeci, należy przełożyć zworkę na J1, aby zwierała piny 2-3. Przy zaprogramowaniu w trybie ISP lub SW, powinny być zwarte piny J1/1-2. W nowej wersji zabezpieczenia dodano także dwie diody świecące. Jedna informuje o przyłączeniu napięcia zasilającego, druga o procesie programowania w trybie ISP. Schemat montażowy zabezpieczenia pokazano na rysunku 2. Montaż jest typowy i nie wymaga omawiania. Pod U1 warto
Rysunek 1. Schemat ideowy zabezpieczenia DragonSafe v2 ELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 77
AVT 1769 W ofercie AVT* AVT-1769 A AVT-1769 B AVT-1769 C Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1, R8…R10: 100 V R3: 1 MV R2, R5…R7, R12, R13: 1 kV R11: 56 V/0,5 W C1: 100 nF U1: 74HC125 (DIP14) D1, D3…D5: 1N4733 (dioda Zenera 5,1 V/1,3 W) D6, D7: diody świecąca LED 3 mm D2: 1N5818 (dioda Schottky) Inne: F1: 100 mA (bezpiecznik polimerowy) JP1, JP5: gniazdo ZL231-6PG (6 pin proste) lub listwa kołkowa ZL202-6G goldpin 2×3 JP2, JP4: gniazdo ZL231-10PG (10 pin, proste) PPIN14: podstawka precyzyjna 14 pin
Rysunek 2. Schemat montażowy zabezpieczenia DragonSafe v2
77
2013-07-25 12:04:14
MINIPROJEKTY zastosować podstawkę. Nie polecam „zwykłych” podstawek, które z czasem tracą kontakt z układem. W swoich konstrukcjach stosuję podstawki precyzyjne, tak zwane tulipanowe. Należy także pamiętać o zro-
bienie pięciu zwór. Układ nie wymaga uruchamiania i działa od razu po zmontowaniu i dołączeniu do Dragona. Po przekroczeniu napięcia –5...+20 V na linii Reset (DebugWire) spali się rezystor R11. Można zastąpić
go bezpiecznikiem polimerowym 100 mA, wtedy to linia Reset będzie zabezpieczona w zakresie –50...+65 V. DragonSafe v2 został przystosowany do obudowy Z70.
Sławomir Skrzyński, EP
Izolator programatora ISP dla AVR Gdy zachodzi potrzeba programowania procesora znajdującego się na potencjale innym niż programator a co za tym idzie komputer, może dojść do uszkodzenia programatora, portu USB lub nawet porażenia użytkownika. Izolacja galwaniczna programatora od układu rozwiąże taki problem.
AVT 1770 W ofercie AVT* AVT-1770 A AVT-1770 B AVT-1770 C Dodatkowe materiały na CD lub FTP: ftp://ep.com.pl, user: 62828, pass: 18ofqn10 • wzory płytek PCB • karty katalogowe i noty aplikacyjne elementów oznaczonych w Wykazie elementów kolorem czerwonym Wykaz elementów: R1, R2, R5, R10, R11: 1 kV (SMD 1206) R7, R15, R16: 1 kV (SMD 1206) R2: 1 MV (SMD 1206) R3, R4, R8, R9: 330 V (SMD 1206) R6, R12, R13: 100 V (SMD 1206) R13: 100 V (przewlekany) R14: 15 V (przewlekany lub bezpiecznik polimerowy 100 mA) C1, C2: 100 nF C7: 100 mF/16 V U1, U3…U5: 6N137-E U2: 74HC125N układ scalony w obudowie DIP14 wraz z podstawką D1: BAS85 D2: 1N4733 (dioda Zenera 5,1 V 1/3W) D3, D4: diody LED 3 mm U6: NME0505S (izolowana przetwornica DC-DC) JP1, JP21: ZL201-03G listwa goldpin 2×3 J2: NS25-W2P gniazdo PPIN8: podstawki precyzyjne 8 pin, 4 szt.
Rysunek 1. Schemat ideowy izolatora dla programatora AVR Urządzenie jest przeznaczone dla konstruktorów pracujących z urządzeniami zasilanymi napięciem niebezpiecznym dla życia lub znajdujących się na potencjale znacznie
wyższym niż potencjał ziemi. Programator przyłączony do złącza JP1 jest odseparowany od programowanego układu przyłączonego do JP2 za pomocą transoptorów. Aby
umożliwić programowanie z dużymi prędkościami użyto transoptorów 6N137 pracującymi poprawnie do 1 Mb/s. Transoptory tego typu są szybkie, ale wymagają zasilania. Z tego powodu zastosowano przetwornicę U1 (NME0505S). Jakkolwiek producent gwarantuje jej poprawne działanie w zakre-
Rysunek 2. Schemat montażowy izolatora dla programatora AVR
78
051-079_mini.indd 78
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 12:04:15
MINIPROJEKTY sie napięcia 4,5…5,5 V, to jednak w modelu pracowała poprawnie od 2,5 do 6 V. Naturalnie, pracując poza zakresem gwarantowanym przez producenta nie pracuje stabilnie (np. napięcie wyjściowe będzie niższe niż wejściowe), co jednak nie przeszkadza w naszym urządzeniu. Podobna sytuacja dotyczy napięcia zasilających transoptor. Prędkość programowania można zwiększyć wymieniając transoptory na 6N137-E pracujące do 10 Mb/s. Przetwornica ogranicza napięcie izolacji do 1 kV (transoptory zapewniają izolację do 2,5 kV). Ponadto, jest elementem dość kosztownym. Dlatego opcjonalnie transoptor U1 można zasilić napięciem przyłożonym do złącza J2. Napięcie to może pochodzić np. z programatora. Powinno się zawierać w granicach 3…6 V, najlepiej 4,5…5,5 V. Sygnały z transoptorów są buforowane w bramkach trójstanowych 74HC125. Na czas programowania bufory są przyłączane do programowanego układu sygnałem RST. Ponadto, bufory zabezpieczone są przed uszkodzeniem obwodami podobnymi do tych zastosowanych w Dragon Safe, opisanym w EP 2/2012 na stronie 44. Dzięki czemu nie jest konieczne stosowanie dodatkowych zabezpieczeń. Montaż jest typowy i nie wymaga omawiania. Trzeba tylko zadecydować czy montujemy przetwornicę U6, czy zasilamy transoptor ze złącza J2. Pod układ U2 warto zastosować podstawkę. Nie polecam zwykłych podstawek, które z czasem tracą kontakt elektryczny. W swoich konstrukcjach stosuję podstawki precyzyjne, tak zwane tulipanowe. W projekcie rezystor R13 jest przewlekany (pozostałe SMD), dzięki czemu uniknięto jednej zworki. Goldpin J1 powinien zwierać piny 1-2. Układ nie wymaga uruchamiania i po poprawnym montażu działa po dołączeniu. Izolator można umieścić w obudowie, np. KM-35B. Ze względu na to, że linia reset buforowana jest jednokierunkowo, nie jest możliwe użycie trybu DebugWire.
Sławomir Skrzyński, EP
ELEKTRONIKA PRAKTYCZNA 8/2013
051-079_mini.indd 79
79
2013-07-25 12:04:17
Pierwsza aplikacja
Do tej pory poznaliśmy środowisko programistyczne, podstawowe elementy języka programowania graficznego, obsługę plików tekstowych oraz zasady tworzenia wykresów. W tej części przygotowując nieskomplikowaną grę – Bitwa Morska – nauczymy się pracy z menadżerem projektu, przygotowywania podprogramów, dodawania opisów funkcji, konfiguracji okien naszej aplikacji i generowania plików exe.
Krok po kroku Kursy EP
Podstawy programowania w LabView (5)
zachodziły na siebie, były możliwie krótkie i wchoWszystkie zrobione do tej pory przykłady mieścidziły do ikony na wysokości zacisku do którego są ły się na jednym diagramie. Oczywiście w rzeczywipodłączone. stości aplikacje są znacznie bardziej rozbudowane. • Z lewej strony diagramu umieszczajmy kontrolki Umieszczenie całego diagramu w jednym oknie może a z prawej wskaźniki, przepływ informacji zawsze od stać się niemożliwe, a już na pewno program taki byłlewej do prawej. by bardzo trudny do analizy i wyszukania ewentual• Nazwy podprogramów powinny sugerować realizonych błędów. Dlatego aplikacje pisane w LabView mają strukturę hierarchiczną. Każda może zostać podzielowaną funkcję. na na podprogramy (subVi) mogące zawierać kolejne • W nawiasach należy umieścić wartości domyślne, podprogramy i tak aż do funkcji najniższego poziomu. jeśli wejście może zostać niepodłączone. Strukturę hierarchiczną programu i powiązania pomiędzy podprogramami można zobaczyć wybierając Definiowanie wejść i wyjść z menu górnego View VI Hierarchy. Aby program Każdy podprogram – aby mógł być wykorzystany jako mógł być umieszczony na diagramie jako subVi powifunkcja w nadrzędnym Vi – musi mieć zdefiniowane zaciski wejściowe i wyjściowe. Zaciski przekazują dane nien mieć zdefiniowane zaciski służące do wymiany bezpośrednio do kontrolek lub wskaźników znajdujących danych z nadrzędnym VI oraz ikonę symbolizującą go się na panelu czołowym. Wykonanie takich połączeń jest na diagramie. możliwe tylko w oknie panelu czołowego. W prawym Przygotowując dużą aplikację należy dobrze przemygórnym rogu panelu czołowego na rysunku 46 widziśleć i podzielić zadania na małe, łatwe do zrealizowania my dwa małe okienka zewnętrzne przedstawiające wyfragmenty. Zapanowanie nad całą aplikacją ułatwia trzygląd ikony funkcji na diagramie, natomiast wewnętrzne manie się kilku zasad: rozkład i ilość wyprowadzeń. • Każdy program należy podzielić na fragmenty, któLiczba zacisków zależy od liczrych kod będzie w całości widoczny na ekranie moby parametrów funkcji. Zwykle nitora. Znacznie ułatwia to jego analizę i wyszukanie z lewej strony łączymy paramebłędów. try wejściowe, czyli kontrolki • Każdy program należy dokładnie przetestować i dona naszym panelu czołowym, dać do niego krótki opis, może on być widoczny a z prawej strony parametry wyjw okienku pomocy kontekstowej. ściowe czyli wskaźniki. • Fragmenty kodu realizujące wspólne zadania najleOdpowiedni rozkład zaci- Rysunek 46. piej gromadzić w bibliotece tak aby przeniesienie sków można przygotować po- Definiowanie jednego pliku zapewniało przeniesieni wszystkich wewnętrznych i powiązanych ze sobą funkcji. przez kliknięcie prawym kla- zacisków subVi • Zalecam korzystanie z Menadżera Projektów. Znacznie ułatwia to zapanowanie nad dużą liczbą plików. Dzięki niemu nie musimy za każdym razem szukać na dysku potrzebnej funkcji. Wystarczy przeciągnąć ją z okna projektu na diagram. • Proponuje włączenie okna Context Help. Wyświetla ono krótki opis funkcji i przekazywanych parametrów. • Diagram powinien być uporządkowany tak aby połączenia nie Rysunek 47. Edytor ikon
80
ELEKTRONIKA PRAKTYCZNA 8/2013
080-087_labview_(5).indd 80
2013-07-25 11:24:05
Krok po kroku Kursy EP
wiszem myszki w okienku terminali i wybór z menu lokalnego opcji dodaj terminal (Add Terminal) lub usuń terminal (Remove Terminal). Można również skorzystać z zdefiniowanych wzorców wybierając opcję Patterns. Połączenie zacisku ze zmienną wykonuje się przez kliknięcie na wybranym zacisku, gdy kursor przybierze postać szpulki, a następnie na elemencie znajdującym się na panelu czołowym, z którym chcemy połączyć dany terminal. Poprawne połączenie sygnalizowane jest zmianą koloru terminala z czarnego na zgodny z typem przekazywanej zmiennej. W starszych wersjach LabView należało w okienku ikony wybrać Show Connector, aby zobaczyć okienko Terminali.
Edycja ikon Wygląd ikony powinien sygnalizować funkcję realizowaną przez subVi. Środowisko oferuje nam edytor pozwalający w szybki i prosty sposób przygotować odpowiednią ikonę. Edytor oprócz prostego rysowania udostępnia gotowe symbole. Rysunek 47 przedstawia okno edytora ikon z widocznymi po lewej stronie symbolami. Możemy je otworzyć klikając na okienku ikony w prawym górnym rogu i wybierając z menu lokalnego Edit Icon.
Rysunek 50. Okno właściwości Vi kategoria Windows Appearance dodajemy opis, wyświetlany później w okienku pomocy kontekstowej.
Konfiguracja okna uruchomionej aplikacji
Jak wspominałem wcześniej każdy nasz program powinien być opisany. Proponuję dodawać komentarze wewnątrz diagramu lub panelu czołowego. Ułatwia to jego analizę i dokonanie modyfikacji w przypadku konieczności dostosowania go do innych aplikacji. Komentarze jest korzystnie dodawać za pomocą etykiety dostępnej w palecie Decorations Label. Jest to tekst, który nie podlega kompilacji. Korzystając z możliwości dodawania opisów w właściwościach vi, należy umieścić tam krótki opis realizowanej funkcji i zacisków wejściowych. Będzie on widoczny w okienku pomocy kontekstowej (Context Help) pokazanym na rysunku 48, gdy najedziemy myszką na ikonę funkcji w oknie diagramu lub projektu. W tym celu klikamy w okienku ikony i wybieramy VI Properties. Przechodzimy do kategorii Documentation w polu VI description wpisujemy opis. Korzystając z przycisku Browse… możemy wskazać plik pomocy, najczęściej typu html, ale akceptowane są też inne formaty: hlp, chm, htm. Otwarcie tego pliku jest możliwe po kliknięciu w oknie pomocy kontekstowej w link Detailed Rysunek 48. help. Rysunek 49 przedstawia Okno pomocy okno właściwości Vi, w którym kontekstowej
Wygląd ona programu po uruchomieniu aplikacji można dopasować do naszych potrzeb. Dostęp do ustawień mamy w oknie VI Properties w kategorii Windows Appearance (rysunek 50). Windows title określa nazwy aplikacji widocznej w pasku tytułu. Domyślnie jest to nazwa VI, ale można wpisać tam własną. Poniżej mamy cztery opcje do wyboru: • Top-level application window – wygląd okna jest typowy dla programu głównego widoczny jest pasek tytułu z przyciskami do minimalizacji maksymalizacji i zamknięci okna, oraz górne menu aplikacji. • Dialog – typowy wygląd dla okien wyświetlających komunikaty widoczny jest pasek tytułu. • Default – widoczne są prawie wszystkie elementy paski i przyciski. • Custom – niestandardowe ustawienia dostępne pod przyciskiem Customize… Rysunek 51 przedstawia okno właściwości Customize Windows Appearance. Udostępnia ono wszystkie opcje konfiguracji okna aplikacji. Ustawiamy w nim, które z elementów mają być widoczne oraz jak zachowuje się okno względem innych okien: • Window has title bar – jest widoczny pasek tytułu. • Show menu bar – widoczne jest menu aplikacji. • Show vertical scroll bar – widoczny jest pionowy pasek przewijania okna. • Show horizontal scroll bar – widoczny jest poziomy pasek przewijania okna. • Show toolbar when running – gdy program jest uruchomiony widoczny jest pasek narzędziowy. • Show Abort button – wyświetla przycisk Abort. • Show Run button – wyświetla przycisk Run. • Show Run Continuously button – wyświetla przycisk Run Continuously.
Rysunek 49. Okno właściwości Vi kategoria Documentation
Rysunek 51. Okno Customize Windows Appearance.
Opisy i komentarze
ELEKTRONIKA PRAKTYCZNA 8/2013
080-087_labview_(5).indd 81
81
2013-07-25 11:24:05
Korzystnie jest zgromadzić wszystkie przyrządy wirtualne realizujące wspólne funkcje w bibliotece. Dzięki temu przenosząc plik biblioteki dysponujemy wszystkimi powiązanymi ze sobą funkcjami. Aby to zrobić należy wybrać z menu File Save w okienku dialogowym (rysunek 52) wybieramy New LLB podajemy nazwę biblioteki i wybieramy Create. Otworzy się okno biblioteki (rysunek 53), w którym podajemy nazwę instrumentu wirtualnego i wybieramy OK. Od tej pory zapisując nowe programy do naszej biblioteki wskazujemy ją jak katalog na dysku. Rysunek 52. Okno dialogowe podczas tworzenia nowej biblioteki
Rysunek 53. Okno biblioteki • Show front panel when called – pokazuje panel po uruchomieniu programu. • Close afterwards if originally closed – zamyka panel po zatrzymaniu programu. • Show front panel when loaded – pokazuje panel po załadowaniu programu. • Window Behavior – określa zachowanie się okna aplikacji względem innych okien. • Allow user to close window – pozwala na zamknięcie okna przyciskiem na pasku tytułu. • Allow user to resize window – pozwala na zmianę rozmiaru okna przyciskiem na pasku tytułu. • Allow user to minimize window – pozwala na minimalizację okna przyciskiem na pasku tytułu. • Allow default run-time shortcut menus – pozwala korzystać z menu lokalnego.
Rysunek 54. Okno kreowania nowego projektu
82
Krok po kroku Kursy EP
Grupowanie przyrządów wirtualnych w biblioteki
Menadżer Projektu Pracując z dużymi projektami korzystnie jest pracować z Menadżerem Projektu. Ułatwia on zapanowanie nad dużą ilością plików i generowanie plików wynikowych. Okno, w którym możemy wykreować projekt otwiera się po wybraniu z menu File Create Project… wyświetlone zostanie okno jak na rysunku 54. W tym miejscu wspomnę, że oprócz utworzenia nowego projektu czy pliku vi można skorzystać z kilku przykładowych projektów. Po wybraniu jednego z nich zostanie utworzony nowy projekt, zawierający kilka charakterystycznych dla siebie plików np. może być to podstawowa obsługa interfejsu użytkownika zawierająca pętle główną, strukturę zdarzeń i przycisk kończący działanie aplikacji, pozostaje dodanie własnych funkcji. Szczegółowy opis projektu, który zostanie utworzony możemy zobaczyć wybierając More Information dla interesującego nas projektu. Aby utworzyć nowy pusty projekt wybieramy Blank Project a następnie Finish. Zostanie wyświetlone okno projektu jak na rysunku 55. Możemy tutaj dodawać nowe pliki i biblioteki, dołączać istniejące, oraz wygenerować plik instalacyjny czy uruchamiany.
Przykładowa aplikacja Aby przećwiczyć wszystkie etapy tworzenia programu, przygotujmy przykładową aplikację. Proponuję wykonanie prostej gry Bitwa Morska. Rozgrywka będzie wykonywać się między graczem a komputerem. Postaram się użyć tylko tych elementów programowania, które zostały opisane w powyższym kursie. Żeby program nie był zbyt skomplikowany przyjąłem kilka założeń, które pozwoliły znacznie go uprościć: • Gra odbywa się na polu o rozmiarach 10×10, będzie to tablica dwuwymiarowa z elementami typu String. • Okręt jest oznaczmy literą „o”. • Kilka literek „o” umieszczonych obok siebie mogą symbolizować duży okręt, ale nie są one z sobą grupowane. • Puste pole jest oznaczone spacją. • Niecelny strzał znakiem „–”. • Celny strzał znakiem „x”. • Na każdej planszy znajduje się 20 znaków symbolizujących okręt. • Gra kończy się po dwudziestu celnych strzałach w okręty przeciwnika. Rysunek 55 Okno projektu
ELEKTRONIKA PRAKTYCZNA 8/2013
080-087_labview_(5).indd 82
2013-07-25 11:24:06
Krok po kroku Kursy EP
• Na ekranie widoczne są dwie plansze, własna z wszystkimi okrętami i komputera, na której wyświetlone są tylko pola, w które oddano strzał. Pozostałe są zamaskowane. Grę podzieliłem na dwa programy pierwszy jest główną aplikacją umożliwiającą rozgrywkę. Natomiast drugi pozwala na ustawienie okrętów na Rysunek 56. Diagram fikcji Zapis Tablicy do Pliku.vi planszy, wczytanie planszy komputera, oraz przygotowanie i zapis do pliku planszy komputera. Przygotowanie programu rozpoczynamy od utworzenia nowego projektu i zapisania go na dysku. Klikając w oknie projektu na ikonie My Computer z menu lokalnego wybieramy New Library. Zostanie utworzona ikona symbolizująca bibliotekę. Wybierając z menu lokalnego Save Save należy nadać jej nazwę np. Bitwa Rysunek 57. Diagram funkcji Odczyt Tablicy z Pliku.vi Morska. Powstała w ten sposób biblioteka w rzeczywistości nie przechowuje w sobie plików, ale grupuje pliki, które mogą być rozrzucone po dysku. Klikając na utworzonej bibliotece z menu lokalnego wybieramy New VI zostanie otwarty nowy plik. Należy wybrać File Save, a w wyświetlonym oknie dialogowym proponuję wybrać New LLB… i wpisać nazwę naszej biblioteki Bitwa Morska, następnie wybrać Create. Na dysku zostanie zapisana biblioteka, jednocześnie wyświetli się okno, w którym należy podać Rysunek 58. Diagram funkcji Ilość elementów w tablicy.vi nazwę naszego pliku np. Bitwa Morska TopApp. Będzie to panel główny naszej gry. Teraz klikając w menadżerze projektu na symbolu biblioteki z menu lokalnego należy wybrać New > VI, zostanie otwarty nowy plik który proponuję zapisać w naszej bibliotece pod nazwą Nowa Gra. Będzie to program umożliwiający przygotowanie nowej gry. Na razie zostawmy te programy i przygotujmy podprogramy pomocnicze (subVi), wykorzystamy je później do tworzenia aplikacji. Jako pierwszy przy- Rysunek 59. Diagram funkcji Ścieżka Dostępu do Plansz.vi gotujemy program zapisujący do pliku tekstowego tablicę z pozycją statków. Poszczególne elementy wiersza wo. Ale zwróćmy uwagę na dwie kontrolki. Szukany będą oddzielone od siebie przecinkami, natomiast wierElement (o) i Zadana ilość elementów (20). W nawiasze znakiem nowej linii. Na rysunku 56 przedstawiono sach zaznaczyłem wartości domyśle. W przypadku nie diagram takiej funkcji. podłączenia tych zacisków do żadnej zmiennej pobrane Zapis do pliku realizowany jest funkcją Write to Text zostaną właśnie te wartości. Aby to było możliwe należy File bez przekazania ścieżki dostępu. Dlatego po jej wywykonać dwie czynności: wołaniu otworzy się okno dialogowe, w którym należy • wpisać wartości do kontrolek, następnie kliknąć na wpisać nazwę pliku wraz z rozszerzenie .txt. Należy też kontrolce (w panelu czołowym) lub ikonie (na diagrazdefiniować zaciski funkcji, poprzez kliknięcie w okienmie) i z menu lokalnego wybrać Data Operations ku terminali na wybranym polu a następnie na elemencie Make Current Value Default. W ten sposób wartość panelu czołowego, który chcemy z nim połączyć. Propowpisana aktualnie do kontrolki staje się domyślną. nuję w właściwościach VI w kategorii Documentation do• w okienku terminali kliknąć na zacisku związanym dać krótki opis funkcji i zacisków. z daną kontrolką i z menu lokalnego wybrać This Przygotujmy teraz funkcje odczytującą wcześniej zaConnection Is Optional. Dzięki temu kompilator pisane dane, z pliku tekstowego i konwertującą je do tabpozwoli zostawić wejście niepodłączone, a do funklicy tak, aby po jej wywołaniu otrzymać tablicę dwuwycji zostaną przekazane wartości domyślne. miarową. Rysunek 57 przedstawia odpowiedni diagram. Kolejna funkcja zwraca ścieżkę dostępu do katalogu Przygotujmy teraz funkcję liczącą ile określonych zawierającego zapisane plansze komputera oraz ich listę. elementów znajduje się w tablicy. Przyda się ona do Założyłem, że plansze będą przechowywane w katalogu określenia ilości okrętów jak również celnych strzałów. Plansze znajdującym się w tym samym katalogu co nasz Jej diagram został przedstawiony na rysunku 58. Funkprogram. Rysunek 59 przedstawia diagram funkcji. Pocja jest prosta dlatego nie będę opisywał jej szczegółodobny przykład był robiony w poprzedniej części kursu
ELEKTRONIKA PRAKTYCZNA 8/2013
080-087_labview_(5).indd 83
83
2013-07-25 11:24:06
dlatego wspomnę tutaj tylko, że do określenia katalogu należy dwukrotnie użyć funkcji Strip Path. Ponieważ plik zapisany jest w bibliotece, więc musimy z ścieżki dostę-
Rysunek 61. Diagram funkcji Nowa Gra.vi
Rysunek 62. Zawartość struktury Event obsługująca przycisk Zapisz
Rysunek 63. Zawartość struktury zdarzeń obsługująca kontrolkę Listbox (Plansze)
Rysunek 64. Zawartość struktury zdarzeń wykonywana po naciśnięciu przycisku STOP
84
Krok po kroku Kursy EP
Rysunek 60. Panel czołowy funkcji Nowa Gra.vi
pu „odciąć” nazwę pliku i biblioteki. Korzystając z List Folder otrzymujemy listę plików tekstowych znajdujących się w katalogu. Powróćmy do wcześniej zapisanego pliku Nowa Gra. Mamy już wszystko, aby przygotować tę część. Można zacząć od przygotowania panelu czołowego, rysunek 60 przedstawia przykładowy panel czołowy. Ja korzystałem z elementów zawartych w palecie Silver. Potrzebne będą z palety Silver Boolean dwie diody i dwa przyciski. Jedną diodę nazwałem LED Komputer. Zapis do niej wartości TRUE sygnalizuje wczytanie planszy komputera. Drugą LED Gracz. Wartość TRUE oznacza, że na planszy znajduje się 20 elementów symbolizujących okręt. Z palety Silver List, Table & Tree kontrolka Listbox i wskaźnik Table. Kontrolka Listbox (Plansze) wyświetla listę plików tekstowych znajdujących się w katalogu plansze. Wskaźnik Table(Gracz) służy jako plansza do rozmieszczenia okrętów. Kliknięcie w wybraną komórkę wpisuje do odpowiedniego elementu tablicy znak „o”. Na panelu czołowym znajduje się jeszcze jedna tablica, do której wczytywane są plansze komputera. Nie jest ona widoczna, ponieważ została umieszczona poza widzianym obszarem okna, aby gracz nie mógł zobaczyć okrętów komputera. Musi natomiast być podłączona do zacisku wyjściowego, aby przekazać dane funkcji nadrzędnej. Gdy panel przedni jest gotowy należy przejść do diagramu. Rysunek 61 przedstawia diagram z widocznym oknem struktury zdarzeń odpowiedzialnym za wpisywanie symboli okrętów do tablicy. Z lewej strony następuje inicjalizacja wszystkich zmiennych i wczytanie listy plików znajdujących się w katalogu Plansze. Korzystając z Property Node (ItemNames) zapisujemy do kontrolki Listbox (Plansze) listę plików. Aby to zrobić należy kliknąć na ikonie kontrolki i z menu lokalnego wybrać Create Property Node ItemNames. Po wstawieniu na diagram trzeba jeszcze zmienić terminal, aby możliwe było zapisanie do niego wartości. Robimy to wybierając z menu lokalnego Change To Write. Analogicznie wstawiamy Property Node dla Table (Gracz) wybierając z listy odpowiednie właściwości. Widoczna na rysunku ramka struktury zdarzeń wykona się po kliknięciu wewnątrz tabeli Gracz. Na początku korzystając z odpowiedniego Property Node (EditPos) odczytujemy, w której komórce nastąpiło kliknięcie, następnie w tabeli Gracz zamieniamy element na odpowiedniej pozycji wpisując znak „o” i sprawdzamy ile takich znaków znajduje się w tabeli. Jeśli jest ich dwadzieścia zawarta w strukturze Case funkcja One Button Dialog wyświetli odpowiedni komunikat, a Property Node (Disabled) ustawi tabelę jako nieaktywną. Rysunek 62 przedstawia zawartość ramki zdarzeń wykonywanej po naciśnięciu na przycisk Zapisz. Wywołana jest tutaj wcześnie przygotowana funkcja zapisująca tabelę do pliku tekstowego, oraz uaktualniona zostaje lista plików w kontrolce Plansze. Na rysunku 63 jest przedstawiony diagram struktury zdarzeń wykonywany po podwójnym kliknięciu w kontrolkę Listbox (Plansze). Z zacisku Row na lewej krawędzi struktury pobieramy numer wiersza, w którym nastąpiło
ELEKTRONIKA PRAKTYCZNA 8/2013
080-087_labview_(5).indd 84
2013-07-25 11:24:06
Krok po kroku Kursy EP
kliknięcie. Property Node (ItemNames) dostarcza tablicy zawierającej listę plików, Index Array zwraca nazwę pliku, która jest dopisywana do ścieżki dostępu. Wcześniej przygotowana funkcja Odczyt Tablicy z Pliku.vi odczytuje plik i przekazuje jego zawartość do niewidocznego na panelu czołowym wskaźnika Komputer. Rysunek 64 przedstawia okno struktury zdarzeń, któRysunek 65. Diagram funkcji Strzał Gracza.vi. re wykona się po naciśnięciu na przycisk Stop. Korzystając z zmiennych lokalnych sprawdzamy stan diod LED sygnalizujących wczytanie plansz, gdy wartość którejkolwiek z nich jest równa False jest wyświetlany odpowiedni komunikat. W przeciwnym razie program się zamyka. Proszę zwrócić uwagę, że na diagramie znajdują się dwa elementy error in i error out. Nie są one konieczne, ale chciałem pokazać w jaki sposób zrobić obsługę błędów. Jeśli we wcześniejszych procedurach Rysunek 66. Diagram funkcji Strzał Komp powstał błąd, przekazana o tym informacja za pomocą kontrolki error in pozwoli na skierowanie programu do ramki error struktury case, gdzie można przygotować obsługę błędu. Gdy nie ma błędów to wykonuje się zawartość ramki No Error. W naszym przypadku strukturą tą został objęty cały program. Program ten będzie wywoływany z widocznym panelem czołowym. Po naciśnięciu przycisku Stop panel się Rysunek 67. Diagram funkcji Maskowanie Statków.vi zamknie. Aby to było możliwe należy kliknąć prawym klawiszem myszki w okienku ikony wybrać Vi Properties i w kategorii Window Appearance ustawić Dialog. Przed przygotowaniem ostatniego elementu gry zrobimy jeszcze trzy pomocnicze funkcje. Pierwsza to Strzał Gracza.vi, jej diagram przedstawia rysunek 65. Funkcja ma za zadanie wpisanie do tablicy odpowiedniego symbolu, gdy na wskazanej pozycji znajduje się znak spacji wpisuje znak „–”, gdy znajduje się znak okrętu „o” wpisuje „x” oznaczający trafienie. Dodatkowo sprawdza czy wskazana komórka nie zawiera znaRysunek 68. Przykładowy panel główny ku „–” lub „x” oznaczających, że oddano w nią już strzał. Jeśli tak to sygnalizuje to wartością FALSE w wskaźniku Powtórny?. Przyda się to przy następnej funkcji. Druga to Strzał Komp.vi jej diagram przedstawia rysunek 66 funkcja ma za zadanie oddanie strzału do planszy gracza. Aby nie komplikować diagramu, zastosowałem proste podejście. Korzystając z Random Number losuję dwie przypadkowe liczby z przedziału od 0 do 1. Następnie zostają one pomnożone przez 10. W ten sposób otrzymuję liczby większe od 1. Przy pomocy In Range and Coerce ograniczam ich zakres do przedziału od 0 do 9 następnie konwertuję je do liczb całkowitych. W ten sposób otrzymuje losowe współrzędne strzału. KoRysunek 69. Diagram gry z strukturą zdarzeń wykonywaną po rzystając z funkcji Strzał Gracza.vi zapisuję odpowiedni naciśnięciu przycisku Nowa symbol do tablicy. Zwraca ona informację czy na danej pozycji był oddany strzał, jeśli tak, to ponawiam losowywoływane. Możemy z tego zrezygnować tylko w nadwanie. Pętla while może tutaj wykonać się maksymalnie rzędnej aplikacji która nie będzie wywoływana przez 200 razy, co oznacza do 200 ponownych prób. Proponuję inny nadrzędny program. napisanie bardziej inteligentnego algorytmu. Pozostało jeszcze przygotowanie panelu głównego. Trzecią i ostatnią już funkcją, którą musimy przyRysunek 68 przedstawia przykładowy wygląd panelu gotować jest Maskowanie Statków.vi. Jej zadaniem jest głównego. Oprócz widocznych elementów znajduje się ukrycie pozycji okrętów na planszy komputera. Diagram tutaj jeszcze jedna tablica o nazwie Komputer Tab przeprzedstawia rysunek 67. Funkcja przeszukuje tablicę chowująca pozycję statków komputera. Można ją wstawejściową i w miejsce znaku okrętu „o” wpisuje spację. wić poza widocznym obszarem okna lub ustawić jako Oczywiście wszystkie wcześniej przygotowane funkukrytą klikając na ikonie w oknie diagramu i z menu locje, mające być użyte jako subvi, muszą mieć zdefiniowakalnego wybierając Hide Indicator. Diagram naszej gry przedstawia rysunek 69. Z lewej ne zaciski wejściowe i wyjściowe. Pozwoli im to pobiestrony przed pętlą for następuje inicjalizacja wszystrać i przekazywać dane do nadrzędnego vi z którego są
ELEKTRONIKA PRAKTYCZNA 8/2013
080-087_labview_(5).indd 85
85
2013-07-25 11:24:06
Rysunek 71. Okno kategorii Information
Krok po kroku Kursy EP
Rysunek 70. Ramka struktury zdarzeń wykonywana po kliknięciu w planszy Komputer
początku, poprzez Property Node (EditPos) pobierany jest numer komórki, w który nastąpiło kliknięcie. Z ukrytej kontrolki Komputer Tab poprzez zmienną lokalną jest pobierana tablica zawierająca pozycję okrętów komputera, funkcja Strzał Gracza.vi wpisuje na wskazanej pozycji odpowiedni znak zależny od celności strzału. Zmodyfikowana tablica jest zapisywana ponownie do zmiennej. Jednocześnie ta sama tablica po zamaskowaniu pozycji okrętów wyświetlana jest w tablicy Komputer na panelu czołowym. Wykonuje się to poprzez Property Node (Disabled) (Value), w tym samym miejscu tablica ustawiana jest jako nieaktywna. Funkcja Ilość elementów w tablicy.vi sprawdza ile oddano celnych strzałów i wyświetla wynik gracza. W przypadku, gdy celnych strzałów jest 20, funkcja One Button Dialog umieszczona w strukturze Case wyświetla komunikat „Wygrałeś”. Następnie jest wywoływana funkcja Strzał Komp.vi, do której przez zmienną lokalną przekazana jest zawartość tablicy gracza. Wynik zapisany zostaje również do tej tablicy i wyświetlony na panelu czołowym. Podobnie jak poprzednio sprawdzana jest ilość celnych strzałów. Program jest już gotowy, ale należy skonfigurować wygląd okna aplikacji i sposób uruchamiania. W tym celu należy otworzyć okno Vi Properties w kategorii Window Appearance ustawić Top-level application window. Ukryje to zbędne ikony paska narzędziowego. Proponuję jeszcze przejść do kategorii Execution i zaznaczyć Run when opened. Wówczas po otwarciu okna nasz program natychmiast się uruchomi. Tak przygotowany program będzie można uruchomić tylko dysponując LabView. Jeśli chcemy przenieść go na inny komputer musimy przygotować plik wykonywalny (*.exe).
Generowanie plików exe Rysunek 72. Okno kategorii Source Files
Rysunek 73. Okno kategorii Destinations kich zmiennych. Wewnątrz pętli znajduje się struktura zdarzeń na rysunku widać ramkę, w której następuje wywołanie wcześniej przygotowanego programu Nowa Gra.vi. Po jego zamknięciu zwracane wartości są zapisywane do odpowiednich kontrolek. Dodatkowo, czyszczona jest plansza komputera, plansza z okrętami komputera zapisywana jest do ukrytej zmiennej Komputer Tab. Natomiast z okrętami gracza, poprzez zmienną lokalną Gracz, do planszy gracza. Na rysunku 70 przedstawiony został fragment diagramu znajdującego się w strukturze zdarzeń i wykonywanego po kliknięciu w planszę Komputer. Na
86
Programy przygotowane w LabView nie są całkowicie samodzielnymi programami. Do ich uruchomienia konieczne jest zainstalowanie środowiska uruchomieniowego LabView Run-Time w odpowiedniej wersji, zgodnej z LabView, w którym przygotowana została aplikacja. Środowisko to instaluje się zwykle wraz z LabView. Jeśli program ma być uruchomiony na innym komputerze możliwe jest pobranie go z strony producenta. Po jego zainstalowaniu wystarczy skopiować przygotowaną aplikację i uruchomić ją jak każdy program pod systemem Windows. Oczywiście LabView umożliwia przygotowanie pliku instalacyjnego zawierającego wszystkie niezbędne elementy do zainstalowania i uruchomienia aplikacji na dowolnym komputerze, ale standardowo dostępne jest to tylko w najwyższych wersjach LabView Professional i Developer Suite. Na przykładzie naszej gry pokażę tylko niezbędne czynności pozwalające prawidłowo wygenerować plik exe. Rozpoczynamy od kliknięcia w oknie projektu na ikonie Build Specifications i wybraniu z menu lokalnego New Application (exe). Otworzy się okno konfiguracyjne jak na rysunku 71. W polu Build specification name wpisujemy nazwę konfiguracji widoczną później w menadżerze projektu np. Bitwa Morska. W polu Target Filename wpisujemy nazwę wygenerowanego pliku exe np. Bitwa Morska.exe. W polu Destination directory określamy katalog, w którym zostaną zapisane utworzone pliki. W polu Build specification description możemy dodać krótki opis danej konfiguracji. W kategorii Source Files (rysunek 72) określamy, który z plików jest główną aplikacją. Widzi-
ELEKTRONIKA PRAKTYCZNA 8/2013
080-087_labview_(5).indd 86
2013-07-25 11:24:06
Krok po kroku Kursy EP
Rysunek 74. Okno kategorii Source File Settings
projektu. Pozostałe pliki będące podprogramami w naszej aplikacji zostaną dodane automatycznie. W kategorii Destinations (rysunek 73) należy tak jak na rysunku w polu Destination path ostatni element ścieżki zmienić z data na Plansze. Jest to konieczne ze względu na sposób wyznaczania ścieżki dostępu do katalogu Plansze. W kategorii Source File Settings (rysunek 74) w polu Destination musimy wybrać opcję Support Directory. Jest to konieczne, aby zachować konfigurację plików pozwalającą prawidłowo wyznaczyć ścieżkę do katalogu Plansze. Dla tej konfiguracji wszystkie subvi zostaną zgromadzone w oddzielnej bibliotece. Możliwe jest również zgromadzenie wszystkich funkcji w jednym pliku exe. Teraz można przejść do kategorii Preview (rysunek 75) i klikając w przycisk Generate Preview zobaczyć, jakie pliki zostaną wygenerowane i jaka będzie ich organizacja. Po wciśnięciu Build nasz program zostanie wygenerowany.
Podsumowanie
Rysunek 75. Okno kategorii Preview my to w oknie Startup Vis, będzie on otwierany jako nasz program. W polu Always Included umieszczamy pliki, które powinny być dołączone do programu. W naszym wypadku jest to folder zawierający zapisane ustawienia statków komputera. Musi być on wcześniej dodany do
Mam nadzieją, że ułatwiłem naukę programistom początkującym w tym środowisku. Starałem zwrócić uwagę na szczegóły oczywiste dla doświadczonych programistów, a początkującym mogące sprawiać problemy. Możliwości środowiska są ogromne i pozostało wiele zagadnień, które warto poruszyć. Zachęcam do analizy przykładów dostarczonych z oprogramowaniem. Są dobrze opisanie i nieskomplikowane.
Wiesław Szaj [email protected]
REKLAMA
ELEKTRONIKA PRAKTYCZNA 8/2013
080-087_labview_(5).indd 87
87
2013-07-25 11:24:07
Aplikacje czasu rzeczywistego znajdują zastosowanie przede wszystkim w przemyśle, ale są też bardzo użyteczne w wielu innych dziedzinach, takich jak miernictwo, w których konieczne jest utrzymanie precyzyjnych rygorów czasowych. Stworzenie aplikacji spełniającej to wymaganie nie musi być trudne. Zadanie to można sobie ułatwić korzystając z oprogramowania NI LabVIEW lub NI LabWindows/CVI i kompatybilnego z nim sprzętu firmy National Instruments. W artykule pokażemy, jak to zrobić. W celu tworzenia aplikacji czasu rzeczywistego, w oparciu o produkty firmy National Instruments, konieczne jest wybranie środowiska programistycznego. Firma ta oferuje dwa produkty: bardziej popularne i rozbudowane, a zarazem rekomendowane graficzne środowisko NI LabVIEW oraz oprogramowanie NI LabWindows/CVI, w którym programuje się z użyciem języka ANSI C.
Programowanie w LabVIEW W przypadku aplikacji czasu rzeczywistego tworzonych w LabVIEW konieczny jest zakup pakietu oprogramowania wraz z modułem LabVIEW Real-Time. Pozwala on na projektowanie zaawansowanych, niezawodnych programów pracujących w pełni zgodnie z wymaganiami tzw. twardych systemów czasu rzeczywistego (hard real-time OS), uruchamianie ich na kompatybilnym sprzęcie i debugowanie, bez konieczności stosowania dodatkowych narzędzi. Użycie modułu LabVIEW Real-Time pozwala też na skorzystanie z większości dostępnych w LabVIEW algorytmów DSP i procedur matematycznych – w tym funkcji sterowania PID – na urządzeniach wbudowanych. Ponadto, dodatkowy moduł LabVIEW MathScript RT pozwala na uruchamianie skryptów matematycznych, pracujących z rygorami czasu rzeczywistego. Alternatywnie, moduł LabVIEW Simulation Interface Toolkit pozwala na korzystanie z modeli tworzonych w aplikacji Simulink firmy Mathworks.
Tworzenie, ładowanie i uruchamianie aplikacji w LabVIEW RT Tworząc aplikacje czasu rzeczywistego w LabVIEW, wykorzystuje się okno Project Explorer, które pozwala na organizowanie programów (przyrządów wirtualnych – VI) i dzielenie ich na kategorie, w zależności od platformy sprzętowej, na której mają być uruchamiane. Warto zauważyć, że projekt tworzony jest na dowolnym, klasycznym komputerze PC, pracującym pod kontrolą systemu Windows. Podłączenie do sprzętu przystosowanego do pracy w czasie rzeczywistym dokonuje się dopiero później, poprzez Ethernet. Proces tworzenia aplikacji czasu rzeczywistego jest praktycznie identyczny z programowaniem standardowych aplikacji LabVIEW dla komputera PC. Kilka do-
88
088-093_ni.indd 88
Krok po kroku Kursy EP
Tworzenie aplikacji czasu rzeczywistego z użyciem sprzętu i oprogramowania National Instruments
datkowych funkcji, typowych dla systemów RT, jest dostępnych z przybornika funkcji (przyrządów wirtualnych) czasu rzeczywistego. Wśród nich znaleźć można: • funkcje watchdog, automatycznie restartujące wskazane platformy sprzęto- Rysunek 1. Okno „Project we, w sytuacji, gdy Explorer” pozwala na program przestanie zarządzanie programami odpowiadać, tworzonymi w LabVIEW. • funkcje komunikacyjne do deterministycznego czasowo przesyłania danych pomiędzy poszczególnymi elementami aplikacji RT, • narzędzia do konfiguracji funkcji podziału zadań pomiędzy poszczególne rdzenie procesorów w systemach wielordzeniowych, • funkcje nadzorujące wykonywanie poszczególnych zadań i pętli w określonym czasie. W celu przetestowania stworzonego programu wystarczy kliknąć na ikonkę uruchamiania aplikacji. Zostanie ona wtedy automatycznie przeniesiona przez sieć Ethernet na docelową platformę sprzętową i uruchomiona. Następnie możliwe jest użycie standardowych narzędzi do debugowania, takich jak podświetlanie wykonywanych aktualnie operacji, praca krokowa i dodawanie punktów wstrzymania wykonywania programu. Wszystko to z poziomu komputera PC, pomimo że sama aplikacja uruchomiona jest na zdalnym systemie podłączonym przez Ethernet. Po zakończeniu programowania, możliwe jest utworzenie pliku wykonywalnego (.rtexe) i załadowanie go do docelowego sprzętu, jako programu uruchamianego na starcie urządzenia. To wystarcza, by działał on jako niezależna aplikacja czasu rzeczywistego.
Priorytetyzacja sekcji kodu w LabVIEW Programowanie w oparciu o przepływ danych w LabVIEW uwalnia programistę od konieczności tworzenia sekwencyjnej architektury programu, typowej dla języków tekstowych. Ponieważ kolejność wykonywania
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:23:28
Krok po kroku Kursy EP
wstrzymywania wykonywania kodu. Wystarczą drobne modyfikacje, by aplikacja zapisywała informacje o szybkości swojej pracy do pliku i przesyłała je do komputera w celu podglądu i analizy. Narzędzie do śledzenia sposobu wykonywania kodu w czasie prezentuje przebiegi wątków, założone muteksy i zaalokowane bloki pamięci. Pozwala zoptymalizować wydajność aplikacji poprzez wykrywanie niepożądanych zdarzeń i hazardów wprowadzających opóźnienia lub grożących błędami w wykonywanych operacjach.
Wybór platformy sprzętowej i modułów wejść/wyjść
Rysunek 2. Konfiguracja priorytetów dla poszczególnych sekcji kodu w LabVIEW kodu wynika ze sposobu przepływu danych pomiędzy poszczególnymi elementami zdefiniowanymi w postaci graficznej, łatwo jest tworzyć aplikacje przystosowane do równoległego wykonywania wielu operacji. LabVIEW pozwala ponadto na ręczne sterowanie kolejnością wykonywania kodu poprzez przypisywanie priorytetów w ramach struktur pętli czasowych. Każda z pętli może mieć określone niezależnie źródło taktowania, okres, priorytet i kilka innych opcji.
Wszystkie platformy sprzętowe National Instruments, przygotowane do pracy z systemami operacyjnymi czasu rzeczywistego mają wspólną architekturę, co oznacza, że programy napisane w LabVIEW Real-Time Module będą poprawnie działać na różnych platformach, bez konieczności wprowadzania większych modyfikacji. Konkretnie rzecz ujmując, każda z platform sprzętowych zawiera takie komponenty, jak mikroprocesor, pamięć RAM, pamięć nieulotną i interfejs do magistrali wejść i wyjść. Niektóre z platform sprzętowych mają ponadto wbudowane układy FPGA, które można programować za pomocą modułu LabVIEW FPGA. Platformy sprzętowe National Instruments istotnie różnią się między sobą i są przystosowane do różnych rodzajów aplikacji. W zależności od tego, czy potrzebna jest bardzo duża wydajność, czy niewielkie wymia-
Obsługa wielu rdzeni w LabVIEW Moduł LabVIEW Real-Time obsługuje wykonywanie kodu w oparciu o wiele rdzeni procesora. Automatycznie tworzy oddzielne wątki dla równolegle działających sekcji kodu. Dzięki temu nie ma potrzeby ręcznego ich kreowania i zarządzania nimi. Domyślnie, wątki te są dynamicznie przypisywane do wykonywania na rdzeniach procesorów dostępnych w danej aplikacji. Jednakże, w celu dalszego zwiększenia wydajności i niezawodności, możliwe jest ręczne przypisanie poszczególnych pętli czasowych do poszczególnych rdzeni. Przykładowo, można zarezerwować wybrany rdzeń procesora tylko i wyłączenie do obsługi jednej, krytycznej czasowo pętli, i uniezależnić ją od mniej istotnych zadań, uruchamianych na pozostałych rdzeniach.
Rysunek 3. Stworzone w aplikacji pętle można automatycznie lub ręcznie przypisywać do dostępnych rdzeni procesora.
Projekt w LabWindows/CVI W przypadku, gdy preferowanym językiem tworzenia kodu jest ANSI C, aby skorzystać z zalet sprzętu i algorytmów oferowanych przez National Instruments, można użyć środowiska programistycznego NI LabWindows/ CVI. Obsługę pracy w czasie rzeczywistym zapewnia moduł LabWindows/CVI Real-Time, który pozwala na tworzenie i uruchamianie takich programów na sprzęcie NI. Zostanie on omówiony w dalszej części artykułu.
Zaawansowane debugowanie Środowisko programistyczne oferowane przez National Instruments pozwala też na zaawansowane debugowanie aplikacji wielordzeniowych. W tym celu należy użyć pakietu Real-Time Execution Trace Toolkit, który pozwala przeanalizować wydajność tworzonych programów, bez
Rysunek 4. Narzędzie Real-Time Execution Trace Toolkit dla LabVIEW i LabWindows/CVI.
ELEKTRONIKA PRAKTYCZNA 8/2013
088-093_ni.indd 89
89
2013-07-25 11:23:28
Krok po kroku Kursy EP
Rysunek 5. Platforma PXI
szeregowe, USB, czytnik kart CF i gniazdo ethernetowe. Mogą być programowane zarówno z poziomu LabVIEW, jak i LabWindows/CVI. Sterowniki przemysłowe firmy National Instruments stanowią idealny wybór w przypadku aplikacji czasu rzeczywistego, uruchamianych w trudnych warunkach środowiskowych, gdzie użycie aktywnego chłodzenia z zastosowaniem wentylatorów nie jest możliwe. Sterowniki można podłączać do innych urządzeń za pomocą sieci EtherCAT lub poprzez rozszerzenia zgodne z interfejsem MXIe.
CompactRIO
Rysunek 6. Przykładowy sterownik przemysłowy firmy National Instruments ry, czy też odporność na trudne warunki środowiskowe, optymalne będzie inne rozwiązanie. Warto zaznaczyć, że wszystkie platformy oferowane przez NI i przystosowane do pracy w czasie rzeczywistym mogą działać w pełni autonomicznie.
Platforma PXI PXI to przemysłowy standard, na który składają się wytrzymałe obudowy ze zintegrowanymi układami wyzwalania i timerami, wbudowanym układem sterującym oraz miejscami na montaż kart z modułami wejść i wyjść. Wbudowany kontroler zawiera też porty szeregowe, USB, ethernetowe i GPIB. Urządzenia PXI mogą być programowane z użyciem zarówno LabVIEW Real-Time Module, jak i LabWindows/CVI Real-Time Module. Co więcej, kontrolery PXI pracujące pod kontrolą systemu Windows można przekształcić w systemy RTOS, nabywając licencję LabVIEW Real-Time Deployment. Możliwe jest również skonfigurowanie sprzętu do pracy w trybie dual-boot, kiedy to, czy platforma będzie działać pod kontrolą systemu czasu rzeczywistego czy Windows jest określane w konfiguracji BIOS. Pomocna w tworzeniu własnej, kompletnej platformy PXI może być aplikacja internetowa dostępna pod adresem: http://ohm.ni.com/ advisors/pxi. Platforma PXI jest często używana do najbardziej wymagających aplikacji, takich jak np. testowanie urządzeń elektronicznych na linii produkcyjnej lub analiza wibracji w systemach monitorowania stanu maszyn przemysłowych. Zastosowanie platformy PXI w aplikacjach czasu rzeczywistego pozwala na dostęp do zaawansowanych funkcji synchronizacji, które umożliwiają precyzyjne wyzwalanie wejść i wyjść oraz współpracę wielu modułów sprzętowych ze sobą.
90
088-093_ni.indd 90
Ciekawą platformą sprzętową jest CompactRIO (Compact Reconfigurable I/O), które łączy w sobie procesor pracujący w czasie rzeczywistym, układ FPGA i moduły wejść i wyjść. Dodatkowo, posiada wbudowane interfejsy szeregowe, USB i ethernetowe. Bloki wejść i wyjść w CompactRIO są bezpośrednio podłączone do układu FPGA, co pozwala na bardzo szybkie przetwarzanie danych. Rezultaty tego przetwarzania są następnie dostępne dla głównego mikroprocesora platformy. Internetowa aplikacja do konfiguracji platformy CompactRIO znajduje się pod adresem: http://ohm.ni.com/advisors/ crio. Moduł LabVIEW Real-Time pozwala na programowanie wbudowanego w CompactRIO procesora czasu rzeczywistego, a moduł LabVIEW FPGA umożliwia konfigurację bramek w układzie FPGA. Alternatywnie, można zastosować mechanizm NI Scan Engine modułu LabVIEW Real-Time, który pozwala bezpośrednio komunikować główny mikroprocesor z modułami wejść i wyjść. Pomijamy w ten sposób konieczność samodzielnego programowania FPGA. Sterowniki CompactRIO są często używane w aplikacjach przemysłowych, w tym do monitorowania stanu maszyn, sterowania ruchem i logowania danych. Ponadto CompactRIO są idealne do szybkiego prototypowania systemów wbudowanych, co pozwala skrócić czas potrzebny na wprowadzenie produktu na rynek.
Komputery jednopłytkowe – sbRIO Urządzenia platformy NI Single-Board RIO mają identyczną architekturę jak CompactRIO, ale oferowane są w postaci pojedynczych płytek drukowanych. Zawierają, tak samo jak CompactRIO, mikroprocesor zdolny do pracy w czasie rzeczywistym i programowalny układ FPGA. Dostępne są też liczne moduły wejść i wyjść, również oferowane w postaci płytek drukowanych. Platforma NI Single-Board RIO sprawdza się najlepiej w przypadku systemów produkowanych w dużej liczbie sztuk, wymagających elastyczności konfiguracji, dużej wydajności i niezawodności. Omawiane kontrolery cieszą się popularnością m.in. w zastosowaniach medycznych, robotyce i sterowaniu pojazdami bezzałogowymi.
Sterowniki przemysłowe
Systemy wizyjne
Sterowniki przemysłowe oferowane przez National Instruments to odporne na trudne warunki środowiskowe, bezwentylatorowe urządzenia o dużej wydajności, wyposażone w pojedyncze gniazdo PCI lub PCIe pozwalające na montaż kart rozszerzeń. Mają wbudowane porty
National Instruments oferuje szeroki zakres sprzętu do systemów wizyjnych czasu rzeczywistego. Przykładem jest platforma Smart Camera, która sprawdza się w rozwiązaniach typu „wszystko w jednym”, Compact Vision System, który pozwala na przetwarzanie danych z wielu
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:23:28
Krok po kroku Kursy EP
1LH]UyZQDQH PRŮOLZRŒFLL HODVW\F]QRŒüZ ]DXWRPDW\]RZDQ\FK WHVWDFK
Rysunek 7. Platforma CompactRIO
Rysunek 8. Architektura platformy CompactRIO kamer oraz bardzo wydajne, bezwentylatorowe urządzenia Embedded Vision System. Urządzenia z serii Smart Camera łączą w sobie wysokiej jakości sensor obrazu z procesorem umożliwiającym pracę w czasie rzeczywistym, możliwym do programowania z użyciem modułu LabVIEW Real-Time. Dokupienie licencji na oprogramowanie NI Vision Development Module daje dostęp do setek funkcji związanych z przetwarzaniem obrazu i systemami wizyjnymi. Omawiane produkty mają też dwa optoizolowane cyfrowe wejścia, dwa optoizolowane cyfrowe wyjścia, jeden port szeregowy RS232 i dwa porty gigabitowego Ethernetu. Platforma Compact Vision System (CVS) zawiera wbudowany procesor czasu rzeczywistego, układ FPGA i interfejsy IEEE1394 do podłączania kamer. Mają też wbudowane wyjście wideo, port ethernetowy, 15 cyfrowych wejść i 14 cyfrowych
8U]ĉG]HQLDRSDUWHQDSODWIRUPLH1,3;,RUD] ŒURGRZLVNR1,/DE9,(:SU]\F]\QLDMĉVLĘGR UHGXNFMLNRV]WXEXGRZ\WHVWHUyZ]ZLĘNV]HQLD SU]HSXVWRZRŒFLV\VWHPXRUD]VNUyFHQLDF]DVX SRWU]HEQHJRQDLPSOHPHQWDFMĘ RSURJUDPRZDQLD3RQDGRIHURZDQ\FK SU]\U]ĉGyZ3;,XPRŮOLZLDRSUDFRZDQLH NRPSOHNVRZ\FKUR]ZLĉ]DĽGRQDZHWQDMEDUG]LHM Z\PDJDMĉF\FK]DXWRPDW\]RZDQ\FKWHVWyZ
REKLAMA
=ZLĘNV]VZRMĉHIHNW\ZQRŒü 2GZLHGŬQLFRPpxi
1DWLRQDO,QVWUXPHQWV&RUSRUDWLRQ:V]\VWNLHSUDZD]DVWU]HŮRQH /DE9,(:1DWLRQDO,QVWUXPHQWV1,QLFRPWR]DUHMHVWURZDQH]QDNLKDQGORZH 1DWLRQDO,QVWUXPHQWV,QQHZ\PLHQLRQHSURGXNW\LILUP\WR]DUHMHVWURZDQH ]QDNLKDQGORZHLQD]Z\ILUPRZHRGSRZLHGQLFKILUP
Rysunek 9. Platforma NI Single-Board RIO
1DWLRQDO,QVWUXPHQWV3RODQG6S]RRς6DO]EXUJ&HQWHUXO*UyMHFND :DUV]DZDς7HOς)D[ 6WURQDLQWHUQHWRZDKWWSSRODQGQLFRPς$GUHVHPDLOQLSRODQG#QLFRP .566ĉG5HMRQRZ\GODPVW:DUV]DZ\;,,,:\G]LDá*RVSRGDUF]\.UDMRZHJR 5HMHVWUX6ĉGRZHJRς.DSLWDá]DNáDGRZ\3/1ς1,3
ELEKTRONIKA PRAKTYCZNA 7/2013
088-093_ni.indd 91
91
2013-07-25 11:23:28
Dostępność wejść i wyjść
PXI
CompactRIO
Systemy wizyjne
Zwykłe lub przemysłowe PC
Różnorodność Standardowe sterowniki Możliwość dostosowania do własnych potrzeb Możliwość rozszerzania o dodatkowe wyjścia i wejścia Dobra
Legenda:
Lepsza
Najlepsza
Tabela 2. Porównanie wydajności poszczególnych platform sprzętowych Wydajność
PXI
CompactRIO
Systemy wizyjne
Zwykłe lub przemysłowe PC
Systemy wizyjne
Zwykłe lub przemysłowe PC
Krok po kroku Kursy EP
Tabela 1. Platformy sprzętowe NI i dostępność modułów wejść i wyjść
Determinizm pracy Kontrola czasu wyzwalania i synchronizacji Szybkość przetwarzania danych Przetwarzanie wielordzeniowe Dobra
Legenda:
Lepsza
Najlepsza
Tabela 3. Cechy fizyczne platform sprzętowych oferowanych przez NI Cechy fizyczne
PXI
CompactRIO
Odporność na trudne warunki środowiskowe
różna
Przenośność Legenda:
Dobra
Lepsza
Najlepsza regowe, USB i ethernetowe. Wbudowany mikroprocesor i układ FPGA są używane i programowane w ten sam sposób, co w przypadku platformy CVS. Omawiana platforma jest idealna do zastosowań związanych ze zautomatyzowaną inspekcją podzespołów, odczytem kodów paskowych i 2D, odczytem tekstu, a nawet pomiarów temperatur za pomocą kamer podczerwieni.
Pozostałe platformy sprzętowe W praktyce, na potrzeby aplikacji pisanych w LabVIEW lub LabWindows, można przystosować praktycznie każdy przemysłowy komputer PC, komputer jednopłytkowy, czy też klasyczny PC biurkowy, o ile tylko jego podzespoły spełniają określone wymagania systemowe. W tym celu wystarczy nabyć licencję na LabVIEW Real-Time Deployment.
Porównanie platform
Rysunek 10. Platforma NI SmartVision wyjść. Programowanie wbudowanego procesora możliwe jest za pomocą modułu LabVIEW Real-Time, a FPGA – poprzez moduł LabVIEW FPGA. Układ programowalny komunikuje się bezpośrednio z cyfrowymi wejściami i wyjściami. Platformy NI Embedded Vision System to odporne, bezwentylatorowe systemy zoptymalizowane do aplikacji wizyjnych. Obsługują zarówno kamery podłączane przez gigabitowy Ethernet, jak i przez interfejs IEEE1394 oraz mają 29 cyfrowych wejść/wyjść, a także porty sze-
92
088-093_ni.indd 92
Każda z opisanych platform sprzętowych jest przeznaczona do innego rodzaju aplikacji. Platforma PXI zapewnia największą wydajność, podczas gdy Compact Vision System składa się ze sprzętu najbardziej odpornego na trudne warunki środowiskowe. Platforma CompactRIO łączy w sobie obydwie te cechy, a wbudowany w nią programowalny układ FPGA umożliwia elastyczne tworzenie wydajnych aplikacji.
Dostępność wejść i wyjść Platformy sprzętowe National Instruments obsługują wiele różnorodnych modułów wejść i wyjść, wliczając w to gotowe produkty, oferowane bezpośrednio przez NI, moduły projektowane samodzielnie oraz produkty firm trzecich. Moduły NI korzystają ze standardowych sterowników, dostępnych z poziomu LabVIEW i LabWindows/CVI. Wiele z platform oferowanych przez NI można rozszerzać poprzez łączenie ze sobą kilku obudów, kom-
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:23:29
Krok po kroku Kursy EP
Rysunek 11. Moduły rozszerzeń dla platformy CompactRIO puterów lub sterowników, każdy z osobnym zestawem modułów wejść i wyjść. Moduły wejść i wyjść PXI i PCI kompatybilne z platformami NI czasu rzeczywistego to m.in.: moduły akwizycji danych (analogowych i cyfrowych), moduły dynamicznej akwizycji sygnałów, akwizycji obrazu, sterowania ruchem, rekonfigurowalne wejścia i wyjścia w oparciu o FPGA (RIO), interfejsy CAN, szeregowe, GPIB, ethernetowe, moduły rozszerzeń poprzez magistralę MXI, moduły IEEE1394 dla dysków twardych i kamer, zewnętrzne dyski twarde na USB i inne oferowane przez niezależnych producentów. Platforma CompactRIO może korzystać z następujących modułów rozszerzeń: wejścia analogowe, wyjścia analogowe (napięciowe i prądowe), interfejsy CAN, moduły sterowania ruchem, cyfrowe wejścia i wyjścia, wyjścia przekaźnikowe, liczniki, generatory impulsów i inne moduły oferowane przez niezależnych producentów. Wejścia i wyjścia oferowane przez urządzenia Smart Camera to dwa optoizolowane cyfrowe wejścia, dwa optoizolowane cyfrowe wyjścia, jeden port szeregowy RS232 i dwa gigabitowe porty ethernetowe. System CVS umoż-
liwia podłączenie trzech kamer IEEE1394, wyświetlacza, urządzeń przez Ethernet i 15 cyfrowych wejść oraz 14 cyfrowych wyjść.
Wydajność Wydajność omawianych platform może być oceniania pod kątem determinizmu wykonywania programu, opóźnień na wejściach i wyjściach, wyzwalania, synchronizacji, szybkości przetwarzania i dostępności wielordzeniowych procesorów. W systemach czasu rzeczywistego najważniejszy jest determinizm, który definiuje, z jaką pewnością system wykona zadane operacje w określonym czasie.
Cechy fizyczne Dobierając platformę sprzętową należy też zwrócić uwagę na warunki, w których będzie pracować. Przykładowo, platformy CompactRIO i Compact Vision Systems są wykonywane bez korzystania z ruchomych elementów, co maksymalizuje ich odporność na wstrząsy i wibracje. Porównanie cech fizycznych omawianych platform przedstawiono w tabeli 3.
REKLAMA
ELEKTRONIKA PRAKTYCZNA 8/2013
088-093_ni.indd 93
93
2013-07-25 11:23:30
Pierwsze kroki z modułem STM32F0DISCOVERY Samouczek jest dedykowany szczególnie tym projektantom, którzy stają przed perspektywą zmiany mikrokontrolera z 8-bitowego na nowszy i tańszy 32-bitowy. Wszystkie programy są napisane w języku C. W przykładach nie użyto bibliotek służących do obsługi peryferiali, dzięki czemu kod programów jest krótki i czytelny, a zajętość pamięci znacznie mniejsza, niż w typowych programach demonstracyjnych, udostępnianych przez producentów mikrokontrolerów. Zwrócono również szczególną uwagę na poprawność prezentowanych rozwiązań i sposób zapisu programu ułatwiający optymalizację kodu i wychwytywanie błędów przez kompilator. Przedstawione programy zostały napisane w taki sposób, że nie generują one żadnych ostrzeżeń kompilatora. Odmierzanie czasu przy użyciu timera systemowego SysTick Kolejny program będzie, tak jak poprzedni, migał diodami, ale tym razem użyjemy prawidłowej techniki odmierzania czasu przy użyciu timera zgłaszającego przerwania ze stałą, zadaną przez programistę częstotliwością. Gotowy program znajduje się w projekcie blink1.
Zaprogramowanie timera SysTick Timer SysTick jest częścią samego procesora Cortex-M. Zwykle służy on do zgłaszania przerwań ze stałą częstotliwością. W naszym przykładzie zaprogramujemy go tak, aby zgłaszał przerwania z częstotliwością 100 Hz. Zadanie obliczenia wartości, którą należy w tym celu załadować do rejestr okresu timera, pozostawimy kompilatorowi, zapisując stosowne wyrażenie w instrukcji ładowania rejestru sterującego timera. Zdefiniujemy jako symbol preprocesora częstotliwość procesora SYSCLK_ FREQ. Jest ona równa częstotliwości wewnętrznego oscylatora HSI_VALUE zdefiniowanej w pliku nagłówkowym definicji zasobów mikrokontrolera. Zdefiniujemy również częstotliwość zgłaszania przerwań przez timer SYSTICK_FREQ podając jej wartość w Hz oraz okres zmiany stanu diod, wyrażając go w okresach timera SysTick, czyli w dziesiątkach milisekund. Programowanie portów wygląda tak samo, jak w poprzednim przykładzie. Następną czynnością jest zaprogramowanie timera SysTick. W tym celu kolejno: – ustawiamy w rejestrze LOAD maksymalną wartość licznika timera (o 1 mniejszą od długości okresu), – zerujemy rejestr licznika czasu VAL, – wybieramy jako źródło zegara timera zegar procesora, włączamy przerwanie timera i uruchamiamy timer zapisując odpowiednią stałą do rejestru CTRL.
Struktura programu Zmianą stanu diod zajmie się procedura obsług przerwania timera. Rola programu głównego kończy się na zainicjowaniu portu i timera, dlatego po wykonaniu tych czyn-
94
094-103_st1.indd 94
Krok po kroku Kursy EP
32 bity jak najprościej (2)
ności włączymy w procesorze automatyczne usypianie po powrocie z obsługi przerwania (zapis rejestru SCR procesora), a następnie uśpimy procesor w oczekiwaniu na przerwanie (pseudofunkcja __WFI()). Na tym zakończy się wykonanie programu głównego. Procesor będzie budził się na czas obsługi przerwania, a po zakończeniu obsługi będzie usypiał. Nie jest potrzebna żadna „pętla główna”, nawet pusta. Taki sposób programowania jest typowy dla większości prostych aplikacji, które nie wymagają użycia systemu operacyjnego i zapewnia oszczędność energii. Przerwanie timera SysTick nie wymaga oddzielnego włączenia w sterowniku przerwań NVIC, gdyż timer ten nie jest traktowany jak moduł peryferyjny. Musimy napisać procedurę obsługi przerwania timera. Jej nazwa jest zdefiniowana w module startowym. Procedura deklaruje zmienną statyczną blink_timer, służącą do odliczania czasu pomiędzy zmianami stanu diod. Jest ona dekrementowana przy każdym przerwaniu, a po jej wyzerowaniu następuje załadowanie długości okresu i zmiana stanu diod. Dlaczego nie zaprogramowaliśmy timera na docelową częstotliwość migotania diod? Oczywiście można by było tak zrobić, ale zazwyczaj w programach, służących do czegoś więcej niż demonstracja działania mikrokontrolera, potrzebujemy odmierzania dużo krótszych odcinków czasu – typowo od 1 do 10 ms. Do sygnalizacji stanu urządzenia użyjemy tego samego timera, który byłby użyty do generowania bazy czasu urządzenia, zmieniając stan diod co pewną liczbę przerwań. Zademonstrowane w programie zamieszczonym na listingu 1 rozwiązanie jest często spotykane w realnym oprogramowaniu.
Drobne usprawnienia Kolejny projekt, blink2, nie różni się funkcjonalnie od poprzedniego. Wprowadzono w nim jednak dwie modyfikacje: – Procedura SystemInit włącza bufor pobierania instrukcji, co powoduje wzrost wydajności procesora. – Sekwencję instrukcji podstawienia służącą do inicjowania peryferiali zastępujemy prostą funkcją
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:14:18
Krok po kroku Kursy EP
Listing 1. Program demonstracyjny – blink 1 (migotanie diody LED) /* STM32F0DISCOVERY SysTick-based blinker gbm, 12’2012 */ #include „stm32f0xx.h” //======================================================================= // defs for STM32F05x chips #define GPIO_MODER_OUT 1 //======================================================================== // defs for STM32F0DISCOVERY board #define LED_PORT GPIOC #define BLUE_LED_BIT 8 #define GREEN_LED_BIT 9 //======================================================================= // Timings #define SYSCLK_FREQ HSI_VALUE #define SYSTICK_FREQ 100 #define BLINK_PERIOD 50 // * 10 ms //======================================================================= void SystemInit(void) { } //======================================================================= int main(void) { // port setup RCC->AHBENR = RCC_AHBENR_GPIOCEN; // GPIOC LED_PORT->MODER = GPIO_MODER_OUT << (GREEN_LED_BIT << 1) | GPIO_MODER_OUT << (BLUE_LED_BIT << 1); // LED outputs LED_PORT->ODR = 1 << GREEN_LED_BIT; // green initially ON //SysTick setup SysTick->LOAD = SYSCLK_FREQ / SYSTICK_FREQ - 1; SysTick->VAL = 0; SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; SCB->SCR = SCB_SCR_SLEEPONEXIT_Msk; // sleep while not in handler __WFI(); // go to sleep } //======================================================================= void SysTick_Handler(void) { static uint8_t blink_timer = BLINK_PERIOD; if (-- blink_timer == 0) { blink_timer = BLINK_PERIOD; // toggle both LEDs LED_PORT->ODR ^= 1 << GREEN_LED_BIT | 1 << BLUE_LED_BIT; } }
Listing 2. Zmodyfikowany program demonstracyjny – blink 2 /* STM32F0DISCOVERY tutorial SysTick-based blinker with table-driven init gbm, 12’2012 */ #include „stm32f0xx.h” //======================================================================= // defs for STM32F05x chips #define GPIO_MODER_OUT 1 //======================================================================= // defs for STM32F0DISCOVERY board #define LED_PORT GPIOC #define BLUE_LED_BIT 8 #define GREEN_LED_BIT 9 //======================================================================= // Timings #define SYSCLK_FREQ HSI_VALUE #define SYSTICK_FREQ 100 // 100 Hz -> 10 ms #define BLINK_PERIOD 50 // * 10 ms //======================================================================= struct init_entry_ { volatile uint32_t *loc; uint32_t value; }; static __INLINE void writeregs(const struct init_entry_ *p) { for (; p->loc; p ++) *p->loc = p->value; } //======================================================================= void SystemInit(void) { FLASH->ACR = FLASH_ACR_PRFTBE; // enable prefetch } //======================================================================= static const struct init_entry_ init_table[] = { // port setup {&RCC->AHBENR, RCC_AHBENR_GPIOCEN}, // GPIOC { &LED_PORT->MODER, GPIO_MODER_OUT << (GREEN_LED_BIT << 1) | GPIO_MODER_OUT << (BLUE_LED_BIT << 1) }, // set LED pins as outputs {(__IO uint32_t *)&LED_PORT->ODR, 1 << GREEN_LED_BIT}, // green initially ON //SysTick setup {&SysTick->LOAD, SYSCLK_FREQ / SYSTICK_FREQ - 1},
ELEKTRONIKA PRAKTYCZNA 8/2013
094-103_st1.indd 95
95
2013-07-25 11:14:18
Krok po kroku Kursy EP
Listing 2. c.d. {&SysTick->VAL, 0}, { &SysTick->CTRL, SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk }, {&SCB->SCR, SCB_SCR_SLEEPONEXIT_Msk}, // sleep while not in handler {0, 0} }; //======================================================================= int main(void) { writeregs(init_table); __WFI(); // go to sleep } //======================================================================= void SysTick_Handler(void) { static uint8_t blink_timer = BLINK_PERIOD; if (-- blink_timer == 0) { blink_timer = BLINK_PERIOD; // toggle both LEDs LED_PORT->ODR ^= 1 << GREEN_LED_BIT | 1 << BLUE_LED_BIT; } } Listing 3. Program demonstracyjny – zmiana stanu świecenia diod za pomocą przycisku /* STM32F0DISCOVERY tutorial SysTick-based LED toggle by button press gbm, 12’2012 */ #include „stm32f0xx.h” //======================================================================= // defs for STM32F05x chips #define GPIO_MODER_OUT 1 //======================================================================= // defs for STM32F0DISCOVERY board #define LED_PORT GPIOC #define BLUE_LED_BIT 8 #define GREEN_LED_BIT 9 #define BUTTON_PORT GPIOA #define BUTTON_BIT 0 //======================================================================= // Timings #define SYSCLK_FREQ HSI_VALUE #define SYSTICK_FREQ 100 // 100 Hz -> 10 ms //======================================================================= struct init_entry_ { volatile uint32_t *loc; uint32_t value; }; static __INLINE void writeregs(const struct init_entry_ *p) { for (; p->loc; p ++) *p->loc = p->value; } //======================================================================= void SystemInit(void) { FLASH->ACR = FLASH_ACR_PRFTBE; // enable prefetch } //======================================================================= static const struct init_entry_ init_table[] = { // port setup {&RCC->AHBENR, RCC_AHBENR_GPIOCEN | RCC_AHBENR_GPIOAEN}, // GPIOC, GPIOA { &LED_PORT->MODER, GPIO_MODER_OUT << (GREEN_LED_BIT << 1) | GPIO_MODER_OUT << (BLUE_LED_BIT << 1) }, // set LED pins as outputs {(__IO uint32_t *)&LED_PORT->ODR, 1 << GREEN_LED_BIT}, // set green LED on // SysTick setup {&SysTick->LOAD, SYSCLK_FREQ / SYSTICK_FREQ - 1}, {&SysTick->VAL, 0}, { &SysTick->CTRL, SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk }, // sleep {&SCB->SCR, SCB_SCR_SLEEPONEXIT_Msk}, // sleep while not in handler {0, 0} }; //======================================================================= int main(void) { writeregs(init_table); __WFI(); // go to sleep } //======================================================================= void SysTick_Handler(void) { static uint8_t bstate = 0; // button history - last 4 samples if ((bstate = (bstate << 1 & 0xf) | (BUTTON_PORT->IDR >> BUTTON_BIT & 1)) == 1) // button was released, now it is pressed - change LED state LED_PORT->ODR ^= 1 << GREEN_LED_BIT | 1 << BLUE_LED_BIT; }
96
094-103_st1.indd 96
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:14:18
Krok po kroku Kursy EP
kopiującą dane pod wskazane adresy oraz tablicą zawierającą adresy rejestrów sterujących i wartości, które mają być do nich zapisane. Takie rozwiązanie sprawdza się zwłaszcza w bardziej złożonych programach, gdzie należy zainicjować kilkadziesiąt rejestrów sterujących – podnosi ono czytelność kodu i redukuje błędy. W tak zmodyfikowanym programie warto zwrócić uwagę na następujące szczegóły: – W programie konsekwentnie ograniczono widoczność danych i procedury writeregs, deklarując je z atrybutem static, który w tym przypadku oznacza, że będą to obiekty prywatne dla modułu, w którym zostały zdefiniowane. Umożliwia to kompilatorowi skuteczniejszą optymalizację i zwiększa prawdopodobieństwo wykrycia przez kompilator błędów w kodzie. – Tablica init_table została zadeklarowana z atrybutem const, dzięki czemu nie zajmuje ona miejsca w pamięci RAM. – Procedura writeregs została zadeklarowana z atrybutem inline (użyto tu makrodefinicji __INLINE, gdyż kompilator środowiska Keil nie reaguje na standardowe słowo kluczowe). Jest to sugestia dla kompilatora, że może on zastąpić wywołanie procedury wstawieniem jej ciała w miejsce, z którego jest wywoływana. – W tablicy inicjowania użyto rzutowania typu wskaźnikowego (__IO uint32_t *); wynika to z nietypowej definicji wielu rejestrów sterujących w pliku nagłówkowym dla STM32F0 – są one zdefiniowane jako 16-bitowe. Zmodyfikowany program zamieszczono na listingu 2.
Sterowanie świeceniem diod przy użyciu przycisku Ponieważ na płytce DISCOVERY jest umieszczony przycisk (koloru niebieskiego), którego stan może być testowany przez mikrokontroler, wypada użyć go w kolejnym projekcie. Tym razem diody nie będą zaświecały się i gasły samoczynnie, lecz będą one sterowane przez naciśnięcie przycisku. Każde naciśnięcie spowoduje zmianę stanu świecenia obu diod. Ten projekt jest dobrym pretekstem do zaprezentowania techniki programowego ignorowania drgań styków przycisku. W celu uniknięcia reakcji na drgania styków, stan przycisku będzie testowany ze stałą częstotliwością (100 razy na sekundę), a reakcja na naciśnięcie nastąpi, gdy po trzech kolejnych okresach zwolnienia przycisku zostanie zarejestrowane jego naciśnięcie. Dzięki temu program nie będzie reagował na naprzemienne odczyty naciśnięcia i zwolnienia, które mogą mieć miejsce w przypadku drgań styków. Taka technika obsługi przycisku może być stosowana, gdy nie występują zmiany stanów wejścia przycisku spowodowane czynnikami innymi niż samym drżeniem styków, np. zakłóceniami elektrycznymi na liniach łączących przyciski z wejściami mikrokontrolera. Program zaprezentowany na listingu 3 różni się od poprzedniego sekwencją inicjującą oraz procedurą obsługi przerwania timera SysTick. Sekwencję inicjującą uzupełniono o włączenie portu A, do którego podłączony jest przycisk. W procedurze obsługi przerwania SysTick zdefiniowano zmienną statyczną bstate, przechowującą cztery ostatnio zarejestrowane stany przycisku. Zmienna
ta zachowuje się jak 4-bitowy rejestr przesuwający. Na początku obsługi przerwania jest ona przesuwana o jeden bit w lewo, a na najmniej znaczący bit wsuwana jest informacja o nowym stanie przycisku. Stany wejść portu GPIO są dostępne dla oprogramowania w rejestrze wejściowym portu GPIO - IDR. Ponieważ przycisk został podłączony na płytce STM32F0DISCOVERY dość nietypowo – pomiędzy dodatnim biegunem zasilania i wejściem, przy naciśnięciu przycisku wejście portu przyjmie stan 1. Procedura obsługi przerwania zmieni stan diod, gdy zmienna bstate osiągnie wartość 1 (binarnie - 0001), co odpowiada trzem okresom zwolnienia i następującym po nim naciśnięciu przycisku. Program demonstracyjny pokazano na listingu 3.
Przełączanie trybu migotania diody przy użyciu przycisku Kolejny projekt, BtnBlink, jest niemal dokładnym funkcjonalnym odpowiednikiem przykładowego programu dostarczanego wraz z płytką STM32F0DISCOVERY, dzięki rezygnacji z użycia bibliotek do obsługi peryferiali jest jednak od niego krótszy i przejrzystszy w zapisie i zajmuje mniej miejsca w pamięci. Nowy program stworzymy na bazie poprzedniego, uzupełniając go o obsługę zmiany trybu świecenia diod. Procedura obsługi przerwania timera SysTick zostanie rozbudowana o reakcję na naciśnięcie przycisku. Każde naciśnięcie przycisku ma powodować zaświecenie niebieskiej diody na określony czas (1 sekunda) oraz zmieniać tryb sterowania diody zielonej. Trzy tryby odpowiadają kolejno: wolnemu migotaniu, szybkiemu migotaniu i wygaszeniu. Program nie reaguje na naciśnięcie przycisku podczas świecenia diody niebieskiej. W procedurze obsługi przerwania zadeklarujemy następujące zmienne statyczne (czyli takie, których wartości są zachowywane pomiędzy wywołaniami procedury): – blink_mode – określa tryb sterowania zielonej diody, – blink_timer – do odmierzania okresu świecenia zielonej diody, – blue_led_timer – do odmierzania czasu świecenia diody niebieskiej, – green_on_time – przechowuje czas zaświecenia diody zielonej, – bstate – przechowuje stan przycisku rejestrowany po każdym przerwaniu timera. Tablica stałych blink_period[] zawiera okresy świecenia zielonej diody dla poszczególnych trybów pracy. Na końcu każdego okresu świecenia następuje ustawienie czasu kolejnego okresu świecenia i czasu zapalenia diody równego połowie okresu świecenia, zaokrąglonej w dół. Dla trybu wygaszenia (okres równy 1) czas świecenia jest równy 0. Do zaświecania i gaszenia diod użyto rejestrów BSRR i BRR modułu GPIO. Umożliwiają one zmianę stanu dowolnych bitów portu z zachowaniem stanu pozostałych bitów, bez wcześniejszego odczytu stanu portu i konieczności wykonywania operacji logicznych Zapis jedynki do dolnej połowy rejestru eeeee powoduje ustawienie wyjścia w stan 1, a zapis jedynki do BRR – ustawienie wyjścia w stan 0. Ustawienie wyjścia w stan 0 jest również możliwe poprzez zapis jedynki do górnej połowy rejestru BSRR. Naciśnięcie nie jest wykrywane w czasie świecenia niebieskiej diody, czyli w ciągu sekundy od poprzednie-
ELEKTRONIKA PRAKTYCZNA 8/2013
094-103_st1.indd 97
97
2013-07-25 11:14:18
#include „stm32f0xx.h” //======================================================================= // defs for STM32F0DISCOVERY board #define LED_PORT GPIOC #define BLUE_LED_BIT 8 #define GREEN_LED_BIT 9 #define BUTTON_PORT GPIOA #define BUTTON_BIT 0 #define GPIO_MODER_OUT 1 #define SYSCLK_FREQ HSI_VALUE
Krok po kroku Kursy EP
Listing 4. Program demonstracyjny – przełączanie trybu migotania diody przy użyciu przycisku /* STM32F0DISCOVERY tutorial SysTick-based blinker with table-driven init and blink mode switching gbm, 12’2012 */
#define SYSTICK_FREQ 100 // 100 Hz -> 10 ms #define BLINK_PERIOD 50 // * 10 ms #define BLUE_ACK_TIME 100 //======================================================================= struct init_entry_ { volatile uint32_t *loc; uint32_t value; }; static __INLINE void writeregs(const struct init_entry_ *p) { for (; p->loc; p ++) *p->loc = p->value; } //======================================================================= void SystemInit(void) { FLASH->ACR = FLASH_ACR_PRFTBE; // enable prefetch } //======================================================================= static const struct init_entry_ init_table[] = { // port setup {&RCC->AHBENR, RCC_AHBENR_GPIOCEN | RCC_AHBENR_GPIOAEN}, // GPIOC, GPIOA { &LED_PORT->MODER, GPIO_MODER_OUT << (GREEN_LED_BIT << 1) | GPIO_MODER_OUT << (BLUE_LED_BIT << 1) }, // set LED pins as outputs //SysTick setup {&SysTick->LOAD, SYSCLK_FREQ / SYSTICK_FREQ - 1}, {&SysTick->VAL, 0}, { &SysTick->CTRL, SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk }, {&SCB->SCR, SCB_SCR_SLEEPONEXIT_Msk}, // sleep while not in handler {0, 0} }; //======================================================================= int main(void) { writeregs(init_table); __WFI(); // go to sleep } //======================================================================= void SysTick_Handler(void) { static enum {BM_SLOW, BM_FAST, BM_OFF} blink_mode = BM_SLOW; static uint8_t blink_timer = BLINK_PERIOD; static uint8_t blue_led_timer = 0, green_on_time = 0; static uint8_t bstate = 0; static const uint8_t blink_period[] = {100, 50, 1}; bstate = (bstate << 1 & 0xf) | (BUTTON_PORT->IDR >> BUTTON_BIT & 1); if (blue_led_timer) { if (-- blue_led_timer == 0) LED_PORT->BRR = 1 << BLUE_LED_BIT; // blue OFF } else if (bstate == 1) { // button was released, now it is pressed - change blink mode if (++ blink_mode > BM_OFF) blink_mode = BM_SLOW; blue_led_timer = BLUE_ACK_TIME; LED_PORT->BSRR = 1 << BLUE_LED_BIT; // blue ON } if (blue_led_timer && -- blue_led_timer == 0) LED_PORT->BRR = 1 << BLUE_LED_BIT; // blue OFF if (-- blink_timer == 0) { blink_timer = blink_period[blink_mode]; green_on_time = blink_timer >> 1; LED_PORT->BRR = 1 << GREEN_LED_BIT; } else if (blink_timer == green_on_time) LED_PORT->BSRR = 1 << GREEN_LED_BIT;
// green OFF // green ON
}
98
094-103_st1.indd 98
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:14:18
Krok po kroku Kursy EP
go naciśnięcia przycisku – wtedy, gdy zmienna blue_led_ timer ma wartość różną od zera. Program demonstrujący opisane funkcjonalności zamieszczono na listingu 4.
Sterowanie LED przebiegiem PWM W kolejnym projekcie, PWMblink1, zamiast włączać i wyłączać diody będziemy zmieniać ich jasność poprzez sterowanie wypełnieniem impulsów powodujących świecenie diod. Użyjemy do tego celu timera TIM3, ponieważ może on sterować sprzętowo liniami portów, do których są dołączone diody. Nie będzie w tym projekcie potrzebny timer SysTick – do zgłaszania periodycznych przerwań użyjemy timera TIM3.
Timer jako generator PWM Mikrokontrolery STM32F05x są wyposażone w kilka modułów timerów. Poszczególne timery są do siebie podobne, chociaż ich bardziej zaawansowane własności są nieco zróżnicowane. Każdy timer jest wyposażony w preskaler, umożliwiający podział częstotliwości przebiegu zegarowego przez dowolną wartość 16-bitową. Każdy timer ma również rejestr długości okresu ARR. Timery, które mogą być użyte do generowania przebiegów PWM, są wyposażone w rejestry wartości wypełnienia dla każdego kanału – CCRx. Współczynnik wypełnienia jest określony przez iloraz wartości wypełnienia i długości okresu timera. Rejestry sterujące timera umożliwiają włączenie generowania przebiegów PWM, określenie ich polaryzacji oraz sposobu synchronizacji modyfikacji wypełnienia z okresem timera. Timer zlicza od zera do wartości zadanej w rejestrze ARR, po czym następuje wyzerowanie timera i dalsze zliczanie. Osiągnięcie przez licznik timera wartości równej wartości rejestru CCRx powoduje zmianę stanu wyjścia PWM.
Określenie parametrów czasowych Przygotowanie projektu zaczynamy od określenia wartości parametrów czasowych. W celu uniknięcia zauważalnego migotania diod częstotliwość sterujących ich świeceniem przebiegów PWM będzie równa 400 Hz. Diody będą miały 80 stopni jasności, a więc okres timera będzie równy 80 cyklom zegara wejściowego. Do określenia częstotliwości zegara timera służy preskaler. Stopień podziału preskalera zostanie wyliczony przez kompilator na podstawie wyrażenia podanego w programie. Wartości wpisywane do rejestrów preskalera i okresu timera są o jeden mniejsze od stopnia podziału i długości okresu.
Programowanie peryferiali Użycie timera do generowania przebiegu PWM wymaga zaprogramowania linii portów sterujących diodami jako wyjść timera. W celu zaprogramowania timera do generowania dwóch przebiegów PWM oraz zgłaszania przerwania na końcu okresu należy: – Ustawić linie portów używanych do sterowania diod jako wyjścia timera TIM3 (funkcja AF) poprzez zapis do rejestru MODER portu GPIOC. – Włączyć timer poprzez ustawienie bitu w rejestrze APB1ENR. – Ustawić wartość preskalera w rejestrze PSC. – Ustawić okres timera w rejestrze ARR.
– Ustawić początkowe wartości wypełnień w rejestrach CCRx. – Włączyć tryb PWM z buforowaniem rejestrów CCRx poprzez zapis rejestru CCMR2. – Włączyć sterowanie wyjść PWM przez timer poprzez zapis do rejestru CCER. – Włączyć zgłaszanie przerwań na końcu okresu timera – rejestr DIER. – Włączyć automatyczne ładowanie okresu i uruchomić timer – rejestr CR1. – Włączyć przerwanie timera w sterowniku przerwań – rejestr ISER[0].
Obsługa przerwania timera Przerwanie timera TIM3 jest zgłaszane z częstotliwością 400 Hz. Procedura obsługi przerwania musi skasować zgłoszenie przerwania poprzez zapis bitu o wartości 0 na odpowiednią pozycję rejestru SR timera, zawierającego znaczniki przerwań; w przeciwnym przypadku procedura obsługi przerwania timera byłaby wywoływana ciągle. Ponieważ pozostałe czynności będą wykonywane z częstotliwością 100 Hz, użyjemy zmiennej tdiv zliczającej przerwania i instrukcji warunkowej z blokiem warunkowym wykonywanym co cztery przerwania – gdy dwa najmniej znaczące bity tdiv będą miały wartość 0. Obsługa przerwania jest podobna do obsługi z poprzedniego przykładu, tym razem jednak nie będziemy zaświecać i gasić diod poprzez ustawienie stanu linii portu – zamiast tego będziemy modyfikować ich jasność poprzez ustawienie wypełnienia w rejestrach CCRx. W naszym przykładzie diody nie będą całkowicie gaszone, zmieniana będzie tylko ich jasność pomiędzy minimalną i maksymalną. Służą do tego stałe LED_MAX i LED_DIM. Odpowiedni program demonstracyjny zamieszczono na listingu 5.
Płynna zmiana jasności diod Kolejny projekt będzie zmodyfikowaną wersją poprzedniego. Tym razem zmiana jasności diod nie będzie następowała natychmiast, lecz płynnie. Przejście od jasności minimalnej do maksymalnej zajmie ok. 1/5 sekundy. Osiągniemy to poprzez wprowadzenie zmiennych przechowujących docelowe wartości wypełnień i powolną modyfikację wartości rejestrów wypełnień w przerwaniu timera poprzez ich inkrementację lub dekrementację, aż do uzyskania wartości zadanej. Gotowy projekt nosi nazwę PWMblink2. Oprogramowanie ma taką samą strukturę, jak poprzednio. Różni się ono od poprzedniej wersji projektu w następujących szczegółach: – Wprowadzono zmienne blue_target i green_target przechowujące zadane docelowe wartości wypełnienia dla obu diod. – Ustawienie docelowej wartości wypełnienia następuje poprzez zapis zmiennej (a nie, jak poprzednio, przez zapis rejestru CCRx). – W każdym przerwaniu timera następuje porównanie rejestrów wypełnień ze zmiennymi wypełnień zadanych, a w przypadku stwierdzenia różnicy – inkrementacja lub dekrementacja rejestru wypełnienia. Służą do tego dwie instrukcje warunkowe umieszczone na końcu procedury obsługi przerwania TIM3.
ELEKTRONIKA PRAKTYCZNA 8/2013
094-103_st1.indd 99
99
2013-07-25 11:14:18
#include „stm32f0xx.h” //======================================================================= // defs for STM32F05x chips #define GPIO_MODER_OUT 1 #define GPIO_MODER_AF 2 #define TIM_CCMR2_OC3M_PWM1 0x0060 // OC3M[2:0] - PWM mode 1 #define TIM_CCMR2_OC4M_PWM1 0x6000 // OC3M[2:0] - PWM mode 1 typedef __IO uint32_t * __IO32p; //======================================================================= // defs for STM32F0DISCOVERY board #define LED_PORT GPIOC #define BLUE_LED_BIT 8 #define GREEN_LED_BIT 9 #define BUTTON_PORT GPIOA #define BUTTON_BIT 0 #define BLUE_LED_PWM TIM3->CCR3 #define GREEN_LED_PWM TIM3->CCR4 //======================================================================= // Timings #define SYSCLK_FREQ HSI_VALUE #define BLINK_PERIOD 50 // * 10 ms // PWM constants #define PWM_FREQ 400 // Hz #define PWM_STEPS 80 #define PWM_CLK SYSCLK_FREQ #define PWM_PRE (PWM_CLK / PWM_FREQ / PWM_STEPS) #define LED_MAX (PWM_STEPS - 1) #define LED_DIM 1 #define LED_OFF 0 //======================================================================= struct init_entry_ { volatile uint32_t *loc; uint32_t value; };
Krok po kroku Kursy EP
Listing 5. Program demonstracyjny – sterowanie LED przebiegiem PWM /* STM32F0DISCOVERY tutorial TIM3 PWM blinker with table-driven init and blink mode switching gbm, 12’2012 */
static __INLINE void writeregs(const struct init_entry_ *p) { for (; p->loc; p ++) *p->loc = p->value; } //======================================================================= void SystemInit(void) { FLASH->ACR = FLASH_ACR_PRFTBE; // enable prefetch } //======================================================================= static const struct init_entry_ init_table[] = { // port setup {&RCC->AHBENR, RCC_AHBENR_GPIOCEN | RCC_AHBENR_GPIOAEN}, // GPIOC, GPIOA {&LED_PORT->MODER, GPIO_MODER_AF << (GREEN_LED_BIT << 1) | GPIO_MODER_AF << (BLUE_LED_BIT << 1)}, // set LED pins as AF {&RCC->AHBENR, RCC_AHBENR_GPIOAEN}, // GPIOA // PWM timer setup - TIM3 {&RCC->APB1ENR, RCC_APB1ENR_TIM3EN}, // TIM3 {(__IO32p)&TIM3->PSC, PWM_PRE - 1}, {(__IO32p)&TIM3->ARR, PWM_STEPS - 1}, // blue - CH3, green - CH4 {(__IO32p)&BLUE_LED_PWM, LED_DIM}, {(__IO32p)&GREEN_LED_PWM, LED_DIM}, {(__IO32p)&TIM3->CCMR2, TIM_CCMR2_OC4M_PWM1 | TIM_CCMR2_OC4PE | TIM_CCMR2_OC3M_PWM1 | TIM_CCMR2_OC3PE}, // PWM mode 1, buffered preload {(__IO32p)&TIM3->CCER, TIM_CCER_CC4E | TIM_CCER_CC3E}, // enable CH3, 4 output {(__IO32p)&TIM3->DIER, TIM_DIER_UIE}, // enable update interrupt {(__IO32p)&TIM3->CR1, TIM_CR1_ARPE | TIM_CR1_CEN}, // auto reload, enable // interrupts and sleep {&NVIC->ISER[0], 1 << TIM3_IRQn}, // enable interrupt {&SCB->SCR, SCB_SCR_SLEEPONEXIT_Msk}, // sleep while not in handler {0, 0} }; //======================================================================= int main(void) { writeregs(init_table); __WFI(); // go to sleep } //======================================================================= void TIM3_IRQHandler(void) { static uint8_t blink_timer = BLINK_PERIOD; static enum {BM_SLOW, BM_FAST, BM_OFF} blink_mode = BM_SLOW; static uint8_t bstate = 0; static uint8_t blue_led_timer = 0, on_time = 0; static const uint8_t blink_periods[] = {100, 50, 1}; static uint8_t tdiv; TIM3->SR = ~TIM_SR_UIF; // clear interrupt flag if ((++ tdiv & 3) == 0) { // 100 Hz bstate = (bstate << 1 & 0xf) | (BUTTON_PORT->IDR >> BUTTON_BIT & 1); if (blue_led_timer) { if (-- blue_led_timer == 0) BLUE_LED_PWM = LED_DIM; } if (bstate == 1)
100
ELEKTRONIKA PRAKTYCZNA 8/2013
094-103_st1.indd 100
2013-07-25 11:14:18
Krok po kroku Kursy EP
Listing 5. c.d. { // button was released, now it is pressed - change blink mode if (++ blink_mode > BM_OFF) blink_mode = BM_SLOW; blue_led_timer = 100; BLUE_LED_PWM = LED_MAX; } if (-- blink_timer == 0) { blink_timer = blink_periods[blink_mode]; on_time = blink_timer >> 1; GREEN_LED_PWM = LED_DIM; } else if (blink_timer == on_time) GREEN_LED_PWM = LED_MAX; } }
Przetwornik analogowo-cyfrowy Mikrokontrolery STM32F051 jest wyposażony w 12-bitowy przetwornik analogowo-cyfrowy, umożliwiający pomiar napięć zewnętrznych, a także wewnętrznego wzorca napięcia odniesienia oraz napięcia generowanego przez wbudowany w mikrokontroler czujnik temperatury. W celu zademonstrowania działania przetwornika użyjemy czujnika temperatury. Oprogramowanie będzie sterowało diodami LED na podstawie odczytu temperatury. Gdy temperatura będzie rosła – zaświeci się dioda zielona. Podczas spadku temperatury będzie świeciła dioda niebieska. W ten sposób użytkownik będzie miał
możliwość sterowania świeceniem diod poprzez dotknięcie obudowy mikrokontrolera palcem. Skorzystamy z poprzedniego projektu, zachowując sterowanie PWM z powolnym rozjaśnianiem i ściemnianiem. Gotowy projekt nosi nazwę ADC-ts.
Algorytm Ponieważ odczyty przetwornika analogowo-cyfrowego zazwyczaj są niestabilne, program powinien zapewniać odpowiednią ich filtrację (uśrednianie). Wyniki pomiarów będą odczytywane ze stałą częstotliwością w przerwaniu timera. Obliczane będą dwie uśrednione wartości odczy-
Listing 6. Program demonstracyjny – obsługa przetwornika A/D /* STM32F0DISCOVERY tutorial TIM3 PWM LED control by ADC temperature sensor gbm, 12’2012 */ #include „stm32f0xx.h” //======================================================================= // defs for STM32F05x chips #define GPIO_MODER_OUT 1 #define GPIO_MODER_AF 2 #define TIM_CCMR2_OC3M_PWM1 0x0060 // OC3M[2:0] - PWM mode 1 #define TIM_CCMR2_OC4M_PWM1 0x6000 // OC4M[2:0] - PWM mode 1 #define ADC_SMPR_71_5 6 typedef __IO uint32_t * __IO32p; //======================================================================= // defs for STM32F0DISCOVERY board #define LED_PORT GPIOC #define BLUE_LED_BIT 8 #define GREEN_LED_BIT 9 #define BUTTON_PORT GPIOA #define BUTTON_BIT 0 #define BLUE_LED_PWM TIM3->CCR3 #define GREEN_LED_PWM TIM3->CCR4 //======================================================================= // Timings #define SYSCLK_FREQ HSI_VALUE // PWM constants #define PWM_FREQ 400 // Hz #define PWM_STEPS 50 #define PWM_CLK SYSCLK_FREQ #define PWM_PRE (PWM_CLK / PWM_FREQ / PWM_STEPS) #define BLUE_LED_PWM TIM3->CCR3 #define GREEN_LED_PWM TIM3->CCR4 #define LED_MAX (PWM_STEPS - 1) #define LED_DIM 1 // temperature sensor parms #define LONG_AVG_SHIFT 4 #define SHORT_AVG_SHIFT 8 #define T_DELTA 2 //======================================================================= struct init_entry_ { volatile uint32_t *loc; uint32_t value; }; static __INLINE void writeregs(const struct init_entry_ *p) { for (; p->loc; p ++) *p->loc = p->value; } //======================================================================= void SystemInit(void) { FLASH->ACR = FLASH_ACR_PRFTBE; // enable prefetch } //======================================================================= static const struct init_entry_ init_table[] = { // port setup {&RCC->AHBENR, RCC_AHBENR_GPIOCEN | RCC_AHBENR_GPIOAEN}, // GPIOC, GPIOA { &LED_PORT->MODER, GPIO_MODER_AF << (GREEN_LED_BIT << 1) | GPIO_MODER_AF << (BLUE_LED_BIT << 1)
ELEKTRONIKA PRAKTYCZNA 8/2013
094-103_st1.indd 101
101
2013-07-25 11:14:18
Krok po kroku Kursy EP
Listing 6. c.d. }, // set LED pins as AF {&RCC->AHBENR, RCC_AHBENR_GPIOAEN}, // GPIOA // ADC setup {&RCC->APB2ENR, RCC_APB2ENR_ADC1EN}, // ADC {&ADC1->CHSELR, ADC_CHSELR_CHSEL16}, // ADC {&ADC1->SMPR, ADC_SMPR_71_5}, // ADC {&ADC->CCR, ADC_CCR_TSEN | ADC_CCR_VREFEN}, // ADC {&ADC1->CFGR1, ADC_CFGR1_WAIT | ADC_CFGR1_CONT}, // ADC // ADC cal {&ADC1->CR, ADC_CR_ADCAL}, // ADC // PWM timer setup - TIM3 {&RCC->APB1ENR, 1 << 1}, // TIM3 {(__IO32p)&TIM3->PSC, PWM_PRE - 1}, {(__IO32p)&TIM3->ARR, PWM_STEPS - 1}, // blue - CH3, green - CH4 { (__IO32p)&TIM3->CCMR2, TIM_CCMR2_OC4M_PWM1 | TIM_CCMR2_OC4PE | TIM_CCMR2_OC3M_PWM1 | TIM_CCMR2_OC3PE }, // PWM mode 1, buffered preload {(__IO32p)&TIM3->CCER, TIM_CCER_CC4E | TIM_CCER_CC3E}, // enable CH3, 4 output {(__IO32p)&TIM3->DIER, TIM_DIER_UIE}, // enable update interrupt {(__IO32p)&TIM3->CR1, TIM_CR1_ARPE | TIM_CR1_CEN}, // auto reload buffer, enable // interrupts and sleep {&NVIC->ISER[0], 1 << TIM3_IRQn}, // enable interrupt {&SCB->SCR, SCB_SCR_SLEEPONEXIT_Msk}, // sleep while not in handler {0, 0} }; //======================================================================= int main(void) { writeregs(init_table); __WFI(); // go to sleep } //======================================================================= void TIM3_IRQHandler(void) { static uint8_t tdiv = 0; static uint8_t blue_target = LED_DIM, green_target = LED_DIM; static uint32_t long_avg, short_avg; uint32_t val; TIM3->SR = ~TIM_SR_UIF;
// clear interrupt flag
if ((++ tdiv & 3) == 0) { // 100 Hz if (ADC1->ISR & ADC_ISR_EOC) { val = ADC1->DR; // 0 before first conversion if (short_avg == 0) { // initial measure - set short_avg = val << SHORT_AVG_SHIFT; long_avg = val << LONG_AVG_SHIFT; } else { // low-pass filters short_avg = short_avg + val - (short_avg >> SHORT_AVG_SHIFT); long_avg = long_avg + val - (long_avg >> LONG_AVG_SHIFT); if ((short_avg >> SHORT_AVG_SHIFT) == (long_avg >> LONG_AVG_SHIFT)) { // stable blue_target = LED_DIM; green_target = LED_DIM; } else if ((short_avg >> SHORT_AVG_SHIFT) > (long_avg >> LONG_AVG_SHIFT) + T_DELTA) { // warming up blue_target = LED_DIM; green_target = LED_MAX; } else if ((short_avg >> SHORT_AVG_SHIFT) + T_DELTA < (long_avg >> LONG_AVG_SHIFT)) { // cooling blue_target = LED_MAX; green_target = LED_DIM; } } } else if (ADC1->ISR & ADC_ISR_ADRDY) { // ready for conversion ADC1->CR = ADC_CR_ADSTART | ADC_CR_ADEN; // start cont. conversion } else if ((ADC1->CR & (ADC_CR_ADCAL | ADC_CR_ADEN)) == 0) { // calibrated but not enabled yet - enable ADC1->CR = ADC_CR_ADEN; } } if ((val = BLUE_LED_PWM) != blue_target) BLUE_LED_PWM = val < blue_target ? val + 1 : val - 1; if ((val = GREEN_LED_PWM) != green_target) GREEN_LED_PWM = val < green_target ? val + 1 : val - 1; }
102
ELEKTRONIKA PRAKTYCZNA 8/2013
094-103_st1.indd 102
2013-07-25 11:14:18
Krok po kroku Kursy EP
tów – krótko- i długoterminowa. Sterowanie jasnością diod będzie bazowało na różnicy tych średnich. Zaświecenie diody nastąpi, gdy średnia krótkoterminowa będzie różniła się od średniej długoterminowej nie mniej, niż o wartość progową zadaną poprzez stałą T_DELTA. Na uwagę zasługuje zastosowany algorytm filtracji wyników pomiarów, niewymagający przechowywania wyników ostatnich pomiarów. Program przechowuje dwie sumy pomiarów – krótko- i długoterminową. Przy każdym pomiarze od każdej sumy odejmowana jest wartość średnia, obliczona przez podzielenie sumy przez stałą i dodawana jest wartość bieżącego pomiaru. Ponieważ liczba sumowanych wartości próbek jest potęgą liczby 2, dzielenie jest realizowane przez przesunięcie bitowe. Liczby uśrednianych próbek są zdefiniowane przez stałe SHORT_ AVG_SHIFT i LONG_AVG_SHIFT – są to logarytmy binarne z liczb uśrednianych wyników pomiarów. Przy pierwszym pomiarze następuje zainicjowanie obu wartości uśrednionych wynikiem pomiaru.
Zaprogramowanie przetwornika Przetwornik analogowo-cyfrowy zaimplementowany w kładach STM32F05x jest dość złożony, dlatego warto poświęcić mu nieco więcej uwagi. Producent zaleca przeprowadzenie procedury automatycznej kalibracji przetwornika przy starcie mikrokontrolera. Zarówno kalibracja, jak i przygotowanie przetwornika do pracy zajmują pewien czas (dziesiątki mikrosekund). Aby uniknąć programowego oczekiwania na zakończenie tych czynności warto odpowiednio zaprojektować obsługę przetwornika w przerwaniu timera. Początkowe programowanie przetwornika składa się z sześciu kolejnych czynności: – Włączenia przetwornika – zapis do rejestru APB2ENR. – Wyboru wejścia pomiarowego – czujnika temperatury (kanał 16) w rejestrze CHSELR. – Określenia okresu próbkowania – rejestr SMPR. – Włączenia źródła napięcia odniesienia i czujnika temperatury – rejestr CCR. – Wyboru trybu pracy przetwornika – pomiary ciągłe z automatycznym wyzwalaniem kolejnego pomiaru po odczycie wyniku przetwarzania – rejestr CFGR1. – Zainicjowania procedury kalibracji – rejestr CR. Po wykonaniu tych czynności następuje rozpoczęcie kalibracji.
Obsługa przetwornika w przerwaniu timera Po zainicjowaniu kalibracji przetwornik nie jest jeszcze gotowy do pracy. Uruchomienie przetwornika nastąpi w procedurze obsługi przerwania timera. Podobnie, jak w poprzednim projekcie, procedura ta będzie wywoływana z częstotliwością 400 Hz, jednak większość czynności będzie wykonywana z częstotliwością 100 Hz.
W trakcie działania programu przetwornik ADC będzie kolejno znajdował się w jednym z trzech stanów: – kalibracji, – przygotowania do pracy, – pomiarów. Po uruchomieniu pomiarów przetwornik pozostanie w stanie pomiarów. Bieżący stan przetwornika jest określany przez oprogramowanie na podstawie wartości rejestrów sterujących. W stanie pomiarów w rejestrze ISR jest ustawiony bit EOC. W stanie przygotowania do pracy bit EOC jest wyzerowany, ale ustawiony jest bit ADRDY. W stanie kalibracji oba wymienione bity rejestru ISR są wyzerowane, a zakończenie kalibracji może być rozpoznane na podstawie zerowych wartości bitów ADCAL i ADEN w rejestrze CR. Sekwencja instrukcji if-then-else zapewnia przejście od kalibracji poprzez włączenie przetwornika do stanu pomiaru. Po wykryciu zakończenia kalibracji przetwornik zostanie włączony poprzez ustawienie bitu ADEN w rejestrze CR. Instrukcja ta zostanie wykonana tylko jeden raz – w ostatnim bloku else if. Bezpośrednio po włączeniu przetwornik nie jest jeszcze gotowy do pomiarów. Ponieważ pomiary nie zostały rozpoczęte, bit EOC w rejestrze ISR będzie miał wartość 0, co spowoduje pominięcie pierwszego bloku if i przejście do kolejnego else if, w którym następuje sprawdzenie gotowości przetwornika do rozpoczęcia pomiarów i rozpoczęcie pomiarów poprzez ustawienie bitu ADSTART w rejestrze CR. Instrukcja ta wykona się tylko jeden raz – przy kolejnych wykonaniach będzie już spełniony warunek pierwszego bloku if. W bloku tym jest odczytywany wynik pomiaru, a następnie, w zależności od tego, czy jest to pierwszy pomiar czy kolejny, następuje zainicjowanie albo aktualizacja wartości uśrednionych i wysterowanie LED na ich podstawie. Odczyt wyniku spowoduje wyzwolenie kolejnego pomiaru, którego wynik będzie pobrany w następnym przerwaniu timera.
Sterowanie świeceniem diod Kolejna instrukcja if w obsłudze przerwania timera służy do zaświecania i gaszenia diod na podstawie odczytów temperatury. Decyzja o stanie diod jest podejmowana na podstawie porównania dwóch średnich – krótko- i długoterminowej. Wartości obu średnich są wyznaczone poprzez przesunięcie w prawo wartości odpowiednich sum, co jest równoważne ich podzieleniu przez liczbę filtrowanych wyników pomiarów Jeżeli obie średnie pomiarów są równe, diody są przyciemniane. Jeśli średnia krótkoterminowa jest większa o wartość progową lub więcej od średniej długoterminowej, jest rozjaśniana dioda zielona, sygnalizująca wzrost temperatury. Jeśli średnia krótkoterminowa jest mniejsza od średniej długoterminowej o wartość progową lub więcej, rozjaśniana jest dioda niebieska, sygnalizująca spadek temperatury.
Grzegorz Mazur [email protected]
ELEKTRONIKA PRAKTYCZNA 8/2013
094-103_st1.indd 103
103
2013-07-25 11:14:18
PODZESPOŁY
Nowe STM32 z Cortex-M0 w TSSOP20: rodzina STM32F030 Firma STMicroelectronics wprowadza do produkcji nową podrodzinę mikrokontrolerów o nazwie STM32F0 Value Line. Wyposażono je w 32-bitowy rdzeń Cortex-M0 taktowany do 48 MHz i wszystkie podstawowe peryferia komunikacyjne oraz przetwornik A/C. Mikrokontrolerom 8-bitowym przybył poważny przeciwnik! Producent oznaczył nową rodzinę mikrokontrolerów symbolem STM32F030, można się spodziewać, że ostatnie „0” w oznaczeniu wraz z rozwojem podrodziny przybierze także inne wartości. Nowe mikrokontrolery należą do rodziny STM32F0, której jedną z najważniejszych cech charakterystycznych jest wyposażenie w rdzeń Cortex-M0 (taktowany do 48 MHz). Podrodzinę STM32F030 producent nazwał Value Line, co w nomenklaturze firmy STMicroelectronics oznaczało niższą cenę elementów niż wersji klasycznych i jednocześnie nieco mniej szczegółowe testowanie parametrów każdego wyprodukowanego mikrokontrolera. Redukcja ceny nie odbiła się zbytnio na wyposażeniu mikrokontrolerów, co widać na rysunku 1, na którym pokazano uproszczone schematy blokowe dostępnych obecnie mikrokontrolerów STM32F0. Częstotliwość taktowania CPU we wszystkich podrodzinach STM32F0 wynosi maksymalnie 48 MHz. Uproszczenia konstrukcyjne wprowadzone do prezentowanych mikrokontrolerów nie są – patrząc od strony praktycznej - dotkliwe dla konstruktorów, nowe mikro-
kontrolery wyposażono bowiem we wszystkie podstawowe peryferia komunikacyjne (w zależności od typu: 1 lub 2×SPI/I2C/ UART), szybki przetwornik A/C (12-bitowy, 12 lub 18 kanałów, częstotliwość próbkowania do 1 MSps) i spore zasoby pamięci Flash/SRAM, które zestawiono w tabeli 1. Redukcji nie podległ także blok sprzętowego CRC, który może być wykorzystywany do kontroli poprawności zawartości pamięci Flash, konstruktorzy układów zachowali także w nowych mikrokontrolerach 5-kanałowy sterownik DMA oraz kalibrowalny czujnik temperatury. Jednym z najłatwiejszych do zauważenia, w zasadzie tylko formalnym, „pogorszeń” parametrów nowych mikrokontrolerów jest podane w nocie katalogowej zawężenie dopuszczalnych wartości napięcia zasilającego do przedziału 2,4…3,6 VDC (vs. 2,0…3,6 VDC w klasycznych rodzinach STM32F05x), co nie wynika jednak ze zmia-
Rys. 1. Uproszczone schematy blokowe podrodzin mikrokontrolerów STM32F0
104
104-105_stm32f030.indd 104
ny technologii produkcji lub modyfikacji wewnątrz mikrokontrolerów, ale braku gwarancji poprawnej pracy tych mikrokontrolerów, co wynika jedynie z uproszczenia i skrócenia procedur testowych na linii produkcyjnej. Jest więc duża szansa, że mikrokontrolery STM32F0 Value Line będą pracowały prawidłowo już od 2 V, ale trzeba pamiętać, że producent tego nie gwarantuje. Programowanie pamięci Flash oraz debugowanie pracy prezentowanych mikrokontrolerów umożliwia 2-przewodowy interfejs SWD, z którym kompatybilny jest programator-debugger ST-LINK firmy STMicroelectronics, a także jego polski odpowiednik ZL30PRGv2 (firmy KAMAMI). „Cyfrowe” linie GPIO mikrokontrolerów prezentowanych w artykule są przystosowane do współpracy z układami cyfrowymi zasilanymi napięciem 5 V, wejścia współdzielone z analogowym multiplekserem A/C są przystosowane do napięć nie większych niż 3,3 V. Na rysunku 2 pokazano dostępne wersje mikrokontrolerów STM32F030, ich pamięci i obudowy.
Rys. 2. Dostępne wersje mikrokontrolerów STM32F030, ich pamięci i obudowy ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:13:56
Nowe STM32 z Cortex-M0 w TSSOP20: rodzina STM32F030 Tab. 1. Zestawienie najważniejszych elementów wyposażenia i parametrów mikrokontrolerów STM32F0 Value Line Typ STM32F030C6 STM32F030C8 STM32F030F4 STM32F030K6 STM32F030R8
Obudowa LQFP48 LQFP48 TSSOP20 LQFP 32 LQFP 64
Flash [kB]
SRAM [kB]
32 64 16 32 64
4 8 4 4 8
Liczba timerów 16-bitowych (IC/OC/ PWM) 4×16-bit 5×16-bit 4×16-bit 4×16-bit 5×16-bit
Przetwornik A/C
Inne timery 24-bit 24-bit 24-bit 24-bit 24-bit
downcounter; downcounter; downcounter; downcounter; downcounter;
2×WDG; 2×WDG; 2×WDG; 2×WDG; 2×WDG;
RTC RTC RTC RTC RTC
1×12-bit 1×12-bit 1×12-bit 1×12-bit 1×12-bit
Liczba I/O 39 39 15 27 55
Interfejsy komunikacyjne 1×I2C; 2×I2C; 1×I2C; 1×I2C; 2×I2C;
1×SPI; 2×SPI; 1×SPI; 1×SPI; 2×SPI;
1×USART 2×USART 1×USART 1×USART 2×USART
Cortex-M0 w ofercie STMicroelectronics Rdzeń mikrokontrolerów STM32F0 - najmniejszy w rodzinie ARM Cortex-M: Cortex-M0 - jest we wszystkich obecnie produkowanych mikrokontrolerach przystosowany do taktowania sygnałem zegarowym o częstotliwości do 48 MHz, przy której osiąga wydajność ok. 38 DMIPS i uzyskuje 68 punktów w testach wydajności CoreMark. W skład standardowego wyposażenia mikrokontrolerów STM32F0 wchodzą m.in.: 12-bitowe przetworniki A/C i C/A, szybkie linie GPIO z możliwością obsługi nastawników pojemnościowych (także suwaków i „obrotowych” - łącznie do 18 pól czujnikowych) i sprzętowy kontroler PMSM (Permanent Magnet Synchronous Motor). W zależności od typu mikrokontrolera, użytkownik ma do dyspozycji od 16 do 64 kB Flash, 4 lub 8 kB SRAM i obudowy o liczbie pinów od 20 (TSSOP20), przez 32 (UFQFPN32 i LQFP32) i 48 (LQFP48), aż do 64 (LQFP64). Standardowym wyposażeniem rodziny STM32F0 jest ponadto 5-kanałowy kontroler DMA, szybki - do 1 Mb/s - interfejs I2C, interfejs SPI z obsługą CEC-HDMI i elastycznie ustawianą długością ramki danych (od 4 do 16 bitów @18Mb/s), szybki USART (do 6 Mb/s), programowalne 16-/32-bitowe timery z możliwością generacji 3-fazowego przebiegu PWM i 17 liniami capture/compare, a także wygodny w obsłudze wbudowany RTC z kalendarzem zliczającym w kodzie BCD. Prezentowane mikrokontrolery wyposażono w interfejs do programowania i debugowania o nazwie SWD, który występuje także w starszych mikrokontrolerach STM32, nie wbudowano w nie natomiast interfejsu JTAG. Zastosowany w mikrokontrolerach STM32F0 blok wspomagający debugowanie jest rozszerzoną wersją standardowego rozwiązania firmy ARM, dzięki czemu m.in. programista może zarządzać sygnałami zegarowymi i przypisaniami funkcjonalnymi linii GPIO czy testować pracę mikrokontrolera w trybie obniżonego poboru mocy. Zastosowanie w mikrokontrolerach STM32F0 stosunkowo niewielkiego (pod względem zajmowanej powierzchni na płytce krzemowej) rdzenia, pozwoliło producentowi uzyskać niewielki pobór prądu, który producent deklaruje na poziomie ok. 5,3 μA w trybie STOP, poniżej 3 μA w trybie STANDBY i ok. 250 μA/MHz podczas normalnej pracy (dla samego rdzenia). Napięcie zasilania prezentowanych układów powinno się mieścić w zakresie 2,0...3,6 VDC, a dopuszczalne zakresy temperatur pracy to: -40...+85oC lub -40...+105oC. W strukturach mikrokontrolerów rozdzielono napięcia zasilające część analogową i cyfrową, co pozwala zminimalizować wpływ zakłóceń przenoszonych przez linie zasilające do czułych elementów torów analogowych (m.in. konwersji A/C, pętli PLL). Producent dużo uwagi skierował na zapewnienie bezpieczeństwa aplikacji, w których pracują mikrokontrolery STM32F0, co przejawia się m.in. wyposażenie pamięci SRAM w sprzętowy kontroler parzystości, kontroler CRC dla pamięci Flash, dwa watchdogi i system monitorowania poprawności taktowania z automatycznym przełączaniem na wewnętrzne źródło sygnału zegarowego. Mikrokontrolery wyposażono także w rejestry z niepowtarzalnymi 96-bitowymi numerami ID, za pomocą których można identyfikować urządzenia z wbudowanymi mikrokontrolerami. Na rysunku obok przedstawiono charakterystyki klasycznych modeli STM32F0.
Mikrokontrolery Value Line są oferowane w obudowach TSSOP20 oraz LQFP z 32/48 lub 64 pinami, wszystkie obecnie oferowane modele mogą pracować z otoczeniu o temperaturze od –40 do +85oC. Nasz skrótowy, szykowany na „gorąco” dzień przed oficjalnym wprowadzeniem nowych mikrokontrolerów na rynek, przegląd
cech, możliwości i wyposażenia mikrokontrolerów STM32F030 wyraźnie pokazuje, że 8-bitowcom przybył kolejny, bardzo groźny konkurent. Tym groźniejszy, że producent obiecuje „okrągłą” cenę 32 centów (czyli zaledwie 1 cent za każdy 1 bit magistrali danych CPU) za wybrane wersje nowych mikrokontrolerów. Cena będzie obowiązy-
wać – oczywiście – dla ilości hurtowych, ale firma STMicroelectronics nauczyła nas swoimi dotychczasowymi działaniami, że także nie-hurtownicy będą mogli czerpać korzyści wynikające z agresywnej, ale przemyślanej i przez to skutecznej polityki cenowej.
Piotr Zbysiński, EP
REKLAMA
ELEKTRONIKA PRAKTYCZNA 8/2013
104-105_stm32f030.indd 105
105
2013-07-25 11:13:56
PODZESPOŁY
PSoC4 – Pierwszy PSoC z ARM Cortex M0 W marcu 2013 firma Cypress znana z produkcji bardzo interesujących rozwiązań PSoC wprowadziła na rynek kolejną rodzinę układów PSoC4. Są to pierwsze PSoC’e oparte o 32-bitową architekturę ARM-Cortex M0, o dobrej wydajności, w przystępnej cenie i o najniższym w klasie poborze mocy.
Rysunek 1. Schemat blokowy układów z rodziny PSoC4 (z noty katalogowej producenta) Jednocześnie do oferty wprowadzono zestaw uruchomieniowy PSoC 4 Pioneer Kit (CY8CKIT-042), którego sercem jest układ CY8C4245AXI oraz wbudowany programator/debugger oparty o PSoC5 (procesor z serii 5; po zmianie oprogramowania może on być użyty samodzielnie, więc nabywając zestaw mamy możliwość przetestowania dwóch rodzin PSoC). Całość zestawu uzupełnia kilka drobnych peryferiów, złącza rozszerzeń zestawu zgodne są mechanicznie z Arduino, co umożliwia użycie szerokiej gamy dostępnych płytek rozszerzeń. Miłym faktem jest wpisanie się firmy Cypress w trend innych producentów układów uruchomieniowych i dostarczenie kompletnego zestawu Pionier Kit w przystępnej cenie 25$. Jako środowisko programistycznie jest wykorzystywany, podobnie jak w pozostałych rodzinach, graficzny PSoC Creator umożliwiający konfigurowanie i programowanie układów. Jest to pełna, funkcjonalna wersja oprogramowania, bez żadnych ograniczeń wielkości kodu wynikowego, zawartości bibliotek itp. Wsparcie techniczne, między innymi ciekawa inicjatywa realizacji 100 projektów w 100 dni, jest dostępne na
106
106-109_psoc4.indd 106
Dodatkowe informacje: PSoC 4 Architecture Slick CY8CKIT-042 PSoC 4 Pioneer Kit Guide Aplication note AN79953 PSoC 4 PSoC 4100 Family Datasheet
Rysunek 2. Wygląd zestawu Pionier Kit (z noty katalogowej producenta)
magistralą sprzęgającą bloki wewnętrzportalu www.element14.com/PSoC4 i na strone i programowaną matrycą połączeniową nie producenta. sprzęgającą bloki wewnętrzne z GPIO. Schemat blokowy mikrokontrolera Rodzinę PSoC4 podzielono na dwie sePSoC4 pokazano na rysunku 1. Oprócz rie: PSoC4100 i PSoC4200. Różnią się one wspomnianego wcześniej rdzenia ARM Cortex-M0, konfigurowalnych układów zegarowewnętrznym wyposażeniem, głównie zwiąwych, bloku zarządzania mocą, układów bloków funkcjonalnych o ustalonych funkcjach, takich jak: UART, Timery, PWM, driver wyświetlaczy LCD, PSoC4 ma konfigurowalny blok funkcji cyfrowych UDB i blok analogowy PA oparty o 12-bitowy przetwornik A/C SAR, konfigurowalne wzmacniacze operacyjne, komparatory oraz układ obsługi klawiatury dotykowej. Całość jest uzupełniona szybką Rysunek 3. Zakładanie nowego projektu PSoC4 ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:13:41
PSoC4 – Pierwszy PSoC z ARM Cortex M0
Rysunek 4. Wybór układu PsoC
Rysunek 5. Obszar roboczy edytora schematów PSoC
zanym z blokiem analogowym. Zestawienie dostępnych na rynku układów umieszczono w tabeli 1. Szczególnie ciekawie zapowiadają się układy CY8C4125PVI-482 i CY8C4245PVI-482, które wkrótce będą dostępne w obudowach SSOP28, idealnych do inteligentnych aplikacji pomiarowych i automatyki domowej. Wygląd wspomnianego wcześniej zestawu uruchomieniowego wraz z opisem złącz rozszerzeń Pionier Kit przedstawia rysunek 2. Wyposażenie sprzętowe zestawu nie oszałamia. Na płytce znajduje się trójkolorowa LED, przycisk oraz pole dotykowe typu suwak – umożliwia jednak wstępne zapoznanie się z zestawem. Wbudowany procesor PSoC5 może pełnić funkcję mostu USB-Serial (konieczne dołączenie kilku przewodów) ułatwiając realizację projektów wymagających komunikacji szeregowej. Pioneer ma podstawowe złącza rozszerzeń, zgodne mechanicznie z Arduino i Pmod firmy Digilent, ułatwiające uruchomienie rzeczywistych urządzeń. Pozostałe, niewykorzystane przez Arduino i Pmod sygnały
I/O wyprowadzone są na żeńskie złącza SIL. Wybór napięcia zasilania układu jest możliwy zworą J9 pomiędzy 3,3 V a 5 V, co znacząco upraszcza korzystanie z nowoczesnych peryferiów, takich jak karty pamięci, wyświetlacze graficzne LCD i nowoczesne czujniki pomiarowe, eliminując układy konwerterów poziomów. Podobnie jak inne „mikromocowe” zestawy uruchomieniowe, Pioneer umożliwia pomiar całkowitego prądu pobieranego ze źródła zasilania w celu oceny energochłonności aplikacji. Służy do tego zwora J13, w miejsce której można włączyć miliamperomierz. Aby rozpocząć pracę z zestawem, należy ze strony producenta pobrać, zainstalować i zarejestrować oprogramowanie PSoC Creator. Jako projekt testowy przygotowałem program wykorzystujący peryferia dostępne na płytce Pioneer: przycisk SW2, diodę LED RGB, układ mostka UART-USB. Projekt umożliwia sterowanie kolorem świecenia diody za pomocą terminala szeregowego. Po wybraniu klawisza koloru („r”, „g”, „b”, „w”, „c”, „m”, „y”, klawisz „o” gasi diodę) LED
Rysunek 6. Konfiguracja wejścia SW2 i wyjścia LEDR
Tabela 1. Przegląd dostępnych mikrokontrolerów PSoC z rdzeniem ARM Cortex-M0 VCC [V]
Typ
Flash SRAM Fclk [kB] [kB] [MHz]
GPIO
PWM Timer CLK
USART
UDB
LCD
CAP SENSE
CY8C4125AXI-483
1.71-5.5
32
4
24
36
4
2
0
Y
Y
CY8C4125LQI-483
1.71-5.5
32
4
24
34
4
2
0
Y
Y
CY8C4125PVI-482* 1.71-5.5
32
4
24
22
4
2
0
Y
Y
CY8C4245AXI-483**
1.71-5.5
32
4
48
36
4
2
4
Y
Y
CY8C4245LQI-483
1.71-5.5V
32
4
48
34
4
2
4
Y
Y
32
4
48
22
4
2
4
Y
Y
CY8C4245PVI-482* 1.715.5V
A/D 12-bit 806 ksps 12-bit 806 ksps 12-bit 806 ksps 12-bit 1 msps 12-bit 1 msps 12-bit 1 msps
OPA
Obudowa
Cena za szt. w USD
2
TQFP44
1,88
2
QFN40
1,85
1
SSOP28
*
2
TQFP44
2,52
2
QFN40
2,49
1
SSOP28
*
* wkrótce ** w zestawie Pionier Kit ELEKTRONIKA PRAKTYCZNA 8/2013
106-109_psoc4.indd 107
107
2013-07-25 11:13:42
PODZESPOŁY
Rysunek 10. Konfiguracja komponentu UART
Rysunek 7. Konfiguracja zegara taktującego licznik, licznika i multipleksera zaświeca się w kolorze opowiadającym klawiszowi oraz zwraca do terminala tekst z aktualnie świecącym kolorem. Ta część zadania jest zrealizowana przez procesor Cortex-M0 przy wykorzystaniu oprogramowania w C. Drugą częścią projektu jest sterowanie LED przez programowalny blok logiczny UDB. Po
naciśnięciu przycisku SW2 dioda cyklicznie zmienia kolor. Zostało to zrealizowane przez licznik binarny i tablicę LUT z dekodowaniem stanu LED. Przełączenie „źródła” sterowania odbywa się przez multiplekser z UDB. Po uruchomieniu programu PSoC Creator, należy założyć nowy projekt (Menu File New Project) dla PSoC4 (rysunek 3) zapisać go pod nazwą Uart_RGB_Led-C_register. Za pomocą okna Workspace Editor:, po zaznaczeniu Rysunek 11. Konfiguracja magistral projektu z menu podręcznego Project Device i przewodów Selector należy wybrać układ CY8C4245AKażdy z elementów schematu musi oczyXI-483 (rysunek 4). wiście zostać połączony za pomocą przeProjekt jest już skonfigurowany dla procewodów i magistral oraz sparametryzowany sora zamontowanego na płytce Pionier. Teraz zgodnie z wymaganiami aplikacji. Odpopodobnie jak w edytorach dla układów CPLD/ wiednie konfiguracje elementów przedstaFPGA, w obszar roboczy edytora schematów wiają rysunki 6…8. należy przeciągnąć symbole przygotowanych przez producenta bloków funkcjonalnych z bibliotek Component Catalog\Cypres (rysunek 5). Edytor ma także możliwość rysowania prostych schematów otoczenia współpracującego z procesorem. Znacząco ułatwia to zrozumienie działania aplikacji i podnosi czytelność dokumentacji projektowej. Elementy zewnętrzne można „pobrać” na obszar roboczy z bibliotek Component Catalog\Off-Chip. Rysunek 12. Schemat ideowy przykładowej aplikacji
Rysunek 8. Konfiguracja tablicy LUT odpowiedzialnej za transkodowanie stanów licznika na kolor LED
Rysunek 9. Konfiguracja rejestru wyjściowego CyControlReg
108
106-109_psoc4.indd 108
Rysunek 13. Konfiguracja wyprowadzeń procesora ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:13:42
PSoC4 – Pierwszy PSoC z ARM Cortex M0
Rysunek 17. Efekt działania aplikacji w terminalu
Rysunek 14. Aplikacja sterująca
Rysunek 15. Kompilowanie aplikacji
Rysunek 16. Programowanie procesora W wypadku wejścia SW jest konieczne wybranie z zakładki General typu wejścia Resistive-PullUP, a dla wyjść LEDR, LEDG, LEDB typu OpenDrain, Drive Low. Zaznaczenie opcji HW Conection informuje kompilator o konieczności dołączenia wyprowadzenia do magistrali UDB. Wybór opcji Show External Terminal umożliwia graficzne dołączenie do wyprowadzenia przewodu lub magistrali wewnętrznej. W wypadku elementów biblioELEKTRONIKA PRAKTYCZNA 8/2013
106-109_psoc4.indd 109
tecznych o złożonych funkcjach, za pomocą kliknięcia na Datasheet otwieramy kartę katalogową z dokładnym opisem realizowanych funkcji i sposobu konfiguracji elementu. Aby zapewnić wymianę danych pomiędzy procesorem M0, a UDB, jest konieczne użycie komponentu CyControlReg. Jest to rejestr wyjściowy (jeżeli chcemy odczytać wartość z UDB, jest konieczne użycie komponentu CYStatusRegister). Konfigurację CyControl-
Reg przedstawiono na rysunku 9. Odpowiedniej Konfiguracji wymaga także komponent UART (rysunek 10). Aby schemat był kompletny, skonfigurowane bloki należy połączyć przewodami i magistralami. Przykładowe konfiguracje magistrali i przewodu dla sygnałów LT/CT pokazano na rysunku 11. Gotowy, poprawnie skonfigurowany i połączony schemat zaprezentowano na rysunku12. Kolejnym krokiem jest przypisanie podobnie jak dla układów logiki programowalnej, funkcji odpowiadającym fizycznym wyprowadzeniom procesora (rysunek 13). Służy do tego zakładka UART_Led_C_Register. Cydrw w obszarze roboczym. Ostatnim krokiem jest realizacja programowa sterowania przez UART w main.c. Przykładową aplikację pokazano na rysunku 14. Po zapisaniu efektów pracy, aplikacje należy skompilować z Menu Build Build Project (Shift+F6, rysunek 15). Przed załadowaniem aplikacji należy połączyć dostarczonymi do zestawu przewodami sygnały złącz P1_0 do P12_6 i P1_1 do P12_7 (przyporządkowanie wyprowadzeń płytki PSoC4 przedstawia rys. 2) oraz załadować program (Menu Debug Program CTRL+F5) do procesora, jak pokazano na rysunku 16. Dla sprawdzenia efektu działania aplikacji należy uruchomić terminal znakowy np. Hyperterminal lub Putty (rysunek 17) z następującymi parametrami transmisji 9600, 8, N, 1. Przyciskając klawisze „r”, „g”, „b”, „w”, „c”, „m”, „y” sprawdzamy wysterowanie diody. Klawisz „o” gasi diodę. Każdorazowa zmiana potwierdzona jest w terminalu odesłaniem łańcucha z aktualnym kolorem świecenia. Przyciskając SW2 przechodzimy do sterowania z UDB – dioda LED powinna cyklicznie zmieniać kolor świecenia. Gorąco polecam zapoznanie się z zestawem i przykładowymi aplikacjami, ponieważ rodzina PSoC4 ze względu na moc obliczeniową, bogate wyposażenie oraz przystępną cenę może nieco odmienić podejście do projektowania aplikacji, szczególnie tych, w których występują mieszane sygnały analogowe i cyfrowe oraz gdzie realizowane zadanie wymagało podziału pomiędzy oddzielne CPU i CPLD/FPGA. Bogate wyposażenie predestynuje ją do zastosowań w układach pomiarowych, regulacyjnych w automatyce, robotyce, motoryzacji i urządzeniach medycznych.
Adam Tatuś, EP
109
2013-07-25 11:13:43
SPRZĘT
Oscyloskop HMO3004 Mijają niemal dokładnie 3 lata od połączenia firm Rohde&Schwarz i Hameg. Już teraz można powiedzieć, że decyzja o przeprowadzeniu tej fuzji była korzystna dla obu producentów. Połączenie doświadczenia w zakresie konstruowania oscyloskopów, jaką miał Hameg i ogromnego kapitału R&S mogło oznaczać tylko sukces. Marka Hameg nie zniknęła całkowicie z rynku. Mimo, że obie firmy działają aktualnie z jednym znakiem firmowym (rysunek 1), zachowano dotychczasowe oznaczenia sprzętu i utrzymano zasadę nadawania nazw nowym produktom. Przykładem jest wprowadzana właśnie do sprzedaży rodzina oscyloskopów HMO3000 pracujących w paśmie od 300 do 500 MHz. Przyrządy te opracowano w pracowniach Hamega, co wynika z uzgod-
110
110-113_Hameg_HMO3004.indd 110
nień między firmami. Ustalono bowiem, że konstruowaniem i produkcją urządzeń klasy średniej (do 500 MHz) będą zajmowali się specjaliści z Hamega, ą sprzęt na pasmo powyżej 500 MHz będzie domeną R&S.
Pierwsze wrażenia Rodzinę HMO3000 przybliżymy na przykładzie oscyloskopu HMO3004, którego testy przeprowadziliśmy w redakcyj-
nym laboratorium. Jest to przyrząd klasy MSO (Mixed Signal Oscilloscope), a wiec można nim jednocześnie mierzyć sygnały analogowe i cyfrowe. Sygnały analogowe są doprowadzane do 4 kanałów oscyloskopu za pośrednictwem sond 10:1 typu HZ350 przystosowanych do pomiarów w paśmie do 350 MHz. Sondy te mają 2-stopniową kompensację częstotliwościową obejmującą zakres m.cz i w.cz. Służą do tego dwa niezależne trymery. Identyfikacja współczynnika tłumienia następuje automatycznie po dołączeniu sondy do oscyloskopu. Sygnały cyfrowe są natomiast dołączane za pośrednictwem dwóch 8-kanałowych sond cyfrowych HO3508, pracujących również z częstotliwością do 350 MHz. ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:13:17
Oscyloskop HMO3004 Oscyloskopy Hamega odznaczają się bardzo dobrymi wyświetlaczami. Ten, który zastosowano w HMO3004 ma przekątną 16,5 cm i matrycę 640×480 punktów (VGA). Wyświetlacz taki jeszcze do niedawna był marzeniem każdego użytkownika oscyloskopu cyfrowego. Dzisiaj coraz częściej spotykamy oscyloskopy z większymi ekranami, dotyczy to jednak sprzętu najwyższej klasy. Ograniczeniem w ewentualnym zastosowaniu wyświetlaczy o większych rozmiarach są w przypadku oscyloskopów HMO3000 stosunkowo niewielkie wymiary ich obudów (285 mm×175 mm×220 mm). Mimo powyższych ograniczeń, jakość tworzonych oscylogramów jest bardzo dobra, trudno mieć do nich nawet najmniejsze zastrzeżenia. Już wiemy, że obudowa oscyloskopów rodziny HMO3000 ma niewielkie wymiary, a to może budzić obawy dotyczące wygody posługiwania się elementami regulacyjnymi rozmieszczonymi na płycie czołowej przyrządu. Pod tym względem wszystko jest jednak w porządku, natomiast... należałoby zadać pytanie czy w Hamegu pracuje jeszcze konstruktor, który wymyślił umiejscowienie przycisku zamykania menu. Jeśli tak, to należy się już bać jego kolejnych pomysłów. Problem polega na tym, że często używany przycisk Menu Off ukryto gdzieś nisko, niemal pod pokrętłem zmiany czułości, w miejscu, w którym dostęp do niego jest dość niewygodny (fotografia 2). Tymczasem przycisk, z którego korzystamy tylko na początku i na końcu pracy, czyli wyłącznik zasilania, umieszczono u góry, w bardzo dobrze dostępnym miejscu, w dodatku intuicyjnie związanym właśnie z funkcją wychodzenia z menu. Efekt jest taki, że w czasie testów oscyloskop był wielokrotnie wyłączany w sposób całkowicie niezamierzony. Może to tylko efekt przyzwyczajeń z obsługi innych przyrządów, ale w tym przypadku był dość kłopotliwy. Nawiasem mówiąc, można uznać, że cała koncepcja rozmieszczenia elementów regulacyjnych na płycie przedniej oscyloskopów Hamega wydaje się być nieco odmienna od „reszty świata”, w ogólnym przypadku nie stanowi to jednak większego problemu.
MSO, czyli połączenie funkcji oscyloskopu z analizatorem stanów logicznych Funkcjonalność MSO, czyli możliwości oglądania przebiegów cyfrowych, na pewno w wielu przypadkach będzie czynnikiem decydującym o wyborze oscyloskopu HMO3004. Istotnie, jest to bardzo przydatna cecha tego przyrządu, ale trzeba pamiętać, że niewielki (jednak) rozmiar ekranu może ELEKTRONIKA PRAKTYCZNA 8/2013
110-113_Hameg_HMO3004.indd 111
Rysunek 1. Logo producenta oscyloskopu stanowić pewne utrudnienie w oglądaniu ośmiu przebiegów, nie mówiąc już o szesnastu. Aby choć trochę ułatwić to zadanie konstruktorzy Hamega przewidzieli możliwość stosowania ekranu wirtualnego. Funkcja ta jest włączana po naciśnięciu przycisku SCROLL BAR i wydłuża ekran do 20 działek osi pionowej. Fizyczny ekran stanowi teraz okno, przez które oglądamy fragment ekranu wirtualnego. Okno to jest przesuwane uniwersalnym pokrętłem regulacyjnym. Zaletą takiego rozwiązania jest możliwość obserwowania dużej liczby przebiegów, tak analogowych, jak i cyfrowych. Wadą natomiast jest to, że nie widzimy wszystkich przebiegów jednocześnie. Obserwacja relacji czasowych między wszystkimi przebiegami jest więc trochę utrudniona. Pomysł ten znalazł jednak uznanie użytkowników i rozwiązanie takie jest spotykane w oscyloskopach innych producentów. Przebiegi cyfrowe są umieszczane na ekranie w dwojaki sposób. W pierwszym wykorzystywany jest przycisk BUS, który jak wynika z nazwy umożliwia zdefiniowanie magistral (maksymalnie 2) składających się z linii cyfrowych dostępnych przez sondy cyfrowe. W skład magistral mogą również wchodzić sygnały z wejść analogowych, interpretowane oczywiście jako przebiegi cyfrowe. Oscyloskop HMO3004 ma wbudowaną funkcję analizatora protokołów. Jeśli badane przebiegi pochodzą z typowych interfejsów komunikacyjnych, takich jak: interfejs równoległy, SPI (2- i 3-przewodowy), I2C, UART, CAN, LIN, możliwa jest natychmiastowa interpretacja występujących w nich zdarzeń (rysunek 3). Użytkownik może też zdefiniować własną magistralę. Decyduje również o tym, czy poszczególne linie cyfrowe będą wyświetlane na ekranie czy stan magistrali ma być podawany symbolicznie w postaci binarnej, heksadecymalnej, dziesiętnej lub jako znaki ASCII. Dane cyfrowe mogą być ponadto wyświetlane w postaci tabelarycznej, co pozwala bardzo precyzyjne określać chwile czasowe występowania poszczególnych zdarzeń (rysunek 4). Tabela taka może być zapisywana w pamięci Flash w formacie CSV. Druga metoda wyświetlania przebiegów cyfrowych umożliwia dowolne usytuowanie każdej linii na ekranie oraz regulację wielkości oscylogramu. W ten sposób można polep-
Fotografia 2. Rozmieszczenie przycisków On/Off i Menu OFF szyć czytelność przebiegów. Tak zdefiniowaną magistralę przedstawiono w dolnej części oscylogramu z rysunku 3. Powyższe korzyści są jednak okupione rezygnacją z co najmniej jednego kanału analogowego. Kanał 3 odpo-
Rysunek 3. Interpretacja zdarzeń z pomocą analizatora protokołów
Rysunek 4. Tabelaryczna forma przedstawiania stanu badanej magistrali
111
2013-07-25 11:13:18
SPRZĘT
Rysunek 5. Pomiary z użyciem 3 kursorów
gowego kanału CH3, analogicznie włączenie BUS2 powoduje wyłączenie CH4. Analizator protokołów umożliwia wyzwalanie oscyloskopu wybranymi zdarzeniami występującymi w badanej magistrali. Na rysunku 2 zdarzeniem takim było zdekodowanie przesyłania interfejsem UART znaku 84H (ASCII ‘H’). Zdefiniowanie zdarzenia wymaga przejścia przez wielopoziomowe menu. Nie jest to czynność bardzo trudna i męcząca, ale wydaje się, że istnieją lepsze rozwiązania. Tak czy inaczej, obserwowanie przebiegów na magistralach cyfrowych z jednoczesną detekcją zdarzeń jest niezwykle przydatną funkcjonalnością oscyloskopu HMO3004.
Obliczenia i pomiary
Rysunek 6. Statystyka pomiarów automatycznych
Rysunek 7. Oscylogram wyświetlany po analizie przycisku Quick View
Rysunek 8. Kursorowe pomiary widma wiada alternatywnemu wyświetlaniu przebiegów D0...D7, a kanał 4 może być zastępowany przebiegami D8...D15. W obydwu przypadkach istnieje zależność między jednoczesną dostępnością kanałów cyfrowych i analogowych. Włączenie magistrali BUS1 powoduje automatyczne odłączenie analo-
112
110-113_Hameg_HMO3004.indd 112
Wracamy do podstawowych funkcji oscyloskopu HMO3004, czyli do badania sygnałów doprowadzonych przez wejścia analogowe. W dawnych czasach, gdy w użyciu były oscyloskopy analogowe, ich użytkownicy mieli opracowane różne sztuczki mnemotechniczne, pozwalające szybko obliczać wartości liczbowe na podstawie wielkości oscylogramu, tego ile działek ekranowych zajmuje itp. Na przykład do szacunkowego, ale z inżynierską dokładnością, obliczenia częstotliwości sygnału wystarczyło tak ustawić podstawę czasu, aby w dziesięciu działkach zmieściło się jak najwięcej okresów przebiegu. Jednocześnie oscylogram musiał być na tyle czytelny, by było możliwe obliczenie liczby tych okresów. Jeśli podstawa czasu była wielokrotnością lub podwielokrotnością 10, to liczba okresów dawała bezpośredni wynik, należało tylko ustalić jednostkę. Na przykład 23 okresy zajmujące 10 działek przy podstawie czasu równej 1 ms odpowiadały częstotliwości 2,3 kHz. Takich sztuczek mnemotechnicznych było znaczenie więcej, funkcjonowały niemal do każdego rodzaju pomiaru. W epoce oscyloskopów cyfrowych całą tę żmudną robotę przejął sam przyrząd, a dokładniej znajdujący się w nim procesor. W efekcie mamy tzw. pomiary automatyczne, obliczenia matematyczne obejmujące nawet całkiem złożoną analizę matematyczną, w tym funkcję FFT. Wspomniane sztuczki zostały bezpośrednio zastąpione pomiarami kursorowymi. Są one dostępne w każdym, bez wyjątku, oscyloskopie cyfrowym, i większości sprzętu w zasadzie niczym się nie różnią. Hameg odbiegł jednak od utartego schematu i do niektórych pomiarów wprowadził trzeci kursor – zwykle są tylko dwa. Dzięki temu znacznie ułatwiono pomiary np. przesunięć fazowych, współczynników wypełnienia, stosunku amplitud itp. (rysunek 5). Niezależnie od tego,
równolegle mogą być wykonywane pomiary automatyczne maksymalnie 6 parametrów. Ich wyniki są wyświetlane w dolnej części ekranu. Na życzenie użytkownika pomiary automatyczne mogą być uzupełniane statystyką (rysunek 6). Na płycie czołowej oscyloskopu można dostrzec przycisk Quick View. Po jego naciśnięciu na ekranie jest wyświetlany przebieg tylko z jednego kanału, uzupełniony o najważniejsze parametry, takie jak: amplituda, czasy narastania i opadania, wartość średnia. Dla pełniejszego zrozumienia ich znaczenia na wykresie są umieszczane odpowiednie symbole graficzne (rysunek 7). Obliczenia widma za pomocą funkcji FFT są prowadzone na regulowanej długości bufora. Użytkownik może więc decydować o dokładności przekładającej się jednak na czas ich wykonywania. Jak zwykle jest dostępnych kilka typowych okien analizy, a wykresy mogą być skalowane w dBm, dBV i Veff. Pomiary prążków widma są prowadzone metodami kursorowymi (rysunek 8). Mocną cechą oscyloskopu HMO3004 są złożone obliczenia matematyczne pozwalające dokonywać analizy mierzonych zjawisk, nie koniecznie związanych z elektroniką. Na rysunku 9 przedstawiono oscylogram zmian przyspieszenia poruszającego się obiektu. Uzyskano go na podstawie pomiaru sygnału z akcelerometru zainstalowanego w tym obiekcie. Do analizy zjawiska zastosowano funkcję całkowania przebiegu z kanału CH1 dostępną w oscyloskopie HMO3004. Przebieg MA1 będący rozwiązaniem tej całki, fizycznie oznacza prędkość poruszającego się obiektu. Ale to nie koniec. Zaawansowane obliczenia matematyczne mogą być zagnieżdżane, z czego skorzystano obliczając całkę z całki – oscylogram MA2. Interpretacja fizyczna przebiegu MA2 oznacza drogę przebytą przez badany obiekt. Oprogramowanie pozwala tworzyć 5 zestawów takich obliczeń. W każdym zestawie może być zagnieżdżonych 5 innych funkcji matematycznych. Ze względu na to, że znaczenie częściej niż złożone obliczenia matematyczne wykorzystywane są obliczenia podstawowe (dodawanie, odejmowanie, mnożenie, dzielenie), pozostawiono możliwość szybkiego wyboru tych operacji (opcja Quick Math). Definiowanie takich operacji jest znacznie prostsze, wymaga naciśnięcia tylko jednego przycisku.
Subtelności doboru niektórych nastaw oscyloskopu W codziennej pracy użytkownicy zwykle nie analizują dokładnie wszystkich nastaw oscyloskopu, bo skoro uzyskują stabilne oscylogramy, to mogą wnioskować, że oscyELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:13:19
Oscyloskop HMO3004 Tabela 1. Konfiguracja kanałów w trybie z przeplotem Grupa „Interlace 1” CH1 CH2 + +
Grupa „Interlace 2” CH3 CH4
+ + +
+ +
+ +
+
Rysunek 9. Pomiary z zastosowaniem złożonych obliczeń matematycznych loskop pracuje prawidłowo. Jest jednak kilka niuansów, na które warto zwracać uwagę.
Pierwsze zagadnienie jest związane z pracą układu akwizycji oscyloskopu. Podawana w dokumentacji szybkość próbkowania jest nieosiągalna w rzeczywistości dla zastosowanych przetworników analogowo-cyfrowych. Zwiększenie szybkości próbkowania jest uzyskiwane przez równoległe połączenie przetworników. Tworzone są w ten sposób grupy przeplotu (Interleave). Niestety, jeśli w takim rozwiązaniu będą wykorzystywane przetworniki znajdujące się w tej samej grupie przeplotu, efektywna szybkość próbkowania jest mniejsza niż szybkość maksymalna podawana w dokumentacji. Zasadę optymalnego doboru kanałów pomiarowych wyjaśniono w tabeli 1. Przykładowo, jeśli są wykorzystywane tylko dwa kanały, to należy unikać kombinacji CH1 i CH2, a korzystać raczej z kanałów CH1 i CH3. Praca w trybie z przeplotem wprowadza dodatkowe ograniczenia. Jest to wyłączenie logicznych triggerów, wyłączenie analizy interfejsów szeregowych i równoległych i omówione już „podbieranie” kanałów analogowych przez kanały cyfrowe. Konfigurując oscyloskop warto też zwracać uwagę na tryb pracy układu akwizycji: Arithmetic (Refresh, Envelope, Average, Smooth, Filter), Peak Detect i High Reso-
Tabela 2. Zalety i wady stosowania poszczególnych trybów pracy układu akwizycji Tryb
Max. Repeat Rate
Maximum Sampling Rate
Automatic
Zalety - wiele ramek na jednym ekranie, - możliwość wychwytywania rzadkich zdarzeń szybciej niż z zastosowaniem wydłużonej poświaty, - szybka odpowiedź na zmiany sygnału - niski poziom szumów - maksymalna dokładność szczegółów, - najmniejsze ryzyko wystąpienia aliasingu, - wysoka dokładność pomiarów - średnia szybkość odświeżania - dobra dokładność pomiarów - niskie szumy
Wady
Aplikacje
- duże ryzyko wystąpienia aliasingu - mała dokładność szczegółów, - mała dokładność pomiarów wynikająca z małej ilości danych
- poszukiwanie rzadkich zdarzeń, - badanie przebiegów zmodulowanych
- wolna odpowiedź na zmiany sygnału - niska szybkość odświeżania danych, - duże szumy obserwowane
- obserwacja sygnałów zawierających składowe wysokiej częstotliwości, - badanie niewielkich szczegółów przebiegów
- możliwość występowania - domyślny tryb dla więkaliasingu szości zastosowań
lution, bowiem każdy z nich wprowadza charakterystyczne ograniczenia. Należy też zwracać uwagę na tryby rejestracji danych. Dostępne opcje to: MAX. WFM. RATE, MAX SA. RATE i AUTOMATIC. Zasadę doboru tych parametrów wyjaśniono w tabeli 2.
Inne możliwości oscyloskopu HMO3004 O oscyloskopie Hameg można by pisać jeszcze długo, bo jest to przyrząd o znacznych możliwościach i licznych zaletach. W skrócie należy tylko dodać, że jest to przyrząd, który nie zajmuje dużo miejsca na stole, a wielopunktowa blokada uchwytu pełniącego jednocześnie rolę podstawki pozwala na najbardziej dogodne ustawienie oscyloskopu. Oprogramowanie zawiera wszystkie funkcje i tryby pracy spotykane w oscyloskopach klasy średniej (umownie do 500 MHz). Są to: bardzo sprawnie działające przeszukiwanie danych (Search), duża liczba trybów wyzwalania, w tym wyzwalanie z triggerami logicznymi, test Pass/Fail, praca XY, tryb akwizycji Roll, możliwość zapisywania w zewnętrznej pamięci Flash nastaw i przebiegów oraz zrzutów ekranowych. Pliki dyskowe mogą być zapisywane w kilku formatach. Oscyloskop HMO3004 może być zdalnie sterowany przez dostępne standardowo interfejsy: USB, Ethernet oraz opcjonalne: RS232 i GPIB. HMO3004 to oscyloskop o przemyślanej konstrukcji, chociaż do niektórych rozwiązań trzeba się trochę przyzwyczaić. Wykonanie elementów mechanicznych nie pozostawia najmniejszych wątpliwości, że jest to wyrób wysokiej klasy. Oscyloskop pracuje niemal bezgłośnie. Poziom dźwięku wentylatora niknie całkowicie na tle dźwięków otoczenia, a jest to przyrząd mierzący w paśmie do 300 MHz. Pasmo może być w dowolnym momencie rozszerzane metodą programową. Teraz pozostaje tylko przeprowadzenie bilansu zalet i wad oscyloskopu i skonfrontowanie go z ceną przyrządu, Decyzję tę musi jednak podjąć indywidualnie każdy potencjalny nabywca.
Jarosław Doliński, EP
REKLAMA
ELEKTRONIKA PRAKTYCZNA 8/2013
110-113_Hameg_HMO3004.indd 113
113
2013-07-25 11:13:19
INFO Prosta transmisja światłowodowa Dzięki elementom FOPT 2,2 z oferty firmy Phoenix Contact transmisja światłowodowa sygnałów poziomu TTL nie wymaga od użytkownika skomplikowanego przygotowania włókien. Zarówno nadajnik jak i odbiornik są gotowymi elementami, do bezpośredniego wlutowania na PCB, zapewniającymi bardzo łatwe przyłączenie światłowodu polimerowego o całkowitej średnicy żyły 2,2 mm. W celu przyłączenia włókna wystarczy je obciąć a następnie wsunąć w otwór. Konstrukcja sprężyny zaciskowej wewnątrz elementu precyzyjnie pozycjonuje włókno nad diodą nadawczą (zielony element) lub odbiorczą (czarny element). Dodatkowy gumowy uchwyt gwarantuje odciążenie naciągu kabla światłowodowego. Oba elementy można połączyć razem (dzięki wypustom „na jaskółczy ogon”) uzyskując w ten sposób kompletny zestaw nadawczo-odbiorczy. Odłączenie włókna odbywa się poprzez wciśnięcie pomarańczowego przycisku, który uginając sprężynę pozwala na jego swobodne wysunięcie. Więcej informacji: http://goo.gl/OygCF
Polska misja gospodarcza dla branży elektronicznej Polska Agencja Rozwoju Przedsiębiorczości zaprasza na misję gospodarczą dla przedsiębiorstw z branży elektronicznej, IT/ICT. Głównym elementem misji będzie udział w międzynarodowych targach telekomunikacyjnych i informatycznych Taitronics w Tajpej. Wstępny program zakładający przylot do Tajpej 7 października br. i powrót do Warszawy 12 października br. obejmuje m.in.: • udział w targach TAITRONICS, BROADBAND TAIWAN oraz Taiwan Int’l Cloud Technology & Internet of Things Show, • giełdę kooperacyjną (bezpośrednie spotkania polskich i tajwańskich przedsiębiorców, zaaranżowane wcześniej w oparciu o wskazania uczestników misji), • udział w seminariach branżowych, • udział w seminarium na temat branży IT/ ICT oraz roli Tajwanu jako bramy do rynku chińskiego, • wizytę studyjną w Hsinchu Science and Industrial Park (jednym z największych i najdłużej funkcjonujących parków technologicznych na terenie Tajwanu), • wizytę w siedzibie Industrial Technology Research Institute (ITRI), • wizytę w siedzibie jednej z dużych tajwańskich firm z branży elektronicznej. Przedsiębiorcy mogą ubiegać się o dofinansowanie udziału w misji do wysokości 50% kosztów kwalifikowalnych. Więcej informacji: http://goo.gl/84TMJ
dzy szeroko wykorzystywanymi protokołami Modbus TCP i Modbus RTU/ASCII. W zależności od specyfikacji MB3180, MB3280 i MB3480 do dyspozycji są kolejno 1,2 lub 4 porty szeregowe oraz jeden port RJ-45. Do konfiguracji konwertera producent udostępnia bardzo przyjazne dla użytkownika oprogramowanie MGate Manager. Jego zastosowanie pozwala na dodanie szeregowych urządzeń Modbus jako slave do istniejącej sieci TCP lub zaimplementowanie urządzeń Modbus TCP jako slave do szeregowego Master’a MGate MB3x80. Konwerter wspiera jednocześnie do 16 Master’ów TCP, wraz z 31 slave’ami RTU/ ASCII na jeden port szeregowy. Dla 4 portowego konwertera będzie to więc aż 124 slave’y. Przy konfiguracji RTU/ASCII jako master wspieranych jest do 32 slave’ow TCP. Każdy z dostępnych portów szeregowych może zostać indywidualnie skonfigurowany pod względem protokołu (Modbus RTU/Modbus ASCII) oraz prędkości transmisji. W celu zapewniania łatwego montażu w dodatkowym wyposażeniu Mgate’a można znaleźć akcesoria umożliwiające montaż na szynie DIN. Dzięki swoim parametrom seria MGate 3x80 pozwala na bardzo komfortową integracje urządzeń opartych o protokół Modbus, co jest obecnie bardzo pożądaną cechą w zastosowaniach przemysłowych. Więcej informacji: http://goo.gl/wA3AG
Unisystem został oficjalnym, wyłącznym dystrybutorem produktów firmy AMT na terenie Polski oraz krajów Europy Środkowowschodniej Apex Material Technology to producent sensorów pojemnościowych oraz kontrolerów. AMT jest tajwańskim producentem bardzo dbającym o jakość oferowanych wyrobów. Jest jednym z największych światowych producentów paneli dotykowych dla przemysłu oraz zastosowań medycznych i wojskowych. W tym roku firma AMT przejęła oddział paneli dotykowych amerykańskiej firmy Bergquist podkreślając tym samym swoją dominację w tym sektorze, którą zawdzięcza dbałością o każdy szczegół oraz świetnie funkcjonującym wsparciem technicznym. W skrócie, AMT to główny dostawca paneli dotykowych dla takich producentów jak Simens, Advantech, iEi, Eaton… ale także wielu wielu innych. Unisystem oferuje najwyższej jakości panele AMT wraz w dowolną customizacją szkła (dowolny kształt, kolor, rozmiar, nadruk) już od jednej sztuki. Więcej informacji: [email protected]
Przemysłowe konwertery protokołów • Konwersja pomiędzy ModbusTCP i Modbus RTU/ASCII. • 1×Ethernet oraz 1, 2 lub 4×porty RS232/422/485. • Łatwa i przyjazna konfiguracja. • Możliwość montażu na szynie DIN. W ofercie firmy Moxa można znaleźć bardzo popularne w ostatnim czasie przemysłowe konwertery protokołów. Jednym z tego typu produktów jest seria MGate MB3x80. Zapewnia ona konwersję pomię-
114
114_info.indd 114
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:12:59
Tytuł
8/2013
•
sierpień i i ń
•
Nr N 8 (91)
• Wprowadzenie do środowiska projektowego TIA Portal dla sterowników S7-1500 • Czujniki ruchu oraz sterowniki oświetlenia. Krótkoterminowa inwestycja w poprawę efektywności energetycznej
ELEKTRONIKA PRAKTYCZNA 1/2009
115_ap1.indd 115
115
2013-07-25 11:12:47
116_ap2.indd 116
2013-07-25 11:12:29
Wprowadzenie do środowiska projektowego TIA Portal dla sterowników S7-1500 AUTOMATYKA I MECHATRONIKA
Wprowadzenie do środowiska projektowego TIA Portal dla sterowników S7-1500 Środowisko projektowe Totally Integrated Automation Portal firmy Siemens, w skrócie nazywane TIA Portal, oferuje wszystkie funkcje potrzebne do wykonania zadań automatyzacji w jednej platformie, łączącej różne oprogramowanie. TIA Portal jest pierwszym współdzielonym środowiskiem pracy integrującym rozwiązania techniczne różnych systemów SIMATIC udostępnianych w jednolitej strukturze. Dlatego też TIA Portal po raz pierwszy umożliwia niezawodną i wygodną współpracę różnych systemów. Wszystkie wymagane pakiety oprogramowania, od konfiguracji sprzętowej przez programowanie do wizualizacji procesów, dostępne są w jednym środowisku projektowym. Tworzenie projektu W pierwszym kroku pokażemy jak tworzy się nowy projekt. Wszystkie dane, które są generowane w czasie tworzenia aplikacji, są zapisywane w pliku projektu. Dane te są przechowywane w postaci obiektów. Wewnątrz projektu, obiekty są uporządkowane ELEKTRONIKA PRAKTYCZNA 8/2013
117-119_siemens.indd 117
w strukturze drzewa (hierarchii projektu). Hierarchia projektu opiera się na urządzeniach i stacjach, wraz należących do nich danymi konfiguracyjnymi i programami. Aby utworzyć nowy projekt, należy wykonać następujące kroki: 1. Kliknąć pozycję „Create new project”.
2. Wprowadzić nazwę projektu.
3. Kliknąć przycisk „Create”, aby utworzyć nowy projekt. Projekt został utworzony. Wszystkie dane, dotyczące konfiguracji sprzętu, programowania CPU, oraz wizualizacji na panelu HMI, są zapisane w projekcie. W drugim kroku dodamy nieokreślony typ CPU. Po umieszczeniu w projekcie i wybraniu funkcji „Detect” do nieokreślonego
117
2013-07-25 11:12:13
AUTOMATYKA I MECHATRONIKA Zalety pracy w środowisku projektowym TIA Portal Podane niżej funkcje zapewniają efektywne wsparcie przy realizacji zadań automatyzacji, podczas pracy w środowisku TIA Portal: • Ujednolicona obsługa Procesy automatyzacji i wizualizacji odbywają się jednocześnie. • Jednolite, scentralizowane zarządzanie danymi z wydajnymi edytorami i uniwersalnymi symbolami Raz utworzone dane są dostępne we wszystkich edytorach. Zmiany i poprawki są automatycznie wprowadzane i aktualizowane w całym projekcie. • Biblioteki o dostępie globalnym Możliwość wykorzystywania w projektach wcześniej przygotowanych funkcji programowych. • Wiele języków programowania Do wykonania projektu jest dostępnych pięć różnych języków programowania.
CPU załadowana zostaje aktualna konfiguracja sprzętowa. Przebiega to następująco: 1. Otworzyć portal „Devices & Networks”. 2. Dodać nowe urządzenie. 3. Jako nazwę CPU wprowadzić „Color_ Mixing_CPU”.
4. Otworzyć folder „Simatic S7-1500”. 5. Wybrać CPU, który nie został jeszcze określony „Unspecified CPU 1500”.
ślenia typu CPU. Podczas wykrywania sprzętu należy uruchomić test migania diod LED. Test migania diod LED włącza diody LED na wykrytym urządzeniu. Tej funkcji można także użyć, aby upewnić się, że zostało wybrane właściwe urządzenie w konfiguracji sprzętowej obejmującej kilka urządzeń. 1. W drzewie projektu wybrać nieokreślony CPU. 2. Z menu „Online” wybrać funkcję „Hardware detection”. Inna możliwość: Kliknąć komunikat w żółtej ramce w widoku urządzenia. 3. Wybrać zapis „PN/IE” jako typ interfejsu PG/PC. 4. Wybrać interfejs PG/PC. 5. Kliknąć opcję „Show all compatible devices”. 6. Wybrać CPU z kompatybilnych urządzeń w podsieci. 7. Zaznaczyć pole wyboru „Flash LED”, aby uruchomić test migania diod LED. 8. Kliknąć przycisk „Detect”, aby zastąpić nieokreślony CPU pożądanym typem CPU. Typ CPU został wykryty. W drzewie projektu do nazwy CPU jest dołączona właściwa nazwa urządzenia podana w nawiasach. Używane moduły i CPU są wyświetlane w konfiguracji sprzętowej.
6. Dodać CPU przez dwukrotne kliknięcie. W ten sposób nieokreślony typ CPU został dodany do pliku projektu. W tym momencie dla tego CPU może już być utworzony program użytkownika.
W kolejnym kroku zostanie użyta funkcja wykrywania sprzętu w celu okre-
118
117-119_siemens.indd 118
Dodanie modułów interfejsu ET 200 W kolejnym kroku części omówimy dodanie dwóch systemów rozproszonych wejść/wyjść (I/O) do konfiguracji sprzętowej: • System rozproszonych wejść/wyjść ET 200SP, który zasadniczo składa się z następujących elementów: – Moduł interfejsu do komunikacji z CPU.
– Do 32 modułów, które można umieścić w dowolnej kombinacji. – Moduł terminatora, który kończy konfigurację. • System rozproszonych wejść/wyjść ET 200MP, który składa się z następujących elementów: – Moduł interfejsu do komunikacji z CPU. – Do 30 modułów, z których każdy zapewnia do 32 kanałów. Procedura przebiega następująco: 1. Otworzyć „Hardware catalog”. 2. Przejść do widoku sieci „Network view”. 3. Otworzyć foldery „Distributed I/O” i „ET 200SP”. 4. Otworzyć folder „IM 155-6 PN ST”. 5. Przeciągnąć moduł interfejsu „6ES7 155-6AU00-0BN0” do widoku sieci. 6. Otworzyć folder „ET 200MP”. 7. Otworzyć folder „155-5 IM PN ST”. 8. Przeciągnąć moduł interfejsu „6ES7 155-5AA00-0AB0” do widoku sieci. Systemy wejść/wyjść zostały dodane do konfiguracji sprzętowej, ale nie zostały jeszcze przypisane do CPU 1511-1 PN. Oba systemy wejść/wyjść są wyświetlane w pozycji „Unassigned devices” w widoku projektu.
Połączenie w sieci modułów interfejsu ET 200 W tej części artykułu omówimy utworzenie systemu PROFINET IO. System PROFINET IO składa się ze sterownika PROFINET IO i jego przypisanych urządzeń PROFINET IO: • CPU 1511-1 PN, który został już dodany, jest używany jako sterownik PROFINET IO. • Dwa systemy rozproszonych wejść/ wyjść są używane jako urządzenia PROFINET IO. Procedura przebiega następująco: 1. Należy przeciągnąć połączenie z interfejsu modułu interfejsu IM 155-5 PN ST do interfejsu CPU. 2. Należy utworzyć drugie połączenie pomiędzy modułem interfejsu IM 155-6 PN ST a CPU. W ten sposób moduły interfejsu zostały przypisane do CPU jako urządzenia IO. Oba systemy rozproszonych wejść/wyjść są wyświetlane w drzewie projektu w folderze „Distributed I/O” pod pozycją CPU. System PROFINET I/O został automatycznie utwoELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:12:13
Wprowadzenie do środowiska projektowego TIA Portal dla sterowników S7-1500 rzony w procesie tworzenia sieci i jego właściwości są wyświetlane w widoku sieci.
Dodanie modułów wejść i wyjść dla systemu ET 200MP W tej części omówimy dodanie modułów wejść i wyjść dla systemu ET 200MP. Procedura dodawania przebiega następująco: 1. Otworzyć widok urządzenia ET 200MP. 2. W katalogu sprzętu otworzyć foldery „DI” i „DI16 x DC24V HF”. 3. Przeciągnąć moduł wejść „6ES7 521-1BH00-0AB0” do slotu 2 szyny. 4. Otworzyć foldery „DQ” i „DQ16 x DC24V/0,5 A ST”. 5. Przeciągnąć moduł wyjść „6ES7 522-1BH00-0AB0” do slotu 3 szyny. W ten sposób zostały dodane moduły wejść i wyjść.
Przypisanie nazw dla ET 200 W ostatniej części artykułu omówimy przypisanie do rozproszonych wejść/wyjść nazw określonych w projekcie. Procedura przebiega następująco: 1. Wybrać ET 200SP. 2. W oknie Inspektor wybrać Properties > General i w polu „Name” wprowadzić nazwę „Valve_Control_Unit”. 3. Wybrać ET 200MP i wprowadzić nową nazwę „Mixer_Conveyor_Control_Unit”. W ten sposób przypisano określone nazwy w projekcie.
REKLAMA
Dodanie modułów wejść i wyjść oraz modułu terminatora dla systemu ET 200SP W tej części omówimy dodanie modułów wejść i wyjść dla systemu ET 200SP. Do obsługi modułów wejść i wyjść jest potrzebny moduł terminatora. Jeżeli moduł terminatora nie zostanie dodany dla ET 200SP, to będzie zgłaszany błąd! Liczba używanych modułów wejść/ wyjść, przypadających na grupę potencjałową zależy od następujących czynników: 1. Pobór mocy wszystkich modułów wejść/wyjść działających w grupie 2. Pobór mocy wszystkich obciążeń podłączonych zewnętrznie do grupy potencjałowej Całkowity pobór mocy otrzymany przez sumowanie wyliczeń w punktach 1 i 2 nie może przekraczać obciążalności prądowej stosowanej jednostki podstawowej BaseUnit oraz źródła zasilania. Parametr „Potential group” dla modułu należy ustawić w następujący sposób: Procedura przebiega następująco: 1. Otworzyć widok urządzenia ET 200SP. 2. W katalogu sprzętu otworzyć foldery „DI” i „DI16 x DC24V ST”. 3. Przeciągnąć moduł wejść „6ES7 131-6BH00-0AA0” do slotu 1 szyny. 4. Otworzyć foldery „DQ” i „DQ16 x DC24V/0,5 A ST”. 5. Przeciągnąć moduł wyjść „6ES7 132-6BH00-0AA0” do slotu 2 szyny. 6. Otworzyć folder „Server modules”. 7. Przeciągnąć moduł terminatora „6ES7 193-6PA00-0AA0” do slotu 3 szyny. W ten zostały dodane: moduł wejść, moduł wyjść, oraz moduł terminatora:
Tomasz Starak Artykuł powstał na bazie dokumentacji firmy Siemens. ELEKTRONIKA PRAKTYCZNA 8/2013
117-119_siemens.indd 119
119
2013-07-25 11:12:13
AUTOMATYKA I MECHATRONIKA
Czujniki ruchu oraz sterowniki oświetlenia Krótkoterminowa inwestycja w poprawę efektywności energetycznej Czujniki ruchu to urządzenia coraz częściej używane do obniżania zużycia energii elektrycznej poprzez inteligentne załączanie i wyłączanie oświetlenia. Typowo zasada działania czujnika ruchu opiera się na technologii pasywnej podczerwieni (PIR) – mierzy natężenie promieniowania podczerwonego w obszarze detekcji. Gdy w strefie pomiaru pojawia się człowiek zaburza pole i w wypadku niewystarczającej ilości światła, czujnik załączy oświetlenie. Instalacje oświetlenia oparte na czujnikach ruchu generują znaczne oszczędności. Bardzo dobrze sprawdzają się w korytarzach, garażach, biurach, magazynach, parkingach i toaletach. Istnieje wiele możliwości montażu tych urządzeń: • montaż natynkowy i podsufitowy– zwykle dotyczy czujników ruchu i obecności o kącie detekcji 360 stopni. Takie rozwiązania stosuje się w biurach, korytarzach i toaletach. Przykładem takiego czujnika jest czujnik Servodan 41-300 o średnicy pola detekcji 20 metrów lub czujnik Finder serii 18-31-8-230-000 o polu detekcji do 8 metrów. • montaż ścienny – dotyczy czujników o kącie detekcji pomiędzy 90 a 200 stopni. Sprawdzają się one w korytarzach i garażach. Przykładem takiego czujnika może być czujnik Servodan 41-231, który można zamontować także w narożnikach pomieszczenia. • montaż w puszce instalacyjnej. Takie czujniki zastępują zwykle łączniki ścien-
ne. Przykładem jest czujnik Servodan 41-201. Czujnik obecności jest ulepszoną technologicznie wersją czujnika ruchu, mającą zdolność do wykrywania zmiany położenia obiektu o 4…5 cm. W związku z tym czujnik obecności potrafi „widzieć” osobę w pomieszczeniu, nawet jeśli wykonuje ona delikatne i nieznaczące ruchy. Jeśli potrzebujesz najlepszego rozwiązania do wykrywania osób w pomieszczeniach, czujniki obecności są tym, czego potrzebujesz! Urządzenia te osiągają bardzo dobre osiągi, dzięki wykorzystaniu zarówno podczerwieni, jak i ultradźwięków do wykrywania ruchu. Czujniki ruchu mogą pracować jako samodzielne urządzenia, ale także jako część bardziej skomplikowanego systemu. Dosyć powszechnym rozwiązaniem są układy Master-Slave, w których większa liczba czujników odpowiada razem za jeden obwód (rysunek 1). Stosuje się je na korytarzach, klatkach schodowych i czasem w biurach. Oszczędność energii dla czujników samo-
Rysunek 1. Przykład instalacji z kilkoma czujkami ruchu
120
120-121_astat.indd 120
Dodatkowe informacje: Astat Sp. z o.o. ul. Dąbrowskiego 441, 60-451 Poznań tel. 61 848 88 71, faks 61 848 82 76 [email protected], www.astat.com.pl
dzielnych wynosi do 50%, dla czujników połączonych w większy system, kontrolowanych przez sterownik (rysunek 2) – do 80%. Kolejnym sposobem na uzyskanie oszczędności jest zastosowanie sterowników oświetlenia. Najprostsze układy składają się z czujnika natężenia oświetlenia i sterownika. Takie rozwiązanie załączy oświetlenie w pomieszczeniu, gdy światło naturalne będzie niewystarczające. Działa to jednak zupełnie jak wyłącznik zmierzchowy. Taki układ należy wzbogacić czujnikami ruchu, które włączą oświetlenie dopiero po wykryciu ruchu obiektu w obszarze dozorowanym. Są oferowane także sterowniki, które regulują oświetlenie strefowo. Typowy sterownik Servodan 78-000 kontroluje załączanie oświetlenia w trzech strefach. Dobrze sprawdzi się w sytuacji, gdy światło dzienne dostaje się do pomieszczenia z jednej strony. Oświetlenie w pomieszczeniu dzielimy wtedy na 2-3 strefy równoległe do ściany z oknami. Sterownik – w zależności od natężenia oświetlenia naturalnego – załączy lub wyłączy poszczególne strefy oświetlenia. Zwykle strefa przy oknach pozostaje wyłączona w godzinach pracy. Takie rozwiązanie dobrze nadaje się do modernizacji starszych instalacji.
Rysunek 2. System wielostrefowy ze sterownikiem ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:11:51
Czujniki ruchu oraz sterowniki oświetlenia
Rysunek 3. Rozbudowany system ze sterownikiem i możliwością sterowania jasnością świecenia wielu źródeł światła Nowe budynki lub te podlegające gruntownej renowacji często wyposażone są w źródła światła mające możliwość ściemniania za pomocą odpowiednich balastów (rysunek 3). Pozwala nam to na płynne sterowanie natężeniem oświetlenia poszczególnych opraw analogowo, za pomocą napięcia 0…10 V lub używając cyfrowego protokołu komunikacyjnego np. DALI. Rozwiązanie to przewyższa oszczędnością wszystkie powyższe. Uzyskujemy dokładnie tyle światła ile potrzebujemy minimalizując zużycie energii elektrycznej. Przykładem takiego sterownika może być sterownik Servodan 78-050. Inna możliwość – zdalnego sterowania – daje system Servodan 77-050 (rysunek 4). Oprócz regulowania natężenia oświetlenia za pomocą napięcia 0…10 V oraz możliwości współpracy z czujkami ruchu i światła zewnętrznego, może być zainstalowany w pokoju i zdalnie sterowany za pomocą nadajnika podczerwieni (pilota).
Rysunek 4. System ze zdalnym sterowaniem Kluczową kwestią dla osoby inwestującej w czujniki ruchu jest czas zwrotu inwestycji. Przy zastosowaniu czujników w pomieszczeniach o niskim natężeniu ruchu – przykładowo korytarze techniczne – zwrot inwestycji wynosi od kilku miesięcy. Przy instalacjach obejmujących ściemniane źródła światła i sterowniki inwestycja zwraca się po kilkunastu miesiącach. Skrajne przypadki to dwa lata, nie dłużej. Należy także zwrócić uwagę na oszczędności eksploatacyjne wynikające z dłuższej żywotności źródeł światła, które pracują rzadziej, niż w wypadku braku sterowania oświetleniem. Podsumowując: w dzisiejszych czasach nie opłaca się nie sterować oświetleniem. Jeśli jeszcze tego nie robisz nie czekaj – w najbliższej perspektywie cena energii elektrycznej będzie bezlitośnie rosła.
REKLAMA
ELEKTRONIKA PRAKTYCZNA 8/2013
120-121_astat.indd 121
121
2013-07-25 11:11:52
NOTATNIK KONSTRUKTORA
Klocki dla Arduino (1)
Procedury obsługi wybranych modułów dodatkowych dla Arduino – impulsator Arduino jest nie tylko świetną platformą prototypową. Ogromy wybór modułów dodatkowych umożliwia budowanie funkcjonalnych urządzeń. Unika się przy tym konieczności zaprojektowania płytki drukowanej i jej montażu. W artykule prezentujemy kilka „klocków”, z których można poskładać funkcjonalne urządzenia oraz metody ich obsługi programowej. Wakacje są świetną okazją, aby zapoznać się ze środowiskiem programistycznym Arduino. „Klocki” oferowane przez wielu niezależnych producentów oraz dostępne w Internecie, pozwalają na szybkie wykonanie zegara, woltomierza, układu sterującego i wielu, wielu innych. Przyjrzyjmy się przykładom programów wykonanych dla Arduino Duemilanove oraz modułów opisywanych w Elektronice Praktycznej.
Menu obsługiwane za pomocą enkodera Wiele nowoczesnych urządzeń ma menu wyświetlane na ekranie LCD i obsługiwane za pomocą enkodera obrotowego o małej rozdzielczości, czasami nazywanego impulsatorem. Z takiego enkodera są wyprowadzone dwa przebiegi przesunięte w fazie o 90 stopni oraz zestyki przycisku zintegrowanego z osią. Oprócz płytki bazowej, w tym przykładzie użyjemy modułu AVT-1722 mającego zamontowany wyświetlacz LCD 2×8 znaków, 4 przyciski, przycisk zerowania, przekaźnik oraz impulsator. W związku z niewielką liczbą znaków mieszczącą się na wyświetlaczu przyjmijmy, że pojedyncza pozycja menu będzie wyświetlana na całym ekranie. Obrót enkodera w prawo lub w lewo będzie powodował przejście do kolejnej (w prawo) lub poprzedniej (w lewo) pozycji menu. Wybór będzie zatwierdzany za pomocą naciśnięcia osi enkodera. Po jego dokonaniu będzie wyświetlany następny poziom menu lub wywoływana funkcja urządzenia. Wykonanie menu rozpoczniemy od funkcji obsługi enkodera.
122
122-123_arduino_(1).indd 122
Na płytce AVT-1722 enkoder jest dołączony do wyprowadzeń PD0 (przycisk), PD1 i PD2 (wyprowadzenia A i B). Prostą funkcję służącą do jego obsługi pokazano na listingu 1. Ze względu na skromne zasoby pamięci mikrokontrolera, funkcja używa zmiennych globalnych w_lewo, w_prawo, imp_przycisk do informowania o stanie enkodera. Dodatkowo jest używana zmienna poprzedni, ponieważ status enkodera jest sprawdzany tylko wtedy, gdy poprzedni stan enkodera różni się od bieżącego. Funkcja działa w ten sposób, że jeśli wykryto obrót w prawo, to zmienna w_prawo przyjmuje wartość logiczną TRUE (1), natomiast w_lewo wartość logiczną FALSE (0). W przeciwnym kierunku obrotów zmienne mają przeciwne wartości. Jeśli wykryto naciśnięcie osi, to zmienna imp_przycisk przyjmuje wartość logiczną TRUE. W innych przypadkach wszystkim zmiennym są nadawane wartości FALSE. Zasada działania funkcji jest bardzo prosta – jeśli zmienił się poziom na wyprowadzeniu „A” enkodera, to jest sprawdzany poziom na wyprowadzeniu „B”. Jeśli na wyprowadzeniu „B” jest poziom niski, to zakładam, że enkoder obraca się w lewo. Jeśli wysoki, to w prawo. Funkcja pomimo pewnych „skrótów myślowych” działa poprawnie i świetnie radzi sobie z obsługą enkodera zamocowanego na płytce. Uzbrojeni w funkcję obsługi enkodera możemy wziąć się za menu. W tym przykładzie programu menu jest jednopoziomowe. To znaczy, że wyboru funkcji dokonuje się na najwyższym poziomie i nie ma żadnych podmenu. Za pomocą tego menu wybiera się kolor świecenia wielokolorowej diody LED zamontowanej obok wyświetlacza. W tym przykładzie dioda może świecić w kolorach: czerwonym, zielonym, niebieskim i białym lub zostać wyłączona. Głównymi składnikami menu są dwie funkcje: jedna wyświetlająca menu i druga, wywołująca akcję po naciśnięciu osi. Oczywiście, można to zrobić inaczej, jednak przyjąłem taką koncepcję, aby zyskać na
czytelności programu. Mało tego, taki rozdział funkcji powoduje, że łatwo przerobić sposób, w jaki jest wyświetlane menu, wykonać np. przewijaną listę itp. Za wyświetlanie menu jest odpowiedzialna funkcja menu_glowne(int poz). Parametr poz informuje o tym, która pozycja jest aktywna. W tym przykładzie jest wyświetlany odpowiedni ekran, ale można również na bazie argumentu np. ustawiać znacznik na liście opcji. Funkcja jest nieskomplikowana i działa na zasadzie rozpatrywania argumentu numer_linii w klauzuli switch – case. Należy jedynie zwrócić uwagę na fakt, że pozycje menu są numerowane od 0! Dlatego, jeśli chcemy skorzystać z tego przykładu i wykonać menu mające np. 3 pozycje, to funkcja będzie rozpatrywała argument poz w zakresie 0…2, natomiast stałej liczba_ekranow_menu zdefiniowanej na początku programu przykładowego, należy nadać wartość 2. Za podejmowanie odpowiedniej akcji odpowiada funkcja akcja(int numer_linii). Działa ona identycznie jak funkcja wyświetlająca menu, jednak zajmuje się wywołaniem odpowiedniej akcji po wciśnięciu osi enkodera. Co ważne, przed wywołanie tej funkcji należy poczekać na zwolnienie osi (funkcja czekaj_na_przycisk() oczekująca aż wyprowadzenie dołączone do osi będzie miało poziom wysoki) po to, aby uniknąć wielokrotnego zadziałania wybranej opcji menu. O numerze pozycji w menu informuje zmienna y_markera. Pierwotnie służyła ona do wyznaczania pozycji trójkąta wskazującego pozycję na liście i stąd wzięła się jej nazwa. W tym przykładzie służy ona do inforELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:11:31
mowania o numerze Listing 1. Funkcja obsługi enkodera void odczyt_impulsatora() aktywnego ekranu. { boolean imp_pin1, imp_pin2, biezacy; Zmienna jest zwiękunsigned int i = 0; szana przy obrocie //odczyt stanu przycisku enkodera imp_przycisk = w_prawo = w_lewo = LOW; w prawo i zmniejimp_pin1 = digitalRead(pd0); if(imp_pin1 == LOW) sza na przy obrocie { w lewo. W wypadku delay(50); imp_pin1 = digitalRead(pd0); przekroczenia wartoif(imp_pin1 == LOW) imp_przycisk = HIGH; ści maksymalnej jest else imp_przycisk = LOW; } zerowana, natomiast //odczyt kierunku obrotu imp_pin1 = digitalRead(pd1); po przekroczeniu if(imp_pin1 == LOW) biezacy = HIGH; else biezacy = LOW; 0 jest jej nadawana if(poprzedni != biezacy) { wartość maksymalpoprzedni = biezacy; na. Odczyt impulsaif(imp_pin1 == LOW) { tora i manipulacja imp_pin2 = digitalRead(pd2); zmienną y_markeif(imp_pin2 == LOW) { ra są wykonywane w_lewo = HIGH; w_prawo = LOW; w pętli głównej pro} gramu void loop(). else { W zasadzie, za w_lewo = LOW; wyjątkiem obsługi w_prawo = HIGH; } enkodera, przykład } nie wymaga obszer} } nego komentarza. Kompletny kod źródłowy przykładu przygotowany dla Arduino wartości jest możliwa po naciśnięciu osi. Duemilanove jest zamieszczony w materiaWówczas kolor świecenia diody zmienia łach dodatkowych. się na niebieski, a parametr można zmieniać kręcąc w prawo lub w lewo. Czasy zmieniają się z rozdzielczością 10 ms, naGenerator z menu obsługiwanym tomiast liczba impulsów z dokładnością enkoderem do pojedynczego impulsu. Tymczasowe Opisaną wcześniej funkcję obsługi zatwierdzenie nastawy następuje po naciśenkodera zastosujemy w przykładowym nięciu osi (zmiana koloru świecenia diody generatorze. Generator będzie wykonywał na czerwony), natomiast zapamiętanie zaprogramowaną liczbę cykli polegająwszystkich nastaw wymaga wyboru „OK” cych na zwarciu przekaźnika na ustawioz menu. Wybranie „Anuluj” powoduje ny czas, co ustawiany odstęp czasu. Ustaprzywrócenie starych wartości. Po wybrawione parametry generatora zapamiętamy niu „URUCHOM GENER.” kolor świecenia w pamięci nieulotnej i odtworzymy po diody LED zmienia się na zielony i nastęwłączeniu zasilania. puje uruchomienie funkcji generującej Przykład programu o takiej funkcjonalimpulsy. Na ekranie LCD jest wyświetlana ności zapamiętano w pliku Generator_z_ liczba cykli pozostałych do zatrzymania przekaznikiem.ino. Jego parametry grasię. Słychać przy tym przełączające się niczne są następujące: styki przekaźnika oraz widać cykliczne – liczba impulsów od 1 do 10000, – czas trwania impulsu od 100 ms do zaświecanie się i gaszenie diody LED2. Po 10 s, zakończeniu generowania impulsów sty– odstęp pomiędzy impulsami od ki są ustawiane w pozycji spoczynkowej, 100 ms do 10 s. dioda LED2 gaśnie, a LED1 zmienia kolor Maksymalne i minimalne wartości naświecenia na czerwony. Przyciski zamonstaw są zapisane na początku programu, towane pod wyświetlaczem nie są używapo dyrektywie #define. Można je zmienić ne. Do zatrzymania generatora może pow przemyślany sposób. służyć przycisk Reset zamontowany jako Po załączeniu generatora dioda LED pierwszy od lewej (najbliżej rogu płytki). świeci się w kolorze czerwonym, a na ekranie pojawia się możliwość wyboru Podsumowanie opcji „URUCHOM GENER.” (przez naProgram źródłowy jest przykładem ciśnięcie osi enkodera), po której to jest zastosowania AVT1722 i AVT5272 i może wywoływana funkcja generująca impulbyć dowolnie wykorzystywany i modyfikosy. Po przekręceniu osi enkodera w prawo wany na zasadach licencji GPL. Analizulub w lewo na ekranie pojawia się opcja jąc jego kod można znaleźć odpowiedzi na „PARAMETRY” umożliwiająca ustawiepytania odnośnie do sposobu odmierzania nie parametrów generatora. Pomiędzy poczasu, sterowania przekaźnikiem czy diodą szczególnymi pozycjami przechodzi się LED. obracając oś enkodera, natomiast zmiana Jacek Bogusz, EP ELEKTRONIKA PRAKTYCZNA 8/2013
122-123_arduino_(1).indd 123
REKLAMA
Klocki dla Arduino
123
2013-07-25 11:11:31
124.indd 124
2013-07-25 11:11:12
Ogłoszenia i reklamy hurtowni, sklepów, importerów, producentów, dealerów, itp. są płatne. Cena podstawowego modułu (35 x 20 mm) wynosi 66 zł + VAT. Koszt minimalnej ramki dla ogłoszeń o wielkości 3 modułów wynosi 198 zł + VAT. Moduły można łączyć zarówno w pionie jak i w poziomie. Maksymalna szerokość ogłoszenia to 5 modułów, wysokość 12 modułów. Rabaty stosujemy wyłącznie dla reklam powyżej 8 modułów: 4-6 emisji 10%, 7-11 emisji 15% i od 12 emisji 25%. Oferta specjalna: • publikacja fragmentów cennika w ramce o wielkości: 8 modułów w pionie cena 264 zł + VAT, 9 modułów w poziomie 305 zł + VAT • rabat specjalny dla firm poszukujących pracowników wynosi 25% (wyłącznie dla dużych reklam). Wszelkich informacji udziela Grzegorz Krzykawski, tel. 22 257 84 60, e-mail: [email protected]. Reklamy do tej rubryki mogą być przygotowane przez Zamawiającego w postaci wydruku z drukarki laserowej lub pliku w formacie CDR, AI, EPS (tekst zmieniony na krzywe), PSD, PDF z próbnym wydrukiem albo pliku w dowolnym edytorze tekstu (także z wydrukiem), jeśli krój czcionek nie jest rzeczą dużej wagi. Małe reklamy mogą być przygotowane w redakcji (gratis) na podstawie odręcznego szkicu lub maszynopisu. Opracowania te nie będą jednak wówczas uzgadniane z Zamawiającym przed oddaniem do druku. Redakcja nie odpowiada za treść reklam i ogłoszeń zamieszczonych w Elektronice Praktycznej
Niniejsze ogłoszenia są informacją handlową i nie stanowią oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie. 125-127_kramik.indd 125
2013-07-25 11:10:58
Atrakcyjna propozycja dla reklamodawców cennik o wymiarach 111×66 mm
cena 305 zł
(netto)
Więcej informacji: Grzegorz Krzykawski tel. 22 257 84 60 e–mail: [email protected]
Niniejsze ogłoszenia są informacją handlową i nie stanowią oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie. 125-127_kramik.indd 126
2013-07-25 11:10:59
Nie przegap! interesujących materiałów w siostrzanym czasopiśmie W sierpniowym wydaniu Szkoła Konstruktorów – Montaż „w pająku”
Elektroniki dla Wszystkich między innymi:
Sterownik GSM Jeszcze niedawno, aby zrealizować zdalne sterowanie przez sieć telefonii komórkowej GSM, hobbyści wykorzystywali stare telefony Siemensa. Przekonaj się o ile lepszym sposobem jest wykorzystanie popularnego i niedrogiego modułu SIM900. 4-kanałowy termometr i termostat z histerezą Cyfrowy termometr z ogromnymi wyświetlaczami o wysokości cyfry aż 57mm. Temperaturę mierzą cztery popularne czujniki DS18B20, a cztery przekaźniki pełnią rolę elementów wykonawczych. Szkolne podstawy elektroniki – dioda półprzewodnikowa. Nie przeocz artykułu, który w bardzo przystępny sposób przedstawia zadziwiające zasady działania diody półprzewodnikowej, zarówno przy pracy w kierunku przewodzenia, jak i zaporowym. PKE – Tajemniczy sensor zbliżeniowy. Siódmy wykład Praktycznego Kursu Elektroniki w prosty i praktyczny sposób przedstawia ogromnie ważny a bardzo słabo rozumiany problem zakłóceń, przenoszonych przez rozmaite pasożytnicze pojemności. KiCad w pigułce. Każdy elektronik powinien przynajmniej z grubsza zapoznać się z całkoA może masz pomysł na ciekawy artykuł lub projekt? wicie darmowym pakietem KiCad. W trzeciej Skonstruowałeś urządzenie, części artykułu Autor podaje liczne praktyczne które jest godne zaprezentowania szerszej publiczności? wskazówki, dotyczące projektowania płytki. Możesz napisać artykuł edukacyjny? Ponadto w numerze Inteligentny termometr do ciągnika Chcesz podzielić się doświadczeniem? Monofoniczny wskaźnik wysterowania W takim razie zapraszamy do współpracy na łamach Iluminofonia w starym stylu Elektroniki dla Wszystkich. Kontakt: [email protected] Kostka do gry Warsztatowe patenty – Termotransfer EdW możesz zamówić w sklepie internetowym AVT i płyty czołowe Szkoła Konstruktorów – Urządzenie elekhttp://www.sklep.avt.pl, telefonicznie 22 257 84 50, troniczne, zrealizowane za pomocą monfax: 22 257 84 55, listownie lub za pomocą e-maila: tażu przestrzennego, czyli popularnego [email protected] Do kupienia także w Empikach „pająka”, zmontowane bez użycia płytki. i wszystkich większych kioskach z prasą. Szkoła Konstruktorów – Urządzenie elekNa wszelkie pytania czeka także Dział Prenumeraty troniczne przydatne tam, gdzie nie ma tel. 22 257 84 22, [email protected] dostępu do sieci 230V. CENA 12zł
(w tym 5% VAT)
• NAKŁAD: 14 990 egz.
www.elportal.pl
INDEKS 333 62X
ISSN 1425-1698
8 /2013 SIERPIEŃ •
www.elportal.pl
Zaoszczędź Zaprenumeruj EP avt.pl/prenumerata
Niniejsze ogłoszenia są informacją handlową i nie stanowią oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie. 125-127_kramik.indd 127
2013-07-25 11:11:00
DZIAŁ
Bestsellery dla elektroników
kod zamówienia
KS–130300
Jak naprawić sprzęt elektroniczny. Poradnik dla nieelektronika W tym praktycznym przewodniku urodzony spec od elektroniki dzieli się sprawdzonymi technikami i bezcennymi obserwacjami. Ta książka pokazuje, jak naprawić wszelkiego rodzaju urządzenia tranzystorowe - od nowoczesnych gadżetów cyfrowych, po hołubione analogowe produkty czasów minionych – i przedłużyć im życie. Zaczniesz od wyboru niezbędnych narzędzi oraz przyrządów pomiarowych i zorganizowania warsztatu. Następnie poznasz wszystkie elementy i dowiesz się, jak tworzą obwody, bloki i sekcje w urządzeniu. Potem nauczysz się je rozbierać, diagnozować jego niedomagania, wymieniać elementy i z powrotem je składać. Przykłady z życia pomogą Ci w zrozumieniu omawianych tematów. Znajdziesz tu też porady i triki dotyczące konkretnych urządzeń, takich jak odtwarzacze dysków optycznych, komputery i rejestratory wideo. Michael Geier, stron: 360 cena: 59 zł
Spraw, by rzeczy przemówiły. Programowanie urządzeń elektronicznych z wykorzystaniem Arduino Ciężko nam w to uwierzyć, ale całkiem niedawno komputery były odizolowanymi jednostkami, niezdolnymi do komunikowania się między sobą. Dzisiaj potencjał samych komputerów, tabletów i telefonów połączonych w sieć jest oszałamiający. Budowanie projektów elektronicznych, które prowadzą interakcję ze światem fizycznym, to dobra zabawa. A kiedy urządzenia, które budujesz, zaczynają komunikować się między sobą, staje się to naprawdę interesujące. Trzydzieści trzy łatwe projekty z tej książki pokazują, jak sprawić, by Twoje gadżety komunikowały się z Tobą i Twoim środowiskiem. To idealna propozycja dla ludzi z niewielką wiedzą techniczną, ale dużym zainteresowaniem tematem! kod zamówienia
KS–130504
kod zamówienia
KS–130502
Tom Igoe, cena: 79 zł
Inteligentny dom. Automatyzacja mieszkania za pomocą platformy Arduino, systemu Android i zwykłego komputera System powiadamiający o poziomie wody, elektryczny pies obronny czy system wykrywający dostarczone paczki to tylko część pomysłów, które pozwolą Ci opanować niuanse tworzenia własnych projektów. Dzięki lekturze tej książki samodzielnie zbudujesz karmnik, który będzie publikował na Twitterze wpisy o przylatujących ptakach i konieczności uzupełnienia ziarna. Będziesz sterował oświetleniem wewnątrz i na zewnątrz domu za pomocą odpowiedniego programu. Zabezpieczysz swój dom przed nieproszonymi gośćmi. Stworzysz autonomiczny system podnoszenia i opuszczania zasłon zależnie od temperatury i natężenia światła w pokoju. Sprawisz, że Twój dom przemówi w momencie, gdy przyjdzie do Ciebie e-mail lub odwiedzą Cię goście... Książka ta będzie niewyczerpanym źródłem inspiracji dla kolejnych innowacji w Twoim domu. Spróbuj tego, naprawdę warto! Mike Riley , stron: 296, cena: 49 zł
Budowa robotów dla średnio zaawansowanych. Wydanie II Książka Budowa robotów dla średnio zaawansowanych zawiera praktyczną wiedzę, którą podzielić może się wyłącznie doświadczony budowniczy robotów - wiedzę, którą początkujący może zdobyć tylko na własnych błędach. Znajdziesz tu wypróbowane algorytmy podążania za linią oraz porady na temat tego, które elementy elektroniczne warto szlifować. Dowiesz się, że dobrze umieszczony przełącznik pozwala lepiej unikać przeszkód niż para czułek. Nauczysz się również, jak zabezpieczać kondensatory przed eksplozją... Będziesz korzystać z wielu technik stosowanych przez zawodowych inżynierów robotyków - doświadczysz przy tym tych samych wyzwań i radości, gdy Twój robot „ożyje”. kod zamówienia
KS–130501
David Cook, stron: 441, cena: 69 zł
Dowolną książkę z kompletnej biblioteki elektronika można znaleźć na www.sklep.avt.pl 128
128_ksiegarnia.indd 128
Niniejsze ogłoszenie jest informacją handlową i nie stanowi oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie.
ELEKTRONIKA PRAKTYCZNA 1/2009
2013-07-25 11:10:39
129.indd 129
2013-07-25 11:10:27
Kity AVT
Najpopularniejsze Kity AVT dostępne w wersjach A, B, C A – płytka drukowana z dokumentacją B – kit, czyli zestaw elementów z płytką drukowaną i dokumentacją C – moduł (urządzenie) zmontowany i uruchomiony z instrukcją tylko w języku polskim
Cena PLN Kod
Nazwa
Publ.
Cena PLN Kod
z VAT (23%)
A
B
C
RTV/Audio/Video AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT
594 1023 1024 1492 2132 2153 2180 2392 2449 2477 2728 2864 MOD07 MOD11 MOD12
Zdalnie sterowany potencjometr Przedwzmacniacz gramofonowy RIAA Wzmacniacz słuchawkowy Wzmacniacz 2 x 100 W Przedwzmacniacz z regulacją barwy Wzmacniacz 100 W z TDA7294 Wzmacniacz mocy z LM3886 Wzmacniacz mikrofonowy SMD Filtr do subwoofera Wzmacniacz mocy 70 W na TDA 1562 Wzmacniacz mikrofonowy Analizator widma Wzmacniacz słuchawkowy Wzmacniacz mocy 2×12 W Wzmacniacz mocy 2×22 W
AVT 1615 AVT 1616 AVT 1618 AVT 1619 AVT 1620 AVT 1622 AVT 1625 AVT 1633 AVT 1646 AVT 1649 AVT 1665 AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT AVT
1666 1668 3500 3505 5272 MOD03 MOD04 MOD05 MOD06 PROG1 PROG2
AVT AVT AVT AVT AVT
733 735 1066 1459 1572
Uniwersalny adapter dla AVR EP2/08 Minimoduł z ATtiny2313 EP2/11 AVTduino LCD - wyoewietlacz LCD dla EP4/11 Arduino AVTduino LED - wyoewietlacz LED dla EP5/11 Arduino AVTduino JOY – manipulator dla Arduino EP6/11 AVTduino Motor – driver silników dla EP9/11 Arduino Cortexino – kompatybilna z Arduino płytka EP5/11 z LPC1114 Minimoduł z ATMEGA8 EP6/11 PICduino – kompatybilna z Arduino płytka EP7/11 z PIC18F2550 Uniwersalny moduł rozszerzeń dla Arduino EP8/11 AVTduino BT – moduł Bluetooth kompatyEP9/11 bilny z Arduino Moduł karty pamięci kompatybilny EP11/11 z Arduino Moduł wyświetlacza LCD z mikrokontroleEP2/12 rem ATmega8 AVTduino RELAY moduł przekaźników EP3/12 AVTduino ETHERNET EP3/12 Płytka testowa do kursu BASCOM AVR EdW12/02 Płytka testowa do kursu C EdW1/06 AVTduino – sposób na AVR EP1/11 Konwerter USB<–>RS485 Moduł przekaźników na USB Ethernetowy moduł I/O Uniwersalny moduł portów I/O na USB Programator USB – AVR (STK500 v2) Mini programator USB – AVR (STK500 v2)
38 5 5,5 15 4 7 8 6 6 7 4 36
90 19 26 67 24 57 88 19 22 85 20 74
110
130 30 38 100 35 137 74 38 42
18 8 14
75 29 40
125 37 52
10
43
53
10
29
38
11
33
44
11
67
90
EdW1/05 EdW3/05 EP8/95 EP12/07 EP6/10
390 513 924 925 950/1
8-kanałowy przełącznik RC5/SIRC EP4/05 Zegar z 2-kanałowym termometrem EP10/03 Programowany sterownik świateł EP4/06 Karta przekaźników na USB EP4/06 Termostat elektroniczny EP9/06 Automat do zapalania świateł w samochoAVT 990 EP6/07 dzie AVT 1007 Regulator obrotów silnika elektrycznego EP8/94 AVT 1314 Najprostszy sterownik silnika krokowego EP8/01 AVT 1474 Generator fali prostokątnej EP8/08 AVT 1476 Włącznik zmierzchowy EP8/08 AVT 1510 Bariera laserowa EP1/09 AVT 1520 Zdalny włącznik radiowy EP4/09 AVT 1525 Sterownik unipolarnego silnika krokowego EP6/09 Regulator obrotów wentylatora 230 V AVT 1613 EP4/11 z silnikiem indukcyjnym AVT 2210 Najprostszy regulator mocy 230 V EdW3/97 Ładowarka akumulatorów żelowych – AVT 2309 EdW10/98 zasilacz buforowy AVT 2715 Ładowarka akumulatorów ołowiowych EdW3/04 2-kanałowy termometr z dwukolorowym AVT 5108 EP8/07 wyświetlaczem LED AVT 5250 Karta przekaźników z interfejsem Ethernet EP8/10 AVT 5330 8-kanałowy termometr do PC EP2/12 Czterokanałowy termometr z wyświetlaAVT 5389 EP5/12 czem LED AVT MOD01 Regulator impulsowy DC (15 A) AVT MOD08 Bezstykowa kontrola dostępu (RFID)
8
40
53
67
94
15
23
32
8
80
94
8
22
38
9
66
92
AVT 710
10 10 22 34 11
38 54 120 122 63
52 82 200 190 84 65 92 350 90 98 67
AVT 719
6 6 4 5 7
30 25 18 20 36
49 38 24 30 57
MT3/97
6
32
52
EdW3/98
6
37
58
EdW3/08
31
76
98
EdW1/12 EP10/02 EP3/12
AVT AVT AVT AVT AVT
12
Przyrządy warsztatowe Monitor i konserwator akumulatora Regulator impulsowy DC Miniaturowy zasilacz uniwersalny Uniwersalny układ czasowy Symetryczny zasilacz warsztatowy Najmniejszy moduł miniwoltomierza na AVT 2126 LCD AVT 2270 Moduł miliwoltomierza do zasilaczy Moduł woltomierza/amperomierza z terAVT 2857 mostatem AVT 2999 Mini Kombajn Pomiarowy AVT 5083 Mikroprocesorowy zasilacz laboratoryjny AVT 5333 Multimetr panelowy AVT MOD09 Konwerter USB <–> RS232 AVT MOD10 Miernik częstotliwości 50 MHz
Publ.
z VAT (23%)
A
B
C
Dla domu, samochodu, wypoczynku i zabawy EP10/04 EP11/94 EP10/94 EP11/08 EdW2/97 EdW8/97 EdW2/98 EdW2/00 EdW9/00 EdW3/01 EdW7/04 EdW5/08
Układy uP, uC i do PC AVT 1462 AVT 1610
Nazwa
60 40 23
170 56 49
260 70 36 46
17 30 22 22 36
36 88 38 67 94
50 140 55 80 143
5
26
40
6 6,5 5 4 6 36 22
30 38 28 24 50 69 38
48 45 50 32 90
6
34
52
5,1
25
33
6,3
24
39
6
36
59
29
78
106
52 22
190 64
280 95
27
65
110 64 140
Zestawy startowe AVT AVT AVT AVT
701 702 703 704
AVT 705
Zestaw startowy: rezystory – 660 szt. Zestaw startowy: kondensatory – 265 szt. Zestaw startowy: elektrolity – 100 szt. Zestaw startowy: półprzewodniki – 76 szt. Zestaw startowy: elementy mechaniczne – 600 szt. Zestaw do wykonywania płytek drukowanych Zestaw startowy diody LED – 142 szt.
19 26 26 16 25 28 28
Nowości AVT 1740 AVT 1741 AVT 1742
Zbliżeniowy włącznik oświetlenia Włącznik pompy odwadniającej Rozbudowany termostat Moduł sterownika komfortowych kierunAVT 1743 kowskazów Wzmacniacz mocy 10 W z układem AVT 1744 TDA2003 AVT 5401 Radioodbiornik kieszonkowy z RDS AVT 5399 Dwukanałowy multimetr panelowy AVT 5400 DMX Dimmer & Relay rozszerzeń dla Raspberry Pi. InterAVT 5402/1 Moduł fejs płytki stykowej Moduł rozszerzeń dla Raspberry Pi. Płytka AVT 5402/2 wejść analogowych Moduł rozszerzeń dla Raspberry Pi. Płytka AVT 5402/3 prototypowa AVT 5405 Komputer samochodowy AVT 5403 ADAU1701 – DSP dla każdego AVT 5404 Dwudrożna zwrotnica aktywna AVT 1745 Miniaturowy moduł przekaźników z RS485 Wzmacniacz o mocy 20 W z układem AVT 1746 LM1875 Wzmacniacz słuchawkowy z układem AVT 1747 TPA6111 AVT 1748 Zabezpieczenie akumulatora ołowiowego
EP5/13 EP5/13 EP6/13
20 8 8
39 26 22
EP6/13
12
56
EP6/13
6
18
EP6/13 EP6/13 EP6/13
18 23 28
51 96
EP6/13
12
19
EP6/13
8
53
52
27
EP6/13
14
22
EP7/13 EP7/13 EP7/13 EP7/13
14 10 12 18
68 34
49
EP7/13
8
36
48
EP7/13
6
EP7/13
5
24
Pełna oferta oraz prezentacje techniczne kitów i modułów są dostępne na stronie: sklep.avt.pl 130
ELEKTRONIKA PRAKTYCZNA 8/2013 Niniejsze ogłoszenie jest informacją handlową i nie stanowi oferty w myśl art. 66, § 1 Kodeksu Cywilnego. Ceny mogą ulec zmianie.
130_oferta.indd 130
2013-07-25 11:10:13
Prenumerata
za darmo lub półdarmo
Jeśli jeszcze nie prenumerujesz Elektroniki Praktycznej, to spróbuj za darmo! Warunkiem otrzymania 3-miesięcznej bezpłatnej prenumeraty próbnej od września jest wniesienie, jako swego rodzaju „kaucji”, opłaty za następne 9 miesięcy (144,00 zł). Jeśli nie uda nam się przekonać Cię do prenumeraty i zrezygnujesz z niej przed 16 listopada 2013 – otrzymasz zwrot całej swojej wpłaty. Nie musisz próbować, bo jesteś zdecydowany na prenumeratę? Wybierz relatywnie najtańszą opcję startową, czyli prenumeratę 2-letnią, której cenę obniżyliśmy o wartość aż 8 numerów! Jeśli już prenumerujesz EP, nie zapomnij przedłużyć prenumeraty. W ten sposb uzyskasz prawo do jeszcze atrakcyjniejszych zniżek – nawet do 50% ceny czasopisma! Szczegóły na www.ep.com.pl/oferta-prenumeraty. Prenumerata Elektroniki Praktycznej to również: • 80% zniżki na równoległą prenumeratę e-wydań (co oznacza dostęp do najnowszych wydań jeszcze przed ukazaniem się pisma w kiosku!) • 50% zniżki na archiwum EP (na PenDrive’ie, karcie lub DVD) – Prenumeratorzy płacą tylko 48 zł • 50% zniżki na wydania specjalne „Elektronika Praktyczna Plus” – Prenumeratorzy płacą tylko 13 zł • co miesiąc CD „Niezbędnik Elektronika”, a na nim m.in. narzędzia programowe, karty katalogowe i noty aplikacyjne (tylko dla Prenumeratorów) • zniżki w sklepie www.sklep.avt.pl • zniżki w wielu innych sklepach elektronicznych i inne przywileje Klubu AVT-elektronika (www.avt.pl/klub-elektronika)
Prenumerata to komfort na którym oszczędzasz! Zaprenumeruj Elektronikę Praktyczną w sierpniu, a otrzymasz – do wyboru: koszulkę z logotypem EP lub płytę War Child Heroes
A więc – zamów prenumeratę! Możesz to zrobić na kilka sposobów: • dokonując wpłaty na nasze konto: AVT-Korporacja Sp. z o.o., ul. Leszczynowa 11, 03-197 Warszawa, BNP Paribas Bank Polska SA, 97 1600 1068 0003 0103 0305 5153 • wypełniając formularz w Internecie (na stronie www.ep.com.pl/prenumerata.html) – tu można zapłacić kartą lub dokonać szybkiego przelewu • wysyłając na numer 663 889 884 SMS-a o treści PREN – oddzwonimy i przyjmiemy zamówienie (koszt SMS-a wg Twojej taryfy) • zamawiając za pomocą telefonu, e-maila, faksu lub listu. Informację, jaki prezent wybierasz, przekaż nam przed końcem sierpnia – mailem ([email protected]), faksem (22-257-84-00), telefonicznie (22-257-84-22) lub listownie (Wydawnictwo AVT, Dział Prenumeraty, ul. Leszczynowa 11, 03-197 Warszawa)
NIEZBĘDNIK ELEKTRONIKA
to płyta CD, którą co miesiąc dostają TYLKO PRENUMERATORZY EP. Niezbędnik elektronika to narzędzia programowe, karty katalogowe, noty aplikacyjne... Niezbędnik elektronika to krążek, który trzeba mieć. Nie pozwól, by taki rarytas przechodził Ci koło nosa: zaprenumeruj Elektronikę ę Praktyczną!
Tylko Prenumeratorzy mogą kupić pełne archiwum EP (lata 1993-2008) w formacie PDF ze zniżką 50%. Cena wynosi 96 zł, ale
dla Prenumeratorów tylko 48 zł!
Archiwum wydaliśmy na trzech nośnikach: DVD, karcie microSD i PenDrive’ie Zamówić je można na stronie sklep.avt.pl
Cena najnowszego wydania d EP+ to 26 zł, ł ale... Prenumeratorzy płacą jedynie 13 zł!
Nie lubisz płacić wszystkiego na raz? Pomyśl o stałym zleceniu bankowym: www.avt.pl/szb Dział Prenumeraty Wydawnictwa AVT, ul. Leszczynowa 11, 03-197 Warszawa, tel.: 22 257 84 22, faks: 22 257 84 00, e-mail: [email protected] 131_prenumerata.indd 131
2013-07-25 11:09:45
WYKAZ FIRM DZIAŁ OGŁASZAJĄCYCH SIĘ W TYM NUMERZE ELEKTRONIKI PRAKTYCZNEJ AKSOTRONIK ............................... 127 ARMEL ......................................... 125
Elektronika Praktyczna 9/2013 Kolejne gigabajty narzędzi niezbędnych nych do pracy konstruktora, czyli NIEZBĘDNIK ELEKTRONIKA na DVD. Tylko dla prenumeratorów EP.
ASTAT .......................................... 121 BORNICO ......................................... 8 DELTA ......................................... 127 ELMARK AUTOMATYKA ................... 9 ELMAX......................................... 126 ELPIN ........................................... 126 ELPOD.......................................... 125 EVATRONIX .................................... 25 FALDRUK........................................ 10 FARNELL....................................... 134 FERYSTER ....................................... 79 GAMMA .................................. 15, 79 GTB SOLARIS ................................ 125 HUMA ................................... 79, 126 KRADEX ....................................... 125 KRISTECH ..................................... 125 MASZCZYK..................................... 79 NATIONAL INSTRUMENTS .............. 91 NDN ........................................ 3, 133 PHOENIX CONTACT ........................ 31
Zasilacz Warsztatowy Zbudowanie dobrego zasilacza warsztatowego o gwarantowanych parametrach to wyzwanie dla każdego elektronika. Współcześnie zasilacze są często budowane w oparciu o mikrokontroler, który za pomocą PWM układami regulatora. We wrześniowej EP zaprezentujemy taki zasilacz zbudowany w oparciu o mikrokontroler PIC.
Akcesoria do Raspberry Pi Komputerek Raspberry Pi cieszy się ogromną i stale rosnącą popularnością. We wrześniowej EP zaprezentujemy kolejne płytki z układami peryferyjnymi, które rozszerzają możliwości aplikacji tego ciekawego komputerka. Będą to: ekspander I/O (16 linii wejścia/wyjścia), rozdzielacz USB (4 porty) oraz sterownik silników prądu stałego. W przygotowaniu kolejne!
Multimetr panelowy Mierniki tego typu cieszą się bardzo dużym zainteresowaniem, ponieważ są stosowane w wielu miejscach w pracowni elektronika. W czerwcowej EP multimetr, który można użyć w konstruowanym przez siebie zasilaczu, wskaźniku itp.
Wzmacniacz klasy D o mocy 10 W Nowoczesny, stereofoniczny wzmacniacz audio zbudowany w oparciu o układ MAX9768. Może zasilać kolumny o impedancji 4 lub 8 Ohm. Jego parametry są regulowane za pomocą napięcia.
PIEKARZ ................................. 79, 127 PYFFEL ......................................... 125 QWERTY .......................................... 9 RENEX ........................................... 79 SEMICON ....................................... 33 ST MICROELECTRONICS ...................... ................................ 5, 21, 23, 37, 39 TELMATIK .................................... 125 TESPOL .......................................... 13 TRANSFER ELEKTRONIK ................ 125 WG ELECTRONICS .......................... 43 WOBIT .................. 79, 119, 123, 126 Reklamy 132 stron internetowych na str. 79
132_zapowiedzi.indd 132
ELEKTRONIKA PRAKTYCZNA 8/2013
2013-07-25 11:09:23
000_wklejka_CD.indd 1
2013-07-25 10:17:59
13 Niezbędnik EP 8/20 a: więcej na str. 8 b dnik elektronik Niezbę
CDEP 8/2013 Dodatkowe materiały do artykułów: • Programowanie w LabView Dodatkowe materiały do projektów: • Projekty pokrewne • Noty katalogowe • Programy • Źródła • PCB
, P T F R E W R E S Y N J Y C K A D E R : . N I . M M I N A NA Dodatkowe materiały oraz poprzednie części do artykułów: • Programowanie w LabView
Dane wymagane do logowania na serwerze FTP Elektroniki Praktycznej: host: ftp://ep.com.pl • user: 62828 • pass: 18ofqn10 Uwaga: na serwerze FTP są dostępne materiały od numeru 12/2009 do wydania bieżącego. Dostęp do poszczególnych materiałów dla Czytelników EP po podaniu unikatowego hasła opublikowanego w EP.
000_wklejka_CD.indd 2
2013-07-25 10:18:00
Multimetr cyfrowy HMC8012
ή NOWO
y y y y y
5 ¾-cyfrowy wyświetlacz (max. wskazanie 480.000 ) Jednoczesne wyświetlanie 3 pomiarów, np. DC + AC + Stat. Do 200 pomiarów na sekundę Dokładność podstawowa 0.015% 12 pomiarów i funkcji: DCV, DCI, True RMS ACV i ACI, częstotliwość, pomiar rezystancji 2- i 4-przewodowy, pojemność, ciągłość, test diody, temperatura, moc Rozdzielczość: 1μV, 100 nA, 1mΩ, 1pF, 1 Hz, 0,1 ° C Pomiar wartości skutecznej True RMS AC, AD + DC Funkcje: limit, min./maks., średnia, offset, DC, dB, dBm Pomiary temperatury z czujników platynowych (PT100/ PT500/PT1000) Rejestracja danych w formacie CSV do wewnętrznej pamięci lub USB-pendrive Interfejsy: USB-TMC i Ethernet (LXI), opcja IEEE-488 Obsługa komend SCPI - kompatyb. np. z Agilent 34410A
y y y y
Nowe oscyloskopy serii: HMO3000: HMO3032/HMO3034, 300MHz, 2/4 kana³y HMO3042/HMO3044, 400MHz, 2/4 kana³y HMO3052/HMO3054, 500MHz, 2/4 kana³y y y y y y y y y y y y
y y y
Próbkowanie o częstotliwości 4GSa/s w czasie rzeczywistym Pamięć akwizycji o pojemności 8M punktów/kanał Rozciąg przebiegu funkcją Zoom w stosunku 200 000:1 Tryb sygnałów mieszanych MSO z 8/16 kanałami logicznymi Opcjonalne wyzwalanie szeregowe I2C + SPI + UART/RS-232 (HOO10/ HOO11), CAN + LAN (HOO12) Czułość odchylania pionowego 1mV/dz, regulacja składowej stałej w zakresie ±0,2…±20V Tryby wyzwalania: zbocze, sygnał wideo, szerokość impulsu, stan logiczny, wyzwalanie z opóźnieniem (czas, zdarzenie) Analiza widmowa przebiegu szybką transformatą Fouriera (FFT) 6-cyfrowy częstościomierz, funkcja samonastawności Autoset, pomiary automatyczne, edytor formuł 3 porty USB do podłączenia pamięci masowej, drukarki W oscyloskopach serii HMO3000 (300 i 400MHz) można zwiększyć pasmo do 500MHz przez zakup licencji
Analizatory widma: HMS1000/HMS3000 y y y y y y y y y y y
Pasmo częstotliwości: 100kHz…1GHz/3GHz Zakres pomiaru amplitudy: -114dBm…+20dBm; Wyświetlany średni poziom szumu (DANL) -125dBm/-125dBm z opcjonalnym przedwzmacniaczem HO3011 Pasmo rozdzielczości (filtr RBW): 100kHz 1kHz…1MHz ze skokiem 1-3, oraz 200kHz (-3dB) i dodatkowo 9kHz, 120kHz, 1MHz (-6dB) Czystość widmowa: < -100dBc/Hz (przy100kHz) Pasmo filtru wideo (VBW): 10Hz…1MHz ze skokiem 1-3 Generator śledzący (TG) (HMS1010/HMS3010): -20dBm…0dBm Zintegrowany demodulator AM i FM (wewnętrzny głośnik) Detektory: Auto-, min-, max-peak, sample, RMS, quasi-peak 8 znaczników wraz ze znacznikiem różnicowym 6,5” kolorowy ekran TFT o rozdzielczości VGA, wyjście DVI 3 porty USB do podłączenia pamięci masowej, drukarki
Gdzie liczy się mobilność
Generator sygnałowy na dziś i na jutro
R&S®FSH4/8/13/20
Zasilacze programowalne serii HMP y y y y y y y y y
HMP2020: 1 x 0…32V/0…10A, 1 x 0…32V/0…5A HMP2030: 3 x 0…32V/0…5A, HMP4030: 3 x 0…32V/0…10A, HMP4040: 4 x 0…32V/0…10A, Niski poziom tętnień <150μV Wysoka rozdzielczość ustawienia i odczytu 1mV/0,1mA Izolowane galwanicznie od siebie i od masy wyjścia Zaawansowany tryb pracy równoległej i szeregowej wyjść ze śledzeniem napięcia lub prądu Definiowanie dowolnych charakterystyk napięcia i prądu Interfejs USB/RS-232; opcja IEEE-488 lub Ethernet/USB
Najszybszy analizator na rynku - 1000 przebiegów/s
R&S®FSV
R&S®SMBV100A
Przenośne analizatory widma do 20 GHz Wektorowe generatory sygnałowe
Analizatory sygnałów
EMC-PCS 3 Zestaw do analizy EMC
W skład zestawu wchodzą: nowoczesny analizator spektralny HMS3000, sieć sztuczna HM6050-2, zestaw sond HZ540 i oprogramowanie HM EMC PreCom pod system operacyjny Windows. ● HMS3000 (3 GHz Analizator widma)
● HM6050-2 (Sieć sztuczna)
elektromagnetycznej (Oprogramowanie pracuje pod systemem Windows 32 bit i obsługuje moduł HO720 standardowych interfejsów RS232/USB).
!! E I N A Z Ą I W Z O R E W O GOT
● HZ540 (3 aktywne sondy szerokopasmowe)
Pasmo: 100kHz÷3GHz, okres przemiatania częstotliwości: 20ms÷1000s, pasma filtrów rozdzielczych: 100Hz÷1MHz skokowo w sekwencji 1-3, 200kHz (-3dB), dodatkowo 200Hz, 9kHz, 120kHz, 1MHz (-6dB), pasma filtru video: 10Hz÷1MHz skokowo w sekwencji 1-3
®
Pomiar zakłóceń przenoszonych przez sieć zasilającą w zakresie częstotliwości 9kHz÷30MHz (CISPR 16), włączany ogranicznik impulsów przepięciowych, gniazdo do podłączenia "sztucznej ręki"
● HM PreCom EMC (Oprogramowanie) HM PreCom EMC analizatora widma pozwala na wstępne pomiary zgodności z wymaganiami norm kompatybilności
Zestaw HZ540 składa się z: - Sonda pola magnetycznego (typ H) - Sonda wysokoimpedancyjna - Sonda pola elektrycznego (typ E)
02-784 Warszawa, ul. Janowskiego 15 tel./fax (22) 641-15-47, 644-42-50 http://www.ndn.com.pl e-mail: [email protected]
133.indd 133
2013-07-25 11:09:02
POTRZEBUJESZ SZYBKO ATRAKCYJNEJ OFERTY CENOWEJ? RZUĆ WYZWANIE
NASZEMU SPECJALIŚCIE! f szybkie oferty na każdy z 500 000 produktów f 9900 obniżonych cen f 7000 linii produktowych kwotowanych dziennie
Skontaktuj się z nami w sprawie oferty: Wyślij wiadomość e-mail: [email protected] Zadzwoń: 00800 121 29 67 lub prześlij zapytanie ofertowe przez internet na stronie pl.farnell.com/oferty 134.indd 134
farnell.com 2013-07-25 11:08:46