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



Teraz jest 13 gru 2024, o 07:19


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 22 lis 2014, o 19:45 
Offline
Użytkownik

Dołączył(a): 02 lut 2014
Posty: 38
Pomógł: 0

Witam wszystkich forumowiczów. Sytuacja wygląda następująco. Wymyśliłem sobie jakiś czas temu projekt samochodu sterowanego przez bluetooth. Nie od razu Kraków zbudowano :) jestem na etapie mielenia Blue Booka i chciałbym zaświecić diodę przez telefon. Mam aplikację na androidzie z trzema przyciskami która wysyła 1,2 lub 3 w zależności od wciśniętego klawisza. W terminalu wygląda to następująco: 1111222333221112233 , nie będę umieszczał screena bo każdy pewnie będzie wiedział o co chodzi. Zmontowałem sobie ostatnio układ na płytce stykowej z L293D. Z programem , który cyklicznie zapala daną diodę nie było problemu. Teraz chciałbym zapalić to przez bluetooth i napisałem poniższy kod dla Atmegi32. Wykorzystuję Atnelowski BTM-222. Podpowiedzcie co może być nie tak, bo póki co nie udało mi się zapalić diody;/
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: 22 lis 2014, o 21:02 
Offline
Użytkownik

Dołączył(a): 22 sie 2013
Posty: 64
Pomógł: 1

Sprawdź połączenie Btm 222 z uC, zaprezentuj schemat może coś źle podłączone.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lis 2014, o 00:27 
Offline
Użytkownik

Dołączył(a): 02 lut 2014
Posty: 38
Pomógł: 0

Jutro odpalę Eagla i zrobię schemat. Chociaż tak jak pisałem wcześniej, jak sobie programowo steruję tymi diodami przez L293D to jest ok, problem pojawia się przy zdalnej transmisji, więc wydaje mi się, że raczej w kodzie coś nie gra. W ogóle to jak procesor pobiera dane z rejestru DDR? Jeżeli np chcę odebrać liczbę 200, to jak to się ma do 8bitów danych? Procesor sam sobie pobiera 8 bitów, czyli przekształca liczbę 200 do postaci 11001000? A co gdybym chciał przesłać liczbę 2000?
Np. If (input=='2000') LED_ON; na logikę powinienem wyciągać z rejestru po jednej cyfrze i zapisać to jako:
2*1000+0*100+0*10+0*1, żeby otrzymać wartość dziesiętną? Generalnie powinienem założyć chyba osobny wątek, ponieważ nie jestem w stanie sobie wyobrazić jak się mają te 8bitów do tego co się faktycznie dzieje w tym rejestrze. Ale tak jak mówię, jutro zrobię schemat to będziemy dalej rozmawiać. Pozdrawiam



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 23 lis 2014, o 09:40 
Offline
Moderator
Avatar użytkownika

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

obejrzyj sobie to: http://mirekk36.blogspot.com/2014/06/ja ... ascii.html

_________________
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: 23 lis 2014, o 16:49 
Offline
Użytkownik

Dołączył(a): 02 lut 2014
Posty: 38
Pomógł: 0

W powyższym kodzie, który umieściłem zmieniłem wzór na UBRR( z forum p Mirka).
Nie wiem dlaczego było coś nie tak, na szybko wziąłem kalkulator, błąd nie przekraczał 2%. W wolnej chwili na pewno to zgłębię i podzielę się wnioskami.

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


Wszystko ruszyło. Póki co nie wsadzam schematu połączeń, na razie układ jest ubogi. Na płytce nie mam nawet kondensatorów filtrujących, przy zapalaniu diod nie są chyba aż tak konieczne.
Ale jest oczywiście jedno ale :) Po połączeniu z modułem bluetooth świeci się dioda na OUTPUT2 (L293D), który jest sterowany przez PC1. Czy to może wynikać z faktu, że coś tam w buforze zostaje? Przecież zgodnie z kodem , który wcześniej zamieściłem obydwie diody powinny się zapalać przy starcie programu i czekać na to co przyjdzie z uarta (tak się dzieje przy niepodłączonym btm, tzn obydwie są zapalone) Jak pózniej wciskam klawisze na telefonie to pięknie się zmieniają i jest ok, tylko problem przy samej inicjalizacji- świeci się tylko jedna. Tak jakby program zaczynał działanie od : if(input=='2')



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

Dołączył(a): 29 sty 2012
Posty: 777
Lokalizacja: Karpicko k. Wolsztyna
Pomógł: 197

kitonQ napisał(a):
Po połączeniu z modułem bluetooth świeci się dioda na OUTPUT2 (L293D), który jest sterowany przez PC1. Czy to może wynikać z faktu, że coś tam w buforze zostaje?


Pewnie dzieje się tak dlatego, że w module BTM masz włączoną opcję "result codes". Dzięki tej opcji moduł odpowiada na komendy AT, które do niego wyślesz. I tak np. na komendę "AT" moduł odpowiada "OK". Podczas nawiązywania połączenia jaki i podczas rozłączania moduł również o tym informuje.
U mnie wysyłane są takie komunikaty
Kod:
CONNECT  '0C60-76-BD1021'
DISCONNECT  '0C60-76-BD1021'


Za włączenie "result codes" odpowiada komenda ATQ0 a za wyłączenie - ATQ1.

W tym poradniku http://mirekk36.blogspot.com/2012/12/bt ... -do-z.html
Mirek pokazuje m.in. jak skonfigurować BTM-a za pomocą komend AT.

Również w tym poradniku do modułu ATB-USB-RS232 http://www.youtube.com/watch?feature=pl ... qNU#t=3092
jest pokazane jak skonfigurować BTM-a za pomocą jednego z narzędzi mkAVRCalculatora.

Spróbuj wyłączyć "result codes" i wtedy zobacz czy program będzie działał poprawnie. Albo napisz go tak aby nie reagował na jakieś przypadkowe dane odbierane z BTM-a.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 24 lis 2014, o 23:05 
Offline
Użytkownik

Dołączył(a): 02 lut 2014
Posty: 38
Pomógł: 0

Zdaje się, że pomogło. Tak czy tak muszę jeszcze pomyśleć o filtracji zasilania, bo przy podłączeniu silnika się zwiesza. Dzięki za podpowiedź! :) pozdrawiam



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

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