ATNEL tech-forum
https://forum.atnel.pl/

Jak odczytac stan klawisza w nietypowym układzie ?
https://forum.atnel.pl/topic23435.html
Strona 1 z 1

Autor:  Elwood [ 15 lis 2020, o 23:19 ]
Tytuł:  Jak odczytac stan klawisza w nietypowym układzie ?

Obrazek

Witam
mam nietypowy problem - mianowicie muszę obsłużyć układ jak na rysunku(jest to fabryczna płytka modułu sterującego z pochłaniacza kuchennego który "padł" i dorobiłem zamiennik całości na ATTINY 2313) - 1 wyświetlacz LED, 4 diody do podświetlenia panelu i odczytać fakt wciśnięcia 1 z 4 klawiszy. Z obsługa samego wyświetlacza i podświetlenia sobie poradziłem - zawsze działają równocześnie i multipleksuje je na zmianę z częstotliwością 50 Hz ale poległem z obsługą klawiszy która chce odczytać po zasileniu najpierw wyświetlacza a potem diod oświetlenia -pomimo zmiany pinów na wejście nie udaje mi się odczytać stanu klawiszy. Jak to zrobić aby to miało ręce i nogi ? Jakieś sugestie ?

Autor:  wonsz [ 16 lis 2020, o 06:55 ]
Tytuł:  Re: Jak odczytac stan klawisza w nietypowym układzie ?

Czy po wciśnięciu przycisku SW1 widzisz zmianę stanu na pinie PA0 układu?

Może pokaż nam kod do odczytu to powiemy czy coś jest źle.
W każdym razie, debouncing tych przycisków masz tak?

Autor:  fofex [ 16 lis 2020, o 13:47 ]
Tytuł:  Re: Jak odczytac stan klawisza w nietypowym układzie ?

Cudak na górze schematu (a raczej smętnej laurki) ma reprezentować wyświetlacz z którą elektrodą wspólną? Elektroda ta jest podłączona na sztywno czy do pinu uC?

------------------------ [ Dodano po: 39 minutach ]

fofex napisał(a):
Cudak na górze schematu (nb bliżej mu do laurki) ma reprezentować wyświetlacz z którą elektrodą wspólną? Elektroda ta jest podłączona na sztywno czy do pinu uC?

Autor:  xentis [ 16 lis 2020, o 20:19 ]
Tytuł:  Re: Jak odczytac stan klawisza w nietypowym układzie ?

Multipleksowanie musisz zrobić na 3 stany (czyli musisz podnieść częstotliwość na conajmniej do 75hz).
I tak w pierwszej fazie np zasilasz podświetlenie czyli tranzystor zasilania wyświetlacza wyłączasz a włączasz tranzystor podświetlenia, piny sterujące jako wyjścia na stan niski.
W drugiej fazie tranzystor podświetlenia wyłączasz, a załączasz tranzystor zasilania wyświetlacza. Piny sterujące jako wyjścia i stany zgodnie z żądanym stanem wyświetlacza.
W trzeciej fazie musisz oba tranzystory zasilające wyłączyć, piny sterujące ustawić jako wejścia, odczekać chwilę (czas tej chwili musisz dobrać tak by zmieścić się w "oknie" multipleksowania przeznaczonym na sprawdzanie pinów) tak by stany na pinach się ustaliły i sprawdzić stan pinów. I tu musisz zadbać o programowy debouncing, bo inaczej jedno naciśnięcie wywoła kilka akcji, a wręcz akcja będzie wykonywana przez czas przyciśnięcia...

Co do tematu:
Cytuj:
Tytuł: Jak odczytac stan klawisza w nietypowym układzie ?
nie do końca jest nietypowy - taki układ jest często spotykany w prostych panelach sterowania - czasem bywa jeszcze bardziej zagmatwany bo wręcz wykorzystany jest charliplex, tak by maksymalnie zminimalizować liczbę koniecznych pinów uC.

Autor:  Elwood [ 16 lis 2020, o 22:00 ]
Tytuł:  Re: Jak odczytac stan klawisza w nietypowym układzie ?

fofex napisał(a):
Cudak na górze schematu (nb bliżej mu do laurki) ma reprezentować wyświetlacz z którą elektrodą wspólną? Elektroda ta jest podłączona na sztywno czy do pinu uC?
[/quote]

Elektrody wspólne tj jedna od podświetlenia i druga od wyświetlacza są załączane poprzez tranzystory PNP i podaja +5V. Schemat jest narysowany tak a nie inaczej aby na jego podstawie było łatwiej napisać program...


