Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Klawiatura (Drabinka)- Jako uzyskać funkcje double click,hold, more

CrisELDi 31 Lip 2017 22:33 942 16
  • #1 31 Lip 2017 22:33
    CrisELDi
    Poziom 14  

    Klawiatura (Drabinka)- Jako uzyskać funkcje click, double click,hold, more

    Klawiatura (Drabinka)- Jako uzyskać funkcje double click,hold, more

    Tak jak na widać jest to klawiatura (4- przyciski) oparta na popularnie nazwwanej "drabince rezystorów".

    Kod: c
    Zaloguj się, aby zobaczyć kod



    Podany kod działa w ten sposób posiadam tylko jedną funkcję przypisaną do jednego przyciski "One Click" Chciałbym uzyskać resztę funkcji takie jak Dual Click, Hold...

    Wiem iż istnieją biblioteki przypisane tylko dla pinu Digital I/O a nie dla ADC czyli mojej drabinki? Jaki pomysł?

    I ostatnie pytanie to czy mogę zastąpić moją "drabinkę" wskazanym na schemacie tranzystorem sterowanym ADC?

    Dziękuje.

  • #2 01 Sie 2017 01:50
    excray
    Poziom 38  

    Skoro chcesz dołożyć funkcje związane z tym co się działo z danym przyciskiem w funkcji czasu, to chyba oczywiste, że musisz gromadzić takie informacje oraz je analizować pod kątem interesujących Cię zdarzeń.

  • #3 01 Sie 2017 22:23
    CrisELDi
    Poziom 14  

    To chyba jasne ale iż muszą zbierać dane (czas) pytanie jak wykorzystać te dane? tu jest mój problem.
    Jakaś bibliotek dla ADC aby uzyskać te funkcje?



    Kod: vbnet
    Zaloguj się, aby zobaczyć kod


    I znalazłem działa jak należy.
    Funkcje Click, dual click i Hold działa

  • #4 06 Sie 2017 14:32
    CrisELDi
    Poziom 14  

    Klawiatura (Drabinka)- Jako uzyskać funkcje double click,hold, more

    Kontynuując moje pytanie odnoście zastąpienia "drabinki" jakimś Tranzystorem i sterowanie go poprzez PWN aby uzyskać taki sam funkcje jak drabinka?
    Jakaś podpowiedź?

    Klawiatura (Drabinka)- Jako uzyskać funkcje double click,hold, more

    Czy to ma sens aby może w ten sposób zastąpić klawiaturę (drabinkę)?

  • #5 06 Sie 2017 16:31
    zster

    Poziom 17  

    Jaki sygnał otrzymasz przy sterowaniu PWM a jaki sygnał chcesz mierzyć?
    Musisz sygnał cyfrowy PWM "zamienić" na analogowy ( napięcie). Najprościej to zrobić filtrem dolnoprzepustowym składającym się z rezystora i kondensatora.
    Poza tym musiałbyś dość szybko "multipleksować" wartości napięcia i jednocześnie odczytywać czy dana wartość jest mierzona na ADC co oznaczało by przycisniecie przycisku. Zużywasz znacznie więcej zasobów, czasu kontrolera i dodatkowy pin. Czemu drabinka Ci nie odpowiada? I czemu miałby służyć ostatni schemat? Jak ma działać?

  • #6 06 Sie 2017 20:20
    CrisELDi
    Poziom 14  

    Dzięki za odpowiedź.

    Ostatni schemat ...To tylko pomysł ale może zastąpię przyciski diadą 1Nxxx, podłączę ją do Arduino pinu I/O i korzystając funkcji HIGH i LOW będę wstanie zastąpić przycisk/i.? Opis OUT PWM to inny układ który korzysta z drabinki.

    Najprościej mówiąc nie chcę używać drabinki tylko pilota IR, aby to zrobić muszą znaleźć najprostsze rozwiązanie aby zastąpić pracę "drabinki" na innym układzie gdzie nie możliwości ingerencji.

    Zasoby nie są tak ważne, w całości wykorzystuje AMega238 do tego małego zadania (oprócz IR i I2C reszta jest wolna.

  • #7 06 Sie 2017 20:42
    zster

    Poziom 17  

    Czyli masz jakiś układ, który posiada klawiaturę na drabince i chcesz ta klawiaturę zastąpić pilotem IR, czy tak?
    Opisz proszę co masz, dokładnie, i co chcesz osiągnąć. Wtedy dobierzemy jakieś rozwiązanie.

  • #8 06 Sie 2017 23:39
    CrisELDi
    Poziom 14  

    Tak zgadza się chcę zastąpić drabinkę wskazaną powyżej (pierwszy post) na pilot IR (Obsługa IR nie jest problemem) Tylko metoda która jest skuteczna aby zastąpić tą drabinkę. odbierając i przejmując wszystkie funkcje tej klawiatury (Vol+,Vol-, <<,>>,<,>,..). Więc wpadłem na jeszcze jeden pomysł z PC817.

    Klawiatura (Drabinka)- Jako uzyskać funkcje double click,hold, more

    Tu w tym przypadku udało mi się sterować PC817 przy pomocy PWM i osiągnąć na wyjściu PC817 Opór 128R-320K, jeszcze nie testowałem pod "drabinką" Wykorzystanie OPTO COUPLER jest doskonałym rozwiązane ponieważ uzyskuje izolacje galwaniczną.

    Czy to zadziała muszę spróbować... i czy zadziała ?.

  • #9 07 Sie 2017 01:43
    zster

    Poziom 17  

    Ale nie rozumiem jednej rzeczy - masz jakiś gotowy układ, który sterowany jest klawiaturą z tą drabinką i którego nie możesz zmodyfikować a ni zmieniać programu, więc próbujesz podłączyć do niego arduino, którego zadaniem będzie obsługa IR oraz "tłumaczenie" komend pilota na "symulację" naciśnięć przycisków w tym gotowym układzie?

  • #10 07 Sie 2017 03:06
    JacekCz
    Poziom 32  

    CrisELDi napisał:

    Podany kod działa w ten sposób posiadam tylko jedną funkcję przypisaną do jednego przyciski "One Click" Chciałbym uzyskać resztę funkcji takie jak Dual Click, Hold...


    Wiem iż istnieją biblioteki przypisane tylko dla pinu Digital I/O a nie dla ADC czyli mojej drabinki? Jaki pomysł?
    I ostatnie pytanie to czy mogę zastąpić moją "drabinkę" wskazanym na schemacie tranzystorem sterowanym ADC?
    Dziękuje.


    Kod traktuje wartości "niestabilnie", między innymi jak się zdarzy analogowe zakłócenie i wynik spoza przedziałów, pójdzie sobie w las. Nie chcesz tych zakresó widzieć, ale to nie znaczy że się nie zdarzą (zwłąszcza w świetle punktu drugiego)

    Ogólnie mieszasz i skaczesz. Określenie stanu drabinki w chwili 'x' to jedno, przyjmijmy że z w/w zastrzeżeniem jakoś to jest (algorytm analogowy).
    Funkcje One/Double/LongClick / Debouncing są operacją z pamięcią (jak kolega tłumaczy), drugą operacją bazującą na pierwszej.
    A zaczynając w tym samym wątku (trzecie - bez załatwienia drugiego) zmianę założeń elektronicznych robisz "burdello bum bum " we własnym wątku.


    W sklepach jest wiele urządzeń np ekspresy do kawy, że programista nie wiedział co się dzieje poza jedynym scenariuszem jaki w swoich oczach widział. Np brak kawy-> komunikat, brak wody-> odpowiedni komunikat, brak kawy i wody -> twarde zawieszenie, wtyczka z gniazdka.

  • #11 07 Sie 2017 20:50
    CrisELDi
    Poziom 14  

    "tłumaczenie" komend pilota na "symulację" naciśnięć przycisków w tym gotowym układzie?"

    Dokładnie oto chodzi.

    Klawiatura (drabinka) na wyjściu drabinki mierzę opór.
    Jak nic nie jest wciśnięte na wyjściu drabinki mam 9K12, po wciśnięciu przycisku:
    Button1 mam 632R,
    Button2 mam 243R,
    Button3 mam 1K38
    Button4 mam 2K91

    Teraz jak nauczyć/zasymulować na Arduino aby wykonał tą samą pracę bez klawiatury (drabinki)? Chyba teraz jasno o co chodzi?


    "Kod traktuje wartości "niestabilnie", między innymi jak się zdarzy analogowe zakłócenie i wynik spoza przedziałów, pójdzie sobie w las. Nie chcesz tych zakresó widzieć, ale to nie znaczy że się nie zdarzą (zwłąszcza w świetle punktu drugiego)"

    Pełni rozumiem gdzie kolega widzie problem ale nie jestem tak zaawansowany programistą aby dostrzec wszystkie problem ale jeżeli kolega może poprawić kod było by fajnie?



    "A zaczynając w tym samym wątku (trzecie - bez załatwienia drugiego) zmianę założeń elektronicznych robisz "burdello bum bum " we własnym wątku."

    Obiecuje wyjaśnić gdzie zmierzają wszystkie RAZEM pytania.

    Poz.

  • #12 07 Sie 2017 22:33
    excray
    Poziom 38  

    <ciach> Dyskusja toczy się od ponad tygodnia, a autor w dalszym ciągu nie jest w stanie wyjaśnić, że (najprawdopodobniej) chce za pomocą arduino sterować radioodbiornikiem samochodowym, podczepiając się pod sygnał sterowania radiem w kierownicy, który oparty jest właśnie o drabinkę rezystorową.

    Moderowany przez dondu:

    Proszę nie obrażać użytkowników.

    3.1.9. Nie ironizuj i nie bądź złośliwy w stosunku do drugiej strony dyskusji. Uszanuj odmienne zdanie oraz inne opinie na forum.

  • #13 13 Sie 2017 20:40
    CrisELDi
    Poziom 14  

    Powalają mnie takie komentarze,kolejny post bez sensu..., jakie to ma znaczenie dla tematu?
    Ale wychodzę z założenia, iż nie którzy po prostu widzą problem tam gdzie go niema.
    Albo chcą tworzyć problemy bo nic... trzeba coś napisać...


    Koncentruje się na problemie podałem wszelkie dane aby rozwiązać problem. Nie ma znaczenie nią jakie to urządzenie, "drabinka" jest wykorzystywana wielu urządzeniach. I zapewne są osoby które zastanawiały się nad tym problemem.

  • #14 14 Sie 2017 03:39
    krzysiek_krm
    Poziom 29  

    Witam,
    jeżeli dobrze rozumiem

    CrisELDi napisał:
    "tłumaczenie" komend pilota na "symulację" naciśnięć przycisków w tym gotowym układzie?"

    Dokładnie oto chodzi.

    Klawiatura (drabinka) na wyjściu drabinki mierzę opór.
    Jak nic nie jest wciśnięte na wyjściu drabinki mam 9K12, po wciśnięciu przycisku:
    Button1 mam 632R,
    Button2 mam 243R,
    Button3 mam 1K38
    Button4 mam 2K91

    Teraz jak nauczyć/zasymulować na Arduino aby wykonał tą samą pracę bez klawiatury (drabinki)? Chyba teraz jasno o co chodzi?

    to zbuduj w swoim układzie drabinkę taką jak na przykład z pierwszego postu. Taka drabinka działa jak dzielnik napięcia i tak właśnie powinna działać. Urządzenie, którym steruje drabinka zazwyczaj mierzy tę drabinkę w trybie "ratiometric", istotny jest stosunek rezystancji dzielnika a nie jakieś napięcie, dzięki temu unika się konieczności stosowania mniej lub bardziej precyzyjnych źródeł napięcia odniesienia.
    Zamiast do wyłączników podłącz odpowiednie węzły tej sieci rezystorów do pinów Twojego Arduino. Jeżeli chcesz symulować zwarcie wyłącznika do masy ustawiasz na odpowiednim pinie stan "output low", driver wyjściowy zewrze linię do masy przez bardzo małą rezystancję. Jeżeli chcesz symulować rozwarcie wyłącznika ustawiasz na odpowiednim pinie stan "input" (bez pull-up rzecz jasna), impedancja wejściowa jest na tyle duża, że jest to praktycznie rozwarcie.
    Tak chyba będzie najprościej.

    Pozdrawiam

  • #15 14 Sie 2017 19:02
    emarcus
    Poziom 34  

    krzysiek_krm napisał:


    ...to zbuduj w swoim układzie drabinkę taką jak na przykład z pierwszego postu. Taka drabinka działa jak...


    Myslę że autor ten etap ma już za sobą.
    Z powyższych postów wygląda że teraz potrzebuje on coś innego...
    Post # 6:
    Najprościej mówiąc nie chcę używać drabinki tylko pilota IR,

    Post # 8
    Tak zgadza się chcę zastąpić drabinkę wskazaną powyżej (pierwszy post) na pilot IR (Obsługa IR nie jest problemem)...
    Czyli autor chciałby emulowac funkcje keypad opartej na ADC; inną metodą: użyciem zwykłego telewizyjnego lub podobnego pilota IR .

    Skoro cyt: „Obsługa IR nie jest problemem” , to dlaczego ten wątek jest jeszcze aktywny?
    Czy pojazd dla którego ten projekt jest tworzony nie posiada odpowiedniej instalacji (okablowania kierownicy) koniecznej dla realizacji pierwotnej versji projektu ‘z drabinką’ i trzeba sięgnąc po IR Remote?

    Wydaje mi się że autor wbrew zapewnień, nie bierze pod uwagę, że pilot IR wysyła określony kod tylko jeden raz po naciśnięciu przycisku, dalsze trzymanie przycisku powoduje wysyłanie innego kodu „Repeat”, który na ogół w prostych programach obsługi odbiornika jest ignorowany.
    Aby w pełni emulowac rezystorowy/ADC przewodowy koncept, przez pilot IR, który jest czysto cyfrowy, należy odpowiednio wykorzystywac w programie też ten drugi kod ‘Repeat’ także, jeżeli potrzeba powtarzalnej funkcji dla tego przycisku istnieje.

    e marcus

  • Pomocny post
    #16 15 Sie 2017 03:40
    krzysiek_krm
    Poziom 29  

    Ja mam nieco inną hipotezę.
    Jest jakieś urządzenie, którym można sterować klawikordem w układzie drabinki rezystorowej. Autor chce sterować tym urządzeniem za pomocą pilota, nie jest to możliwe wprost bo urządzenie nie ma odbiornika IR. Pozostaje więc zrobienie konwersji pilot IR na drabinkę. Jeżeli procesor nie ma jakiegoś skrajnego deficytu wolnych pinów, wykonanie drabinki z przyciskami symulowanymi pinami procesora jest najprostszym i najtańszym rozwiązaniem. Można jeszcze monitorować oryginalną klawiaturę drabinkową żeby można było sterować urządzeniem zarówno za pomocą tej klawiatury, jak również za pomocą pilota.

  • #17 17 Sie 2017 21:22
    CrisELDi
    Poziom 14  

    Dziękuj "krzysiek_krm" Właśnie bez błędnie rozwiązałeś mój problem, nie wiedziałem dokładnie jak to ugryźć najprościej. I błędem był ustawiać rezystor podciągający dla pinu.

    Dam znać jak to działa na surowo :)

 Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME