Tu już drugie urządzenie tego typu wykonane przeze mnie. Poprzednie miało kilka wad i dlatego zdecydowałem się zaprojektować urządzenie od nowa. Największą wadą poprzedniego projektu było użycie tanich przekaźników, które ciągle się psuły (nie zapewniały poprawnego styku) i powodowały trzaski w kolumnach.
Przełącznik kolumn głośnikowych składa się z dwóch modułów: sterującego i wykonawczego. Moduł sterujący jest niewielkim urządzeniem, którego obudowa jest przewidziana do mocowania na ścianie. Na wyświetlaczu można odczytać, do których pokojów są aktualnie przyłączone stereofoniczne zestawy muzyczne, a za pomocą przycisków przełączyć kolumny.
Moduł wykonawczy realizuje przełączanie kolumn za pomocą przekaźników oraz zapewnia obciążenie wyjść zestawów audio rezystorami w czasie przełączania (najpierw do wyjścia jest dołączany rezystor obciążający, odłączane są aktualnie przyłączone kolumny, przyłączane są kolumny w innym pokoju i dopiero wtedy jest odłączany rezystor), dzięki czemu nie ma sytuacji, w której wyjście audio nie byłoby wcale obciążone, co ma tym większe znaczenie, im głośniej słuchamy muzyki w czasie przełączenia.
Moduł wykonawczy mam zamontowany w domu, we wnęce w ścianie, dzięki czemu nie widać plątaniny kabli, które są dołączone (dla dwóch zestawów i pięciu pokojów potrzeba 14 kabli głośnikowych).
Oprogramowanie uniemożliwia przyłączenie dwóch zestawów muzycznych do tych samych kolumn, co mogłoby doprowadzić do uszkodzenia wzmacniaczy mocy. Dodatkowo, każdy z kanałów wzmacniacza jest zabezpieczony bezpiecznikiem topikowym. Nastawy przełącznika są zapamiętywane w pamięci EEPROM modułu sterującego, za wyjątkiem przyporządkowania zestawów do pomieszczeń, co zostaje zapisywane w pamięci EEPROM modułu wykonawczego w momencie wyłączania zasilania sieciowego.
Przełącznik ma zabezpieczenie przed stanami nieustalonymi polegającymi na krótkotrwałym załączaniu się przekaźników w momencie włączenia zasilania sieciowego. Zabezpieczenie takie jest konieczne, aby nie uszkodzić końcówek mocy zestawów w przypadku włączania przełącznika kolumn w czasie, gdy pracują oba zestawy muzyczne.
Moduły są połączone typowym kablem telefonicznym (4 żyły), którym są przesyłane zarówno dane, jak i zasilanie do modułu sterującego. W warstwie sprzętowej zastosowałem standard RS485, który umożliwia różnicową transmisję sygnałów na duże odległości (nawet rzędu kilkuset metrów).
Sterowanie jest realizowane za pomocą mikrokontrolera ATMega8, a dane są prezentowane na wyświetlaczu LCD 2×16 znaków. W module sterującym przewidziano możliwość przyłączenia klawiatury komputerowej w celu zmiany nazw zestawów muzycznych i pokojów, jednak nie zostało to wykorzystane, ponieważ napisałem oprogramowanie w taki sposób, aby wszystkie parametry urządzenia zmieniać przy pomocy dwóch przycisków w urządzeniu. Zastosowałem przekaźniki o obciążalności 8 A i złącza o obciążalności 6 A. W celu zmniejszenia mocy traconej w module sterującym zastosowałem zasilacz impulsowy ze względu na stosunkowo duży prąd (150 mA) pobierany przez podświetlanie wyświetlacza. Dzięki dużej sprawności zasilacza, do zasilenia urządzenia wystarcza transformator o mocy 4 VA.
Obydwa moduły mają złącza dla programatorów w standardzie ISP-6PIN/Atmel. Płytki drukowane mają przewidziane miejsca służące do dołączenia kwarców do mikrokontrolerów, jednak nie zostało to wykorzystane, ponieważ testy pokazały, że transmisja przy szybkości 9600 b/s jest realizowana bezbłędnie przy taktowaniu za pomocą wewnętrznego generatora RC.
Funkcje urządzenia
Podstawową funkcją urządzenia jest przyłączenie wzmacniaczy dwóch zestawów muzycznych, stereofonicznych do kolumn ustawionych w pięciu pokojach. Jest to realizowane poprzez przyporządkowanie pokojów do zestawów na ekranie modułu sterującego. Lewym przyciskiem ustawia się przypisanie pokoju do zestawu wyświetlanego w górnym wierszu wyświetlacza, a prawym przyciskiem, do zestawu wyświetlanego w dolnym wierszu. Możemy zmienić przypisanie obu zestawów w tym samym cyklu przełączenia, gdyż po zmianie wartości jednego z nich program czeka przez chwilę na zmianę przypisania drugiego i dopiero po chwili przełącza kolumny.
Program umożliwia również konfigurowanie urządzenia. Przejście do trybu konfiguracji następuje po przytrzymaniu obydwu przycisków przez ponad 1 sekundę. Lewym przyciskiem przechodzimy do konfigurowania kolejnych elementów, a prawym przyciskiem zmieniamy wartości danego parametru. Po przejściu do następnego parametru jest zapamiętywana wartość poprzedniego parametru.
Możliwe jest ustawienie następujących parametrów.
1. Czas podświetlania (10 s, 20 s, 30 s, 1 min, 2 min, 5 min, ciągłe).
2. Liczba pokoi (od 2 do 5).
3. Nazwy zestawów muzycznych.
4. Nazwy pokojów.
Zmiana nazw wież i pokojów możliwa jest po naciśnięciu i przytrzymaniu lewego przycisku przez czas dłuższy od 1 s. W trybie tym jest włączany kursor, który pokazuje pozycję edytowaną. Kolejne krótkie przyciśnięcia lewego przycisku zmieniają pozycję kursora. Kolejne naciśnięcia przycisku prawego powodują wstawianie w pozycji kursora kolejnych liter, cyfr oraz polskich znaków. Dłuższe naciśnięcie przycisku prawego powoduje wstawiania kolejnych znaków najpierw wolno, a po 3 znakach szybko. Z edycji nazw wychodzimy poprzez ponowne dłuższe naciśnięcie lewego przycisku.
Tryb testowy, w którym pokazywane są hexadecymalnie bajty nadawane i odbierane przez moduł sterujący. Wyjście z trybu konfiguracji możliwe jest poprzez dłuższe naciśnięcie obydwu przycisków. Automatyczne wyjście z konfiguracji następuje, jeśli nie jest naciskany żaden przycisk przez 1 minutę.
Budowa
Na rysunku 1 pokazano schemat modułu sterującego, a na rysunku 2 płytki przycisków. Jest on typowym systemem z mikrokontrolerem ATmega8 i wyświetlaczem LCD o rozdzielczości 2×16 znaków. Potencjometr PR1 umożliwia ustawienie kontrastu, a tranzystor T1 steruje włączeniem podświetlania. Do wyświetlacza przylutowano listwę goldpin, a na gnieździe wpiętym do tej listwy zrealizowano podłączenia do masy nieużywanych końcówek wyświetlacza oraz przylutowano kabel ze złączem zaciskanym na kablu 2×5 pinów. Jako driverów linii transmisyjnej użyto układów MAX485. Moduły są połączone standardowym, 4-żyłowym kablem telefonicznym. Kable, które kupiłem miały połączenie "na krzyż" (1-4, 2-3, 3-2, 4-1) i dlatego przeprojektowałem PCB, aby takim kablem można było połączyć urządzenia. Zasilanie jest przesyłane parą przewodów dołączoną do końcówek 1-4, a transmisja parą przewodów 2-3. Dioda D1 zabezpiecza układ przed odwrotnym połączeniem zasilania. Rezystor R1, kondensator C8 i dioda D3, to układ zerowania kontrolera zalecany przez producenta. Zasilanie jest zrealizowane za pomocą układu LM2574N pracującego w typowej aplikacji.
Wykaz elementówModuł sterujący Rezystory: (SMD 1206) Kondensatory (SMD 1206): Półprzewodniki: Inne: Moduł wykonawczy Rezystory (SMD 1206): Kondensatory (SMD 1206): Półprzewodniki: Inne: |
Schemat ideowy modułu wykonawczego pokazano na rysunku 3. Oprócz wspomnianych wcześniej przekaźników przełączających źródła sygnałów, zawiera on:
- Zasilacz sieciowy.
- Drivery przekaźników wykonane na układach ULN2003A.
- Układ wykrywający zanik napięcia sieciowego.
- Sterownik zasilania modułu sterującego i przekaźników.
Wykrywanie zaniku napięcia sieciowego zrealizowano na diodzie D23, kondensatorze C10, rezystorach R30 i R34 oraz tranzystorze T1. Do sygnalizowania zaniku napięcia wykorzystano wejście przerwania INT0 mikrokontrolera.
Sterowanie zasilaniem modułu sterującego i przekaźników wymaga omówienia. Blok ten pełni dwie funkcje:
- Likwiduje stany nieustalone powodujące przypadkowe załączania przekaźników, które są niedopuszczalne w tym zastosowaniu.
- Wyłącza moduł sterujący i przekaźniki w momencie wykrycia zaniku zasilania sieciowego, co wydłuża czas zasilania mikrokontrolera układu wykonawczego po odłączeniu zasilania i umożliwia zapisanie danych w pamięci EEPROM.
Moduł ten składa się z rezystorów R33 i R31, kondensatora C11, tranzystorów T2 i T3. Do jego sterowania służą dwa wyprowadzenia mikrokontrolera: PD4 steruje włączaniem zasilania, a PD5 rozładowuje C11 w momencie wyłączenia zasilania. Umożliwia to poprawne działania układu w przypadku wyłączenia i natychmiastowego jego załączenia.
Na rysunku 4 pokazano oscylogram zdjęty w czasie włączania zasilania. Pokazuje on przebieg napięcia zasilania na kondensatorze CE1 (żółty przebieg) oraz napięcie na przekaźnikach (zielony przebieg). Kondensator nie był całkowicie rozładowany (występowało na nim napięcie ok. +5 V). Górna linia (żółta) pokazuje napięcie +7 V, przy którym działa prawidłowo stabilizator modułu wykonawczego. Przekaźniki zasilane są po ok. 175 ms od załączanie zasilania, gdy kondensator CE1 jest naładowany.
Na rysunku 5 pokazano oscylogram zdjęty podczas wyłączania układu. Pokazuje on napięcie zasilania na kondensatorze CE1 (żółty przebieg) oraz napięcie na wejściu INT0 mikrokontrolera (zielony przebieg). Zagięcie charakterystyki żółtej (przecięcie z lewą linią niebieską) to moment zadziałania przerwania i odłączenia napięcia zasilającego moduł wykonawczy i przekaźniki. Do spadku napięcia do +7 V (prawidłowe zasilanie stabilizatora) upływa ok. 110 ms, co w zupełności wystarcza do zapisu pamięci EEPROM (zapisujemy tylko jeden bajt).
Montaż
Schemat montażowy modułu sterującego pokazano na rysunku 6, natomiast wykonawczego na rysunku 7. Przełącznik jest zbudowany z elementów mieszanych, jednak elementy SMD są w "dużych" obudowach 1206, które nie powinny sprawić trudności w montażu.
We fusebitach zmieniono jedynie taktowanie mikrokontrolera z 1 MHz na 8 MHz. Ustawienie najważniejszych fusebitów mikrokontrolerów:
Oprogramowanie
Oprogramowanie napisano w Bascom AVR. Oprogramowanie modułu sterującego zajmuje 83% pamięci Flash, a modułu wykonawczego 23%. Jednym z najistotniejszych algorytmów jest sposób przełączania wież. Czynności wykonywane przez program można przedstawić w punktach:
- Dołącz rezystor do zestawu 1.
- Opóźnienie
- Odłącz pokój od zestawu 1.
- Dołącz rezystor do zestawu 2.
- Opóźnienie.
- Odłącz pokój od zestawu 2.
- Opóźnienie.
- Dołącz pokój do zestawu 1.
- Opóźnienie.
- Odłącz rezystor od zestawu 1.
- Dołącz pokój do zestawu 2.
- Opóźnienie.
- Odłącz rezystor od zestawu 2.
Zaprezentowano w nich najbardziej złożony przypadek, gdy przełączane są równocześnie dwie wieże.
Ze względu na to, że moc transformatora 4 VA jest na granicy mocy przy równocześnie załączonych przekaźnikach i podświetlaniu wyświetlacza przyjęto, że nie mogą być równocześnie załączone obydwa przekaźniki załączające rezystory obciążenia. Zastosowano opóźnienia 50 ms pomiędzy cyklami przełączania, co z dużym zapasem zapewnia załączenie i zwolnienie przekaźników, jak i czas na zlikwidowanie drgań zestyków przekaźników.
Modułem nadrzędnym jest moduł sterujący. Wysyła on rozkaz przełączenia zestawów muzycznych lub zapytanie o stan połaczeń. Rozkazy i odpowiedzi są jednobajtowe. Rozkaz przełączenia wież składa się z dwóch półbajtów i podaje, do których pokojów mają być dołączone wieże:
- Zawartość bajtu informacji: 11112222.
- 1111 - wartość od 1 do 5 oznacza przyłączenie zestawu 1 do pokoju 1...5.
- 2222 - wartość od 1 do 5 oznacza przyłączenie zestawu 2 do pokoju 1...5.
Rozkaz przełączenia wież może mieć wartość od &H12 do &H54. Zapytanie o stan podłączenia pokoi do wież ma wartość &HAA. Moduł wykonawczy odpowiada stanem przyłączenia wież lub w przypadku błędu odpowiada bajtem &HA8.
Krzysztof Ciesiółka
krzysztof.ciesiolka@kimball.com