Elektroda.pl
Elektroda.pl
X
Elektroda.pl
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Problem z bluetooth - Wysyła dane pomimo ich braku

23 Lut 2015 19:46 1530 11
  • Poziom 7  
    Witam, Posiadam moduł BTM-222 wszystko działało w zasadzie w porządku (czasami nie włączało się bluetooth), po dokończeniu programu przestał on wysyłać dane do mikrokontrolera. Dane są odbierane (mruga dioda odbioru) ale ciągle wysyła 0.
    Po podglądzie danych wysyłanych przez moduł, czasami wysłał on coś innego, ale nie udało mi się tego powtórzyć.

    Przez ten problem zakupiłem moduł hc-06, który na początku wysyła 0, ale po otrzymaniu danych zamiast 0 wysyła kilka losowych liczb. Ktoś wie jaki może być w tym problem?

    Proszę o pomoc. Pozdrawiam. Michał
  • Moderator Mikrokontrolery Projektowanie
    Czyli oba moduły nie działają tak jak chcesz?
    Jeśli tak, to problem jest po Twojej stronie, a nie modułów.

    Standardowo:
    - schemat,
    - program (o ile jakiś jest),
    - zdjęcia,
    - screeny z ustawieniami terminala (o ile używasz).

    Obstawiam w ciemno, że nie dopasowałeś poziomów logicznych lub transmisji.
  • Poziom 7  
    Tak, oba nie działają tak jak chce. Przy czym BTM-222 działał dobrze do czasu podpięcia serva.
    Ogólnie moim projektem jest samochód zdalnie sterowany z Bluetooth.
    Testuje program na Arduino Leonardo, wykonawczym układem jest Mini Pro, po zaprogramowaniu serwa na Leonardo i sprawdzeniu poprawności działania zgrałem program do Mini Pro. W między czasie w układ zasilania stabilizator 6V pod servo. Tyle że raz żle wpiąłem BTM-222 o jeden pin w lewo, tzn:
    BTM-222 -> płytka
    vcc->gnd
    gnd->rx
    tx->tx
    rx-> "w powietrzu"

    Od tego czasu można się z nim połączyć, odbiera dane, a przynajmniej na to wskazuje dioda ale nic nie wysyła dalej. Po napisaniu programu na Leonardo przerzucające dane odebrane z Bluetooth na USB kilka razy coś odebrało, ale nie udało mi się tego powtórzyć w kontrolowany sposób.

    Z tego powodu zakupiłem HC-06 . Program do testów na arduino:
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    i rozpoczyna transmisję od nadawania "0" dopóki nie dostanie sygnału, po otrzymaniu wiadomości , zamiast wrócić do stanu oczekiwania i nadawania co jakiś czas "0" na monitorze portu szeregowym nadaje w zależności od tego co było wcześniej (od sygnału odebranego przez BT) jedne z następujących liczb "254; 120; 248; 30; 158".
    Co ciekawe, po podpięciu modułu do komputera w programie PUTTY odbiera tylko to co nadam z telefonu.
    Putty obcina też te "0" jak nie nadaje, więc pewnie problem jest w samym mikro kontrolerze.
    Dodam że monitorując wyjście BTM-222 nie miałem takich dziwnych śmieci po wysłaniu sygnału.

    Dopiero jutro zastosuje konwerter sygnału z 5v na 3,3 na szynie danych, ale to chyba nie tutaj tkwi problem?

    schemat:
    Problem z bluetooth - Wysyła dane pomimo ich braku



    Proszę i dziękuję z góry za pomoc.
    Pozdrawiam.
  • Poziom 7  
    Dodałem schemat, jednak problem jest bardziej w samym hc-06, jak wspominałem przy BTM-222 nie było problemu, wszystko działało dobrze. Po podpięciu HC-06 do Leonardo na zasadzie
    5v-vcc
    gnd-gnd
    tx-rx
    rx-tx
    screen z monitora portu szeregowego:

    Problem z bluetooth - Wysyła dane pomimo ich braku

    Na czerwono zaznaczone same dane. Jak pisałem, po podpięciu do pc przez rs-232-usb PUTTY pokazuje mi tylko dane które wysyłam. Skoro na BTM-222 wszystko działało dobrze, to teoretycznie na HC-06 też powinno działać. W programie pomiędzy tymi modułami zmieniłem tylko prędkość transmisji.
  • Poziom 7  
    Dzisiaj postaram się zrobić konwenter i zobaczymy, a po USB jak jest z napięciem danych? Chyba że przejściówka USB rs232 załatwia ta sprawę.
    A co do btm-222, ktoś wie co to może być za przyczyna?

    Edit:
    Konwerter gotowy, jednak działanie bez zmian. Czy możliwe że moduł jest uszkodzony?
  • Poziom 7  
    O dziwo HC-06 zaczął wysyłać "normalnie" dane. Tzn przy braku danych wysyła -1, odbiera dane i znowu wysyła -1, jednak w kolejnej lince wysyła dziwny znak: Problem z bluetooth - Wysyła dane pomimo ich braku
    I w sumie przez niego program się wysypuje, ale jak pisałem w PuTTY nie jest on odbierany.
    Jakieś pomysły?
  • Poziom 7  
    Z tego co widzę problem raczej tkwi w Arduino, PUTTY zwraca mi tylko to co wysyłam, za każdym razem, teraz jest taka sytuacja:
    Problem z bluetooth - Wysyła dane pomimo ich braku
    Po odebraniu danych w HEX, dalej nadpisuje znaki sam.
    [code]
    Kod: cpp
    Zaloguj się, aby zobaczyć kod

    pin 13 to dioda na Arduino która w teori powinna się zapalać i gasnąć.
  • Poziom 7  
    Używam tutaj arduino ide, nie mam możliwości zmiany. W Putty odbieram wszystko poprawnie. W sumie sytuacja wygląda tak, albo wysyła dziwne znaki kilka spacji dalej, albo w nowej linice dopisuje kolejne litery albo liczby w zależności co wcześniej wysyłałem. Prędkość transmisji ustawiona poprawnie.
    W putty po zmianie na DEC jest tak samo. Po rozłączeniu telefonu z BT ciągle wysyła te same znaki.
    Znaki nadpisywane są od 2 znaku który wysyłam, tzn wysyłam ON nadpisuje samo "n". Przy jednym klawiszu wysyła jeden znak przy naciśnięciu i jeden przy puszczeniu klawisza, jeśli odstęp pomiędzy naciśnięciem i puszczeniem jest duży (1s) nic nie nadpisuje, jeśli zrobie to szybciej również nadpisuje drugi znak.