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 9 kwi 2025, o 17:55


    Strefa czasowa: UTC + 1





    Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 9 ] 
    Autor Wiadomość
    PostNapisane: 17 kwi 2013, o 19:52 
    Offline
    Nowy

    Dołączył(a): 22 sty 2013
    Posty: 7
    Pomógł: 0

    Witam, buduję model robota sterowany przez telefon z androidem za pośrednictwem btm-a. Głowię się nad tym od dłuższego czasu ale nie mogę wpaść na rozwiązanie. Otóż telefon łączy się z modułem ale nie robot nie reaguje. Poniżej zamieszczam schematy jak i kod w C i aplikacji.
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


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


    Schematy:
    ObrazekObrazekObrazek

    Z góry dziękuję za pomoc w rozwiązaniu problemu:)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 17 kwi 2013, o 21:04 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    Zmienna wiadomosc powinna mieć modyfikator volatile, bo zmienia się w przerwaniu, a zerowanie tej zmiennej powinno być realizowane zaraz za USART_Transmit(wiadomosc);
    PS.
    Rysując schemat w Eagle korzystałeś pewnie z Wire, a należy połączenia rysować używając Net.
    AREF procesora nie podłącza się do VCC (choć dla atmegi8 to bez znaczenia) i brakuje kondensatorów 100nF na zasilaniu układów cyfrowych.
    Polecam najpierw sprawdzić to na PC w końcu przejściówka USB-Bluetooth kosztuje parę złotych i jak to będzie działać to zająć się komunikacją z telefonem z androidem.


    Autor postu otrzymał pochwałę

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 kwi 2013, o 14:30 
    Offline
    Nowy

    Dołączył(a): 22 sty 2013
    Posty: 7
    Pomógł: 0

    Dzięki za podpowiedź, volatile myślę, że dobrze wstawiłem, ten reset rozumiem ze mam wstawić w main ale nie wiem jak to ma być:( Jeszcze jedno pytanie, czy mogę tak wysterować piny jak w 1 i 2 czy musi być tak jak w 3 i 4?
    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    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: 21 kwi 2013, o 19:07 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    Tak powinno być jak poniżej, bo zauważ, że wcześniej flaga wiadomość musiała zostać ustawiona za zerowaniem, czyli było 50% szans na to, że po ustawieniu zaraz zostanie wyzerowana i drugie 50, że zostanie sprawdzona. A teraz jak już zostanie ustawiona to musi się wykonać USART_Transmit i dopiero zostanie ona skasowana.
    Składnia: [ Pobierz ] [ Ukryj ]
    język c
    Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

    W przypadku 1 i 2 bity zostają ustawione a pozostałe są niezmieniane, bo użyty jest |=, a w przypadku 3 i 4 wybrane bity są ustawiane a pozostałe zerowane.

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 kwi 2013, o 20:35 
    Offline
    Nowy

    Dołączył(a): 22 sty 2013
    Posty: 7
    Pomógł: 0

    Mam jeszczę pytanie, czy przy obecnym zapisie main w każdym cyklu atmegi resetują mi się wyprowadzenia, czy tylko przy starcie a potem już nie?



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 21 kwi 2013, o 21:37 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    Tylko przy starcie. Program zaczyna się od main, a potem krąży w pętli while(1) i dodatkowo w dowolnej chwili jak zostanie odebrany znak to realizowana jest funkcja obsługi przerwania ISR(USART_RXC_vect)


    Autor postu otrzymał pochwałę

    _________________
    Dragonus Cracovus: Biomagia



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 22 kwi 2013, o 18:54 
    Offline
    Nowy

    Dołączył(a): 22 sty 2013
    Posty: 7
    Pomógł: 0

    Ok, dzięki kolego, teraz wszystko działa:)



    Góra
     Zobacz profil  
    cytowanie selektywne  Cytuj  
    PostNapisane: 8 maja 2013, o 18:50 
    Offline
    Nowy

    Dołączył(a): 22 sty 2013
    Posty: 7
    Pomógł: 0

    Aktualnie znowu natrafiłem na problem, chciałbym sterować serwami po przez pwm, lecz coś nie chce to działać, chciałbym aby po przyciśnięciu przycisku i odebraniu "6" szczęki się otwierały a po wysłaniu "7" zamykały oraz aby
    a) po wysłaniu "8" zatrzymały się w tym położeniu w którym się znajdują a nie zamykały/ otwierały się do końca
    b) lub po puszczeniu przycisku "6" lub "7" zatrzymywały się w danej pozycji
    nie wiem która opcja a czy b jest łatwiejsza do zrealizowania:(

    Składnia: [ Pobierz ] [ Ukryj ] [ Zaznacz wszystko ]
    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: 9 maja 2013, o 18:12 
    Offline
    Uzytkownik zasłużony dla forum.atnel.pl
    Avatar użytkownika

    Dołączył(a): 16 lip 2012
    Posty: 2088
    Lokalizacja: Leżajsk / Kraków
    Pomógł: 411

    Myślę, że opcja (a) z zatrzymywaniem jest prostsza. Dodaj sobie nową zmienną globalną, która, będzie przechowywać stan 0 - stop, 1 - otwieranie i 2 - zamykanie. W przerwaniu tylko zmieniaj tą wartość, a w pętli while co określony czas zwiększaj i zmniejszaj wypełnienie.

    _________________
    Dragonus Cracovus: Biomagia



    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 1 gość


    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