xentis napisał(a):
Multipleksowanie musisz zrobić na 3 stany (czyli musisz podnieść częstotliwość na conajmniej do 75hz).
I tak w pierwszej fazie np zasilasz podświetlenie czyli tranzystor zasilania wyświetlacza wyłączasz a włączasz tranzystor podświetlenia, piny sterujące jako wyjścia na stan niski.
W drugiej fazie tranzystor podświetlenia wyłączasz, a załączasz tranzystor zasilania wyświetlacza. Piny sterujące jako wyjścia i stany zgodnie z żądanym stanem wyświetlacza.
W trzeciej fazie musisz oba tranzystory zasilające wyłączyć, piny sterujące ustawić jako wejścia, odczekać chwilę (czas tej chwili musisz dobrać tak by zmieścić się w "oknie" multipleksowania przeznaczonym na sprawdzanie pinów) tak by stany na pinach się ustaliły i sprawdzić stan pinów. I tu musisz zadbać o programowy debouncing, bo inaczej jedno naciśnięcie wywoła kilka akcji, a wręcz akcja będzie wykonywana przez czas przyciśnięcia...


Tak właśnie zrobiłem, z tym ze poszedłem właśnie w stronę niższej częstotliwości aby wydłużyć te czasy. Przy wyższych częstotliwościach mam wrażenie ze wyświetlacz świeci słabiej tzn jest słabszy kontrast - ale możliwe ze to złudzenie. Prawdopodobnie zastosowałem zbyt krótki czas odczytu stanu wejścia po jego ustawieniu - 5 instrukcji nop... :oops: Za mało przy opornikach rzędu 10K. Obsługa klawiszy pochodzi z blogu p Mirka wiec jest raczej ok. Nie wiem tylko czy starać się sprawdzać wszystkie cztery za jednym zamachem czy np co wspomniane 3 cykle po kolei kazdy z nich. Sprawdzę i dam znać. Dzięki za rzeczową pomoc :)

Autor:  wonsz [ 17 lis 2020, o 06:52 ]
Tytuł:  Re: Jak odczytac stan klawisza w nietypowym układzie ?

a Elwood mógłbyś mi wytłumaczyć czemu połowa segmentów idzie przez ze te zawijasy z ledami i przyciskami a druga połowa bezpośrednio z pinów? Nie mogę załapać jak mają działać te wyjścia (czy tam wejścia) z skrzyżowanymi ścieżkami. :/

Autor:  Elwood [ 18 lis 2020, o 00:11 ]
Tytuł:  Re: Jak odczytac stan klawisza w nietypowym układzie ?

wonsz napisał(a):
a Elwood mógłbyś mi wytłumaczyć czemu połowa segmentów idzie przez ze te zawijasy z ledami i przyciskami a druga połowa bezpośrednio z pinów? Nie mogę załapać jak mają działać te wyjścia (czy tam wejścia) z skrzyżowanymi ścieżkami. :/


Nie mam pojęcia :D -tak to zaprojektował producent pochłaniacza firma AKPO -

https://www.mediaexpert.pl/agd-do-zabud ... gIgQ_D_BwE

W moim przypadku ponieważ padła fabryczna elektronika - konkretnie przetwornica bez transformatorowa i parę elementów dyskretnych - powodowało ze okap sam z siebie losowo włączał swoje halogeny .... Po otwarciu od razu wywaliłem to gówno do kosza i opracowałem swój sterownik na attiny 2313 wykorzystując jedynie sama płytkę czołowa(o tym jest ten temat) a sterowanie odtworzyłem z ori PCB. Ale tylko samo sterowanie tego panelu ,reszta jest zaprojektowana już samodzielnie i zawiera 2 płytki - cześć mocy osobno i część sterująca w fabrycznej obudowie
Tu są zdjęcia tej płytki choć sam sterownik wygląda już na młodszą wersje niż moja i trochę różni się od mojego.
https://www.elektroda.pl/rtvforum/topic2973001.html

A działa to po prostu tak ze naprzemiennie z poziomu mikrokontrolera sterujesz samym wyświetlaczem z nr biegu wentylatora(ciągle wyświetla cyfrę) lub kiedy miga z czasem 10-60 minut do wyłączenia. Czas ustawiany co 10 min. Dodatkowo sterujesz podświetleniem samych przycisków kiedy działa oraz odczytujesz klawisze - ustawianie czasu, plus prędkośći silnika, minus prędkość silnika, wł/wył światło oraz te same funkcje z pilota z 4 przyciskami. Światło sterowane przez przekaźnik(akurat u mnie :) ) a wentylator na triaku gdyż ma 6 biegów. Są tez wersje tych pochłaniaczy gdzie światło jest płynnie sterowane i po wymianie na LEDY pada elektronika :| wiec uważajcie na takie wymiany bo możecie się zdziwić
W moim przypadku będę używał jedynie przycisków bo brakło mi jednego timera w procesorze do odczytu sygnałow podczerwieni choć płytka jest pod to przygotowana... Może kiedyś jak uruchomię podstawowe funkcjonalności...

Strona 1 z 1 Strefa czasowa: UTC + 1
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/