Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 28 maja 2025, o 19:48


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 
    Autor Wiadomość
    PostNapisane: 17 lip 2014, o 11:50 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2013
    Posty: 104
    Pomógł: 0

    Witam.
    Mam problem z obsługą przycisku typu micro switch. Czytałem poradnik na blogu pt. "Drgania styków ? - to BAJKI". W części drugiej tego poradnik był przedstawiony prosty program do obsługi takiego klawisza. No więc wgrałem prosty program do migania diodą. Co się okazało ... U mnie programowy PULL-UP nie daje sobie rady. Gdy dotykam paluchem pinu przycisku to dzieją się różne rzeczy. Dodam, że filtrowanie mam również takie jak opisane na blogu. Dopiero jak zastosowałem sprzętowy PULL-UP (rezystor 4,7k) to problemu już nie było, ale ... klawisz nie zawsze reaguje tak jak powinien. Wiem, że to też zależy od klawisza. Użytkownik sunriver testował ten program i na chińskich switchach był problem, ale na tych lepszych było ok. Również użytkownik rezasurmar testował ten program na zestawie ATB i nie było problemu. Co może być nie tak? Dodam jeszcze tutaj ten prosty kod.

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 lip 2014, o 17:07 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 07 kwi 2013
    Posty: 418
    Lokalizacja: Rzeszów
    Pomógł: 102

    Bardzo możliwe, że pojawiają się szumy skoro linia PD5 jest w stanie wysokiej impedancji (Z).
    Podciąganie ma dotyczyć tego właśnie pinu:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    Natomiast PB7 nie jest podciągany do VCC, a ustalany jest na nim stan wysoki (to oczywiście moje "czepialstwo" w sprawie komentarza ;) ).



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 lip 2014, o 17:33 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2013
    Posty: 104
    Pomógł: 0

    atmel tak, wiem, ale jeśli ustawię:

    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


    to nadal są problemy. Kod który pokazałem na początku jest dla sprzętowego podciągania.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 lip 2014, o 19:24 
    Offline
    Użytkownik

    Dołączył(a): 22 mar 2014
    Posty: 38
    Lokalizacja: Bydgoszcz
    Pomógł: 4

    czemu masz: key_lock++, nie powinno być key_lock=0; ?

    ------------------------ [ Dodano po: kilkunastu sekundach ]

    no i to ozcywiście PORTD |= (1<<PD5);

    ------------------------ [ Dodano po: 2 minutach ]

    i jeszcze PORTB |= (1<<PD5);

    ------------------------ [ Dodano po: 2 minutach ]

    miało być PORTD |= (1<<PD5); oczywiscie

    ------------------------ [ Dodano po: 4 minutach ]

    i jeszce DDRD |= (1<<PD5)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 lip 2014, o 20:42 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 05 sie 2013
    Posty: 1154
    Lokalizacja: Lublin / Kraków
    Pomógł: 72

    A jakim rezystorem podciągasz wejście do VCC ?
    To co jest w środku w MCU ma kilkadziesiąt k. Daj 10 k do VCC. Jeśli przy takim podciągnięciu nadal jest problem, to znaczy że w kodzie jest źle.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 lip 2014, o 23:01 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2013
    Posty: 104
    Pomógł: 0

    Jak to w kodzie jest źle jak kod jest praktycznie taki sam jak na blogu Mirka.
    Dokładnie tutaj:
    http://mirekk36.blogspot.com/2012/10/ob ... w-cd2.html

    Dodatkowo 2 osoby z forum testowało ten kod i działało dobrze na zestawie ATB. :)

    Rezystor mam 4,7k, pisałem w pierwszym poście.

    Przy każdej nóżce uC mam kondensator 100nF oraz 10uF. Zasilam to z lm7805i na wejściu mam 100uF oraz 100nF, na wyjściu to samo.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lip 2014, o 00:43 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 05 sie 2013
    Posty: 1154
    Lokalizacja: Lublin / Kraków
    Pomógł: 72

    Niepokojące jest to, że piszesz o niedziałaniu tego wbudowanego rezystora pull-up. Nigdy nie spotkałem się z tym, żeby to wewnętrzne podciąganie było za słabe do celów obsługi przycisku. Oczywiście, może w jakiś sposób ten fragment procesora może być uszkodzony... Jeśli tak jest to może i reszta komponentów tego portu jest uszkodzona. Proponuję spróbować na innym pinie, albo nawet na na innym porcie MCU. Bo jeśli jest uszkodzony to problem może nie tylko dotyczyć rezystora, ale innych funkcji portu też.

    Efekt jaki opisujesz (zmiana stanu po dotknięciu palcem) jest charakterystyczny dla pinu w stanie HI-Z (wysokiej impedancji). Jest to tak jakby tej linii PORTD |= (1<<PD5); nie było.

    Mnie przychodzą do głowy dwie rzeczy:
    1. Uszkodzony pin (lub cały port).
    2. Jeśli używasz Ecplipse i w oknie gdzie są projekty kursor stoi na innym projekcie niż to co masz w oknie edycji i tak na prawdę wgrywasz nie ten plik co chcesz.

    Absolutnie nie obrażaj się za ten drugi punkt. To się czasem dzieje, ja tak miałem wiele razy i przez jakiś czas zastanawiełem się "o co kaman". :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lip 2014, o 10:26 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2013
    Posty: 104
    Pomógł: 0

    Sprawdzałem na nowym uC - to samo.
    Projekt na pewno wybrałem dobry przy wgrywaniu. :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lip 2014, o 10:39 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 05 sie 2013
    Posty: 1154
    Lokalizacja: Lublin / Kraków
    Pomógł: 72

    Zmierz napięcie na pinie podciągniętym programowo.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lip 2014, o 11:19 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27406
    Lokalizacja: Szczecin
    Pomógł: 1043

    pavel0910 napisał(a):
    Gdy dotykam paluchem pinu przycisku to dzieją się różne rzeczy.


    A mnie mocno niepokoi właśnie to ....

    Chyba że czegoś nie rozumiem to wyjaśnij albo doprecyzuj mi paweł ok?

    swa krótkie pytania ...


    1. czy gdy nie DOTYKASZ PALUCHEM pinu procka do którego jest podłączony klawisz - to działa poprawnie ?

    2. jeśli w przypadku nr.1 działa poprawnie - to po jaki gwincik dotykasz paluchem pinu ??? przecież powinieneś klikać palcem w główkę klawisza (sam przycisk) a nie pin procka czy ścieżkę pinu procka itp

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lip 2014, o 15:13 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 26 sty 2013
    Posty: 104
    Pomógł: 0

    Jeśli normalnie klikam w klawisz to raz działa, raz nie. Raz się dioda zaświeci i od razu zgaśnie itp.
    Przecież nie ma takiej opcji żeby po podciągnięciu pinu do vcc programowo były problemy przy dotykaniu procka. Jak podciągnę rezystorem 4,7k to nie ma tego problemu.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 18 lip 2014, o 15:40 
    Offline
    Moderator
    Avatar użytkownika

    Dołączył(a): 03 paź 2011
    Posty: 27406
    Lokalizacja: Szczecin
    Pomógł: 1043

    Dobra - ale ja mam taką zasadę - w ogóle nie dyskutuję o problemach gdy ktoś mówi o dotykaniu palcami bo to jest kompletnie bez sensu, i nawet nie chce mi się opowiadać dlaczego - szkoda tracić czas - lepiej poświęcić go na normalne rozwiązywanie problemu.

    Za to to co piszesz, że przy programowym podciąganiu raz działa a raz nie (ale przy normalnym klikaniu bez żadnego tam paluchowania) to ok ... rozumiem problem i dlatego dopytam i podpowiem kolejną sugestię

    - próbowałeś tego drugiego kodu z bloga z tego linku CZ.2 ..... gdzie zmienna key_lock jest 16-bitowa czyli uint16_t ???

    bo wyraźnie tam piszę i pokazuję - że mogą się zdarzyć mikrosłicze dla których będzie trzeba znacznie wydłużyć ten czas i do tego jak można to zrobić ...

    więc napisz czy to testowałeś czy nie ? a jeśli tak to pokaż ten swój kod poprawiony

    _________________
    zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    Wyświetl posty nie starsze niż:  Sortuj wg  
    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 12 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


    Nie możesz rozpoczynać nowych wątków
    Nie możesz odpowiadać w wątkach
    Nie możesz edytować swoich postów
    Nie możesz usuwać swoich postów
    Nie możesz dodawać załączników

    Szukaj:
    Skocz do:  
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO