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 w 2025? 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 22 kwi 2025, o 11:37


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
    Autor Wiadomość
    PostNapisane: 13 mar 2019, o 18:24 
    Offline
    Nowy

    Dołączył(a): 08 kwi 2013
    Posty: 12
    Pomógł: 0

    Załóżmy że mamy urządzenie zamknięte w pudełku (P) zasilane napięciem 5V. Nieważne do czego służy urządzenie, ważne że możemy uruchomić pewną funkcję wciskając przycisk. Przycisk jest wyprowadzony na zewnątrz urządzania i mamy na wierzchu kabelki. Jedno wyprowadzenie przycisku jest podpięte do masy a drugie do układu w środku urządzenia. Załóżmy, że tym układem jest mikrokontroler atmega. Czyli mamy sytuację jak na rysunku poniżej.

    Obrazki wstawiamy tak topic44.html

    Teraz załóżmy że projektujemy nasze własne urządzenie (NU) oparte na uC atmega, ale chcemy aby to urządzenie wykorzystało ten sam przycisk. Podłączenie będzie wyglądać jak poniżej. Tzn. przecinamy połączenie pomiędzy przyciskiem a P i wstawiamy w środek nasze urządzenie.

    Obrazki wstawiamy tak topic44.html

    Teraz jeśli naciśniemy przycisk to NU odbierze sygnał i są możliwe dwie sytuacje.

    1) NU obsłuży naciśnięcie przysku
    2) NU nie będzie umieć obsłużyć tej sytuacji i "przekaże" sygnał naciśnięcia przycisku do P tak aby P mogło odpowiednio zareagować

    Pytanie brzmi: jak zrealizować symulację wciśnięcia przycisku przez uC?

    Przycisk działa tak (w pierwszym przypadku)
    - Gdy przycisk nie jest wciśnięty to noga mikrokontrolera nie jest nigdzie podłączona (jest podłączona wewnętrznie do + wymuszając stan wysoki).
    - Gdy przycisk jest wciśnięty to noga mikrokontrolera jest podpięta do masy

    Po dłuższej chwili namysłu i poszukiwań w internecie wpadłem na taki pomysł. Może zamiast definiować pin NU jako wyjście i nim sterować zróbmy coś na pierwszy rzut oka dziwnego. Ustawmy na stałe PORT na stan niski i sterujmy DDR.

    Mamy wtedy dwie sytuacje:
    PORT = 0, DDR = 1 - wyjście ze stanem niski (czyli przycisk wciśnięty)
    PORT = 0, DDR = 0 - wejście bez pull-up (Hi-Z) - czyli jakby symulujemy odseparowanie od linii i tym samym drugi układ (P) widzi to jako przycisk nie wcisnięty

    Wydaje mi się że to powinno zadziałać, ale nie testowałem tego pomysłu. Prosiłbym o potwierdzenie czy to jest dobre rozwiązanie.

    Nie testowałem tego ponieważ tak naprawdę problem jest odrobinę inny i przechodzimy teraz do sedna. Pudełko P jest zasilane 12V...

    Ostateczne pytanie jest więc takie: Jaki układ powinien być pomiędzy moją atmegą a pudełkiem P żeby zasymulować wciśnięcie przycisku wiedząc jednocześnie że na linii do której był wcześniej podpięty przycisk jest 12v? Coś mi mówi że pewnie jest potrzebny tranzystor..., ale moja wiedza elektroniczna jest zbyt mała żeby opracować rozwiązanie. Prośba o pomoc.

    Na koniec uzasadnienie skąd w ogóle takie pytanie.
    Pracowałem kiedyś nad komputerkiem samochodowym. Urządzenie w stosunku do uniwersalnych urządzeń tego typu które można kupić ma dwie unikalne cechy. Po pierwsze łączy się ze sterownikiem silnika po protokole diagnostycznym KW1281 i wyciąga dane o różnych parametrach pracy silnika. Po drugie wyświetla informacje na fabrycznym wyświetlaczu wbudowanym w licznik samochodu który oryginalnie służy do wyświetlania komunikatów z radia. Podsłuchałem za pomocą analizatora stanów logicznych jak przesyłane są informacje i metodą reverse engineringu doszedłem jak są zbudowane obydwa protokoły. Zaimplementowałem komunikację w języku C i wgrałem do Atmegi. Niestety projekt zatrzymał się na prototypie złożonym na płytce stykowej i nigdy nie wdrożyłem go produkcyjnie do auta. Chciałem aby sterowanie urządzeniem odbyło się za pomocą przycisków w manetce które służą do sterowania fabrycznym komputerkiem, ale też żeby przekazać informacje o wciśnięciu przycisku do fabrycznego komputerka gdyby była taka potrzeba.

    Dzięki za wszystkie podpowiedzi i pozdrawiam serdecznie :)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 mar 2019, o 18:30 
    Offline
    Moderator zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 18 lip 2012
    Posty: 3228
    Lokalizacja: Kraków - obok FAB5 ATMEL'a
    Pomógł: 91

    Proszę poprawić umieszczenie obrazków, inaczej temat zostanie skasowany.

    _________________
    http://www.jaglarz.info



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 13 mar 2019, o 22:47 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1968
    Lokalizacja: Lipsko
    Pomógł: 125

    Jeden tranzystor w układzie z otwartym kolektorem załatwi sprawę. Emiter do masy, kolektor do wejścia przycisku. Sterowanie z Twojego procka - pin przez rezystor około 5k do bazy tranzystora no i oczywiście wspólna masa. To wszystko.


    Autor postu otrzymał pochwałę

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 mar 2019, o 09:45 
    Offline
    Nowy

    Dołączył(a): 08 kwi 2013
    Posty: 12
    Pomógł: 0

    Bardzo proszę o nie usuwanie. Załączę prawidłowo obrazki dziś wieczorem jak wrócę z pracy.

    SylwekK bardzo dziękuję za pomoc. Chyba niestety nie o to mi chodziło (albo nie zrozumiałem Twojego pomysłu), ale domyślam się że nie widziałeś moich obrazków i stąd nieporozumienie.



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 mar 2019, o 12:20 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1968
    Lokalizacja: Lipsko
    Pomógł: 125

    Pewnie tak :)

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 mar 2019, o 21:17 
    Offline
    Nowy

    Dołączył(a): 08 kwi 2013
    Posty: 12
    Pomógł: 0

    Załączam rysunki zgodnie z regulaminem forum :)

    Rys 1.
    Obrazek

    Rys 2.
    Obrazek

    Zatem jeszcze raz w skrócie. Chodzi o to na atmedze z Rys 2. sterować "podaniem masy" na pin jakiegoś układu. Wiemy, że napięcie na tym pinie to 12v więc nie można tego zrobić bezpośrednio.

    SylwekK jeszcze raz przeczytalem na spokojnie Twoją podpowiedź. Chyba jednak Twój pomysł jest dobry i świetnie mnie zrozumiałeś nawet bez rysunków, ale to niestety ja nie załapałem za pierwszym razem :)

    Czy masz na myśli coś takiego?
    Obrazek



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 mar 2019, o 21:57 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 01 lis 2015
    Posty: 1448
    Lokalizacja: okolice Warszawa
    Pomógł: 149

    myślę że w skrócie - coś takiego Sylwek miał na myśli.
    należy pamiętać tylko o odwracaniu fazy.
    jedynka na nasza atmega da zero na jakiś uc,
    a zero na nasza_atmega da jedynkę na jakiś uc.
    cóż to za jakiś uc, który ma 12V na weściu?
    a...... nie istotne, pytania nie było. ;)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 14 mar 2019, o 22:21 
    Offline
    Użytkownik
    Avatar użytkownika

    Dołączył(a): 22 paź 2013
    Posty: 1968
    Lokalizacja: Lipsko
    Pomógł: 125

    Tak, Właśnie tak to trzeba rozwiązać :) Tylko o wspólnej masie jeszcze pamiętaj. Wysłanie jedynki na bazę tranzystora da (jak wspomniał kolega przede mną) zero na wyjściu tranzystora czyli wciśnięcie przycisku.

    _________________
    http://www.sylwekkuna.com



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 15 mar 2019, o 18:12 
    Offline
    Nowy

    Dołączył(a): 08 kwi 2013
    Posty: 12
    Pomógł: 0

    Bardzo dziękuję za pomoc :)
    Muszę kupić tranzystory i będę testować.



    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: 9 ] 

    Strefa czasowa: UTC + 1


    Kto przegląda forum

    Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 3 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