Problem diody RGB w przycisku 14

HAPCAN installation tips and troubleshooting when assembling, commissioning and configuring devices.
Rozwiązywanie problemów z instalacją HAPCAN, budową, uruchamianiem i konfiguracją urządzeń.
Post Reply
zetbees
Posts: 50
Joined: 29 Sep 2015, 18:26
Contact:

Problem diody RGB w przycisku 14

Post by zetbees »

Ponieważ koncepcja przycisku w ścianie zakładała pewną responsywność, stwierdziłem, że najlepiej byłoby to uzyskać za pomocą diod RGB.
Po wielu próbach uwzględniających poziom świecenia przy niewielkich prądach podawanych przez przycisk 14-stanowy wybrałem diody OSTAMC5B32A
(opis tu :http://www.tme.eu/pl/Document/c2d4770ef ... C5B32A.pdf)
W przypadku podłączenia tylko 1 diody efekty były bardzo obiecujące. Ale przyszedł czas na "poważny" ostateczny montaż. Zacząłem od jednego z najbradziej rozbudowanych przycisków - 5 modułów monostabilnych + dodatkowo 5 diod RGB (wykorzystane wszystkie 14 kanałów).
Diody podłączone do przez wspólną katodę do LED COM, przyciski do BUT COM. Oczywiście pamiętałem o cyklicznym odczycie, co było opisane w jednym z wątków.
Pierwsze co zwróciło moją uwagę, że przy takim połączeniu nawet jak wszystkie diody były jako "wyłączone" to trochę się żarzyły jeśli w przypadku diod jest to prawidłowe określenie, po ustawieniu na załącz dany kolor jaśniał pełnym blaskiem.
Co więcej wszystkie kanały do których były podłączone moduły zielone były sygnalizowane jako przycisk wciśnięty

Program miał być stosunkowo prosty
- naciśnięcie przycisku 1 załącza część zieloną diody 1 i neguje przekaźnik 1 w module przekaźników
- ponowne naciśnięcie załącza niebieską część diody i neguje przekaźnik 1 w module przekaźników
Po restarcie modułu przez 1 pętlę działało dobrze a potem mimo naciskania przycisku moduł nie robił nic - pojawiała się wiadomość na monitorze zdarzeń, że przycisk wciśnięty ale bez efektu ze strony przekaźnika.
Ponieważ była już późna godzina następnego dnia zabrałem się za kolejny, prostszy, 2 pozycyjny przekaźnik. Mimo użycia tych samych diod tym razem zielone diody nie powodowały sygnalizacji wcisniętego przycisku. Program trochę zmodyfikowałem, ale najdziwniej zaczął zachowywać się moduł przycisku. Zaprogramowałem zasady zapalania się diod, zapisałem program. Po czym jak wczytałem zobaczyłem tylko puste komórki a diody zapala jak chce. Przyciski działają dobrze.

Zrzuty ekeranu z programowania na stronie http://bms.halemba.info/hapcan-forum/
Jacek
Posts: 560
Joined: 17 Feb 2007, 18:00

Re: Problem diody RGB w przycisku 14

Post by Jacek »

zetbees wrote:Pierwsze co zwróciło moją uwagę, że przy takim połączeniu nawet jak wszystkie diody były jako "wyłączone" to trochę się żarzyły jeśli w przypadku diod jest to prawidłowe określenie, po ustawieniu na załącz dany kolor jaśniał pełnym blaskiem.
Wynika to z tego, że co 20ms na kilkanaście mikrosekund przewód zasilający LED przełącza się i pracuje jako wejście, by odczytać stan przycisków. W tym momencie panuje na linii stan wysoki, a ponieważ trwa bardzo krótko, to na niektórych diodach można zaobserwować "żarzenie"
zetbees wrote:Co więcej wszystkie kanały do których były podłączone moduły zielone były sygnalizowane jako przycisk wciśnięty
Niektóre diody mogą mieć spadek napięcia w kierunku przewodzenia na tyle mały, że odczytywane jest to przez moduł jako zwarcie przycisku. Wstaw szeregowo z tą LED diodę prostowniczą lub dobrany eksperymentalnie rezystor.
zetbees wrote:Program miał być stosunkowo prosty
- naciśnięcie przycisku 1 załącza część zieloną diody 1 i neguje przekaźnik 1 w module przekaźników
- ponowne naciśnięcie załącza niebieską część diody i neguje przekaźnik 1 w module przekaźników...
Coś tu jest nie jest dla mnie jasne. Nie wiem jaki chciałeś uzyskać efekt, ale nie ma takiej funkcji "ponowne naciśnięcie przycisku". Wciśnięty przycisk może uruchomić zawsze te same instrukcje, czyli jeśli wciśnięcie ma załączyć diodę zieloną, to każde wciśnięcie będzie tę diodę załączać. Nie ma w obecnym firmware rozróżnienia czy przycisk został wciśnięty pierwszy raz, czy drugi raz.

Na rysunku poniżej program włącza LED 14 gdy przekaźnik K1 jest wyłączony i wyłącza LED 14, gdy ten sam przekaźnik jest włączony. Natomiast LED 9 zawsze będzie włączona, bo wykorzystujesz tę samą wiadomość do wyłączenia (boks 2) i następnie włączenia (boks 3) tej diody.
2.png
Jeśli chciałeś uzyskać efekt:
przekaźnik K1 włączony -> świeci LED zielona G
przekaźnik K1 wyłączony -> świeci LED niebieska B
to program przycisku powinien wyglądać tak:

Code: Select all

Włącz LED G,  jeśli K1 włączony  (=30 =20 =15 =0B =FF =FF =01 =FF =FF xFF xFF xFF)
Wyłącz LED G, jeśli K1 wyłączony (=30 =20 =15 =0B =FF =FF =01 =00 =FF xFF xFF xFF)
Włącz LED B,  jeśli K1 wyłączony (=30 =20 =15 =0B =FF =FF =01 =00 =FF xFF xFF xFF)
Wyłącz LED B, jeśli K1 włączony  (=30 =20 =15 =0B =FF =FF =01 =FF =FF xFF xFF xFF)
Operator "x" oznacza, że te wartości w tych bajtach nie są brane pod uwagę (spójrz proszę do dokumentacji przekaźnika http://hapcan.com/devices_pl/universal/ ... -1a_pl.pdf Tabela1, jakie informacje są w tych bajtach)


Podczas programowania przekaźnika niepotrzebnie uzależniasz wykonanie instrukcji od stanu LED w module przycisk (rysunek poniżej) - dokument http://hapcan.com/devices_pl/universal/ ... -0a_pl.pdf, tabela1, bajt D4. Bajt ten powinien być oznaczony operatorem "x", bo inaczej przekaźnik zaneguje się tylko wtedy, kiedy LED będzie wyłączona. Z operatorem "x" przekaźnik zaneguje się niezależnie od stanu diody.
1.png
Regards
Jacek
zetbees
Posts: 50
Joined: 29 Sep 2015, 18:26
Contact:

Re: Problem diody RGB w przycisku 14

Post by zetbees »

Faktycznie wziąłem stan diod do warunku - ale po prostu użyłem funkcji "przechwyć" i nie przeanalizowałem dokładnie ramki. Teraz działa.
Ale jeden z modułów przycisku nadal nie widzi zapisanego programu - tzn. wykonuje go ale próba odczytu pokazuje puste komórki. Reset modułu nie pomógł.
zetbees
Posts: 50
Joined: 29 Sep 2015, 18:26
Contact:

Re: Problem diody RGB w przycisku 14

Post by zetbees »

Rozszerzając temat diod w przycisku i wyjaśniając po co mi one:

- używam przycisków Vimar Arke - jednym z ich plusów oprócz wyglądu co oczywiście jest sprawą względną - jest możliwość zastosowania diody do podświetlenia przycisku. Można kupic ichniejszą oryginalną niebieską , ale ponieważ jest to projekt DIY można wstawić inną.
Mój wybór padł na diodę firmy Optosupply OSTAMC5B32 - jest to dioda RGB i mimo pocżatkowych obaw i stosunkowo wysokiego prądu potrzebnego do świecenia (20mA) - świeci dość jasno jako dioda wykorzystywana przez przycisk 14-kanałowy.
- w moich zamierzenia - jeśli nie jest zaświecony dany kanał to dioda w czuwaniu świeci na niebiesko a po zapaleniu lampy zmienia kolor na zielony w przypadku gdy przycisk obsługuje lampy, w pozostałych w czuwaniu świeci "magenta" a zapalona to czerwone bądź żółte.

I tu pojawia się problem ustawienia diod w momencie startu systemu - brakuje ramki pt. "uwaga startuję!" która mogłaby być wykorzystana do startowego ustawienia diod.
Próbowałem wykorzystać ramkę termostatu z wartością x80 (jako przy starcie sytemu) ale nie działa.
Zresztą monitor LAN można uruchomić dopiero jakiś czas po starcie i nie widać co się dzieje na początku.
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Problem diody RGB w przycisku 14

Post by Bartek »

Tak na dobrą sprawę to nie powinieneś ustawiać startowego stanu diody, tylko powinieneś zainicjować diodę aktualną wartością światła.Teoretycznie zatem na magistralę powinno pójść po starcie zapytanie o status do przekaźników i w reakcji na odpowiedź od nich dioda powinna przyjąć oczekiwany stan. Problem tylko w tym, że przekaźnik ustawi bit odpowiedzi a moduły hapcana ignorują takie wiadomości.
W mojej arduinowej implementacji można sobie wybrać czy moduł ma ignorować odpowiedzi czy również je przetwarzać. Dzięki temu będzie mógł sam odpytywać moduły o status jak będzie go potrzebował.

Myślałem, że można by wykorzystać np wiadomość z zegara RTC z modułu ethernet, ale nawet jeśli to wykorzystasz do resetowania diod, to będziesz musiał przy zmianie stano diody wyłączyć boxa z resetem diod. Jeśli wyłączysz boxa to z kolei po restarcie nie zadziała on i dioda się nie zresetuje ;).

Ale jeszcze mi przyszedł do głowy pomysł, żeby do modułu przycisku podłączyć kondensator elektrolityczny z rezystorem ładującym (i rozładowującym). Po starcie na wejściu będziesz miał przez chwilę przycisk wciśnięty a po chwili jak kondensator się naładuje dostaniesz wiadomość, że przycisk puszczony - który można by wykorzystać jako sygnał startu systemu. Czas ładowania trzeba by dobrać tak, żeby moduły zdążyły się zainicjować.
zetbees
Posts: 50
Joined: 29 Sep 2015, 18:26
Contact:

Re: Problem diody RGB w przycisku 14

Post by zetbees »

Masz oczywiście rację, że dioda powinna odzwierciedlać stan przekaźnika modułu i tak mam właśnie zrobione. Na pewno jest też wiele rozwiązań za pomocą urządzeń zewnętrznych od kondesatora począwszy, ale irytuje mnie, że takiej funkconalności nie ma w "natywnym" Hapcan'ie.

Co do drugiej sprawy - czyli logów - jeśli chodzi o temperaturę to nie znalazłem gotowych rozwiązań typu Domoticz czy HomeGenie, wydaje się, że dobrym kierunkiem jest pomysł kompio - wykorzystania moskita jako interfejsu między Hapcane a systemem wizualizacji.
Jako tako działa mi mój skrypt w pythonie, ale ciągle borykam się z problemem gubiących się ramek :(

Trzymam a jakże też kciuki za Twoje rozwiązanie - może z tej strony da się rozszerzyć Hapcana.
Jacek
Posts: 560
Joined: 17 Feb 2007, 18:00

Re: Problem diody RGB w przycisku 14

Post by Jacek »

zetbees wrote:I tu pojawia się problem ustawienia diod w momencie startu systemu - brakuje ramki pt. "uwaga startuję!" która mogłaby być wykorzystana do startowego ustawienia diod.
Wykorzystaj jedno wejście modułu przycisk. Zewrzyj je na stałe - tak jakby przycisk był zawsze wciśnięty. Po podłączeniu zasilania do tego modułu wyśle on po informację o wciśniętym przycisku. Uzależnij stan startowy systemu od tej właśnie wiadomości. Najlepiej użyj wiadomości "przycisk wciśnięty i przytrzymany przez 4s" - po to by pozostałe urządzenia zdążyły wystartować i odebrać tę informację.
zetbees wrote:Zresztą monitor LAN można uruchomić dopiero jakiś czas po starcie i nie widać co się dzieje na początku.
Nie odłączaj zasilania od modułu interfejsu tylko od pozostałych modułów - wtedy dowiesz się jakie informacje są wysyłane podczas startu.
zetbees wrote:Ale jeden z modułów przycisku nadal nie widzi zapisanego programu - tzn. wykonuje go ale próba odczytu pokazuje puste komórki. Reset modułu nie pomógł.
Brzmi magicznie. Rozumiem, że program był widoczny jak go zapisywałeś. A próbowałeś skasować boksy i zaprogramować ponownie?
zetbees wrote:Na pewno jest też wiele rozwiązań za pomocą urządzeń zewnętrznych od kondesatora począwszy, ale irytuje mnie, że takiej funkconalności nie ma w "natywnym" Hapcan'ie.
Zetbees nie irytuj się ;). To jest projekt, a nie gotowe rozwiązanie, które usatysfakcjonuje każdego użytkownika. Wiele funkcjonalności można uzyskać dzięki odpowiedniej konfiguracji - wymaga to tylko głębszego zastanowienia się. Pozostałe można dopisać samemu dzięki dostępnym otwartym kodom źródłowym. Lub tak jak to robi PelzaK stworzyć zupełnie nowe urządzenie.
Regards
Jacek
zetbees
Posts: 50
Joined: 29 Sep 2015, 18:26
Contact:

Re: Problem diody RGB w przycisku 14

Post by zetbees »

Jacek wrote:Wykorzystaj jedno wejście modułu przycisk. Zewrzyj je na stałe - tak jakby przycisk był zawsze wciśnięty. Po podłączeniu zasilania do tego modułu wyśle on po informację o wciśniętym przycisku. Uzależnij stan startowy systemu od tej właśnie wiadomości. Najlepiej użyj wiadomości "przycisk wciśnięty i przytrzymany przez 4s" - po to by pozostałe urządzenia zdążyły wystartować i odebrać tę informację.
Spróbuję przy najbliższej okazji.
Jacek wrote:Nie odłączaj zasilania od modułu interfejsu tylko od pozostałych modułów - wtedy dowiesz się jakie informacje są wysyłane podczas startu.
Ale jeśli będę chciał "rozpiąć" magistralę żeby dodać nowe urządzenie to chyba muszę wyłączyć zasilenie w całości?
Jacek wrote:Zetbees nie irytuj się ;). (...) Lub tak jak to robi PelzaK stworzyć zupełnie nowe urządzenie.
Już się nie irytuję, tak jak PelzaK nie potrafię. Zostaje mi pisanie skryptów.
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Problem diody RGB w przycisku 14

Post by Bartek »

Stworzenie urządzenia na Arduino będzie niewiele bardziej skomplikowane od napisania skryptu ;). Prócz tego wystarczy podłączyć kilka wtyczek.
Marcin
Posts: 200
Joined: 16 Sep 2011, 13:05

Re: Problem diody RGB w przycisku 14

Post by Marcin »

Jacek wrote:Nie odłączaj zasilania od modułu interfejsu tylko od pozostałych modułów - wtedy dowiesz się jakie informacje są wysyłane podczas startu.
zetbees wrote: Ale jeśli będę chciał "rozpiąć" magistralę żeby dodać nowe urządzenie to chyba muszę wyłączyć zasilenie w całości?
Tak jak pisze Jacek - odpinasz zasilanie modułów za interfejsem, podłączasz nowy moduł i załaczasz ponownie zasilanie na moduły.
Pozdrawiam,
Marcin.
Bartek
Posts: 326
Joined: 14 Jul 2011, 19:36
Location: Wrocław
Contact:

Re: Problem diody RGB w przycisku 14

Post by Bartek »

Czy podpinanie nowych modułów na "żywca" jest niebezpieczne? Robię tak cały czas podłączając Arduino i póki co działa ;).
zetbees
Posts: 50
Joined: 29 Sep 2015, 18:26
Contact:

Re: Problem diody RGB w przycisku 14

Post by zetbees »

Marcin wrote: Tak jak pisze Jacek - odpinasz zasilanie modułów za interfejsem, podłączasz nowy moduł i załaczasz ponownie zasilanie na moduły.
Ja w tej chwili praktycznie nie mam potrzeby odłączania i załaczania modułów. Wszystkie, które posiadam mieszkają juz na swoich miejscach, jedyne co jest w trakcie montażu i przeróbek, prób itp. to przyciski dopuszkowe, oprócz zasilania muszę też przykręcić/odkręcić magistralę a to wszystko na dość "gołych" drutach, tak więc nie mam odwagi grzebać przy tym "pod prądem" no chyba, że wolno i zwarcie magistrali niczym nie grozi.
kompio
Posts: 98
Joined: 22 Jul 2016, 14:38

Re: Problem diody RGB w przycisku 14

Post by kompio »

Czy ktoś testował z powodzeniem inne diody LED dla modułu 14 przycisków.? (RGB lub zwykłe)
Post Reply