Skocz do zawartości

Zmiana baudrate HC-05 przez Arduino


Mand2806

Pomocna odpowiedź

Cześć,

problem wygląda tak: mam prosty program do programowania HC-05 przez arduino uno i komendy AT. Po komendzie AT, komunikat zwrotny OK. Idę dalej, zmieniam nazwę itd. Wszystko działa do momentu kiedy chcę zmienić baudrate. Najpierw wklepuje AT-UART? i dostaje odpowiedź: +UART:4800,0,0, - i tutaj już zaczyna mi coś świtać - przecież ustawienie domyślne to 9600,0,0, ale ok - zmienię je po prostu na np. 38400. Wpisuje komendę AT+UART=38400,0,0, i dostaję w odpowiedzi OK. Sprawdzam poprawność AT+UART? dostaję odpowiedź +UART:38400,0,0. Myślę - super, udało się - resetuje moduł, włączam ponownie AT, sprawdzam jeszcze raz prędkość i dostaję odpowiedź +UART:4800,0,0. Próba zmiany na inne prędkości kończy się tak samo. Natomiast zmiana na powyżej 38400 w ogóle zawiesza moduł i trzeba go resetować. 

Ktoś może zetknął się z takim zachowaniem? Przeszukiwałem google, jedyny temat który znalazłem skończył się stwierdzeniem, że moduł nadaje się do śmieci. Stwierdziłem, że zanim zamówię nowy to założę temat. Wersja modułu: +VERSION:4.0-20190728

Link do komentarza
Share on other sites

4 minuty temu, _LM_ napisał:

Zdaje się że ty zmieniasz baudrate dla komunikacji. Dla trybu AT aby zmienić bd pewnie trzeba użyć innej instrukcji. 

Dla trybu AT nie da się zmienić parametrów transmisji, zawsze jest 38400 8n1. Zmiana baudrate dla komunikacji to właśnie to co chcę zrobić.  Spróbowałem przywrócić ustawienia fabryczne, wszystko poszło ok, oprócz baudrate - jest nadal 4800. 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

18 godzin temu, slon napisał:

@Mand2806  Do komunikacji Serial.begin(4800) będzie ok. Co do domyślnej prędkości to wcale nie musi być 9600. Jaką kolejną wartość ustawiałeś po 38400?

Próbowałem ustawić 115200. Wczytałem się w dokumentację i angielskie fora - domyślna prędkość HC05 to w zależności od wersji to 9600 lub 38400. Natomiast dla trybu AT jest to zawsze 38400 (ustawiane przez podanie VCC na jeden z pinów). Natomiast mój moduł to najprawdopodobniej defekt taniej, chińskiej podróbki. Oprócz wymiany modułu, znalazłem jeden ciekawy sposób, na który nie mam obecnie czasu, ale w przyszłości na pewno go sprawdzę 😁 Chodzi o przeprogramowanie samego scalaka na hc-05 wykorzystując inny program bazujący na tym samym chipie. 

Link do komentarza
Share on other sites

Dla trybu AT się ustawia prędkość jaką się chce, AT to normalny tryb komunikacji przez UART gdy nie ma sparowanego BT pod drugiej stronie radia, po sparowaniu wszystko wpisane w UART leci do odbiornika, przez radio prędkość sobie dopasuje sam, 38400 zawsze domyślnie gdy się go uruchamia "awaryjnie" z wciśniętym przyciskiem (wciskasz przycisk i podłączasz zasilanie, nie każdy moduł ma przycisk), dzięki temu zawsze można wejść w tryb komend AT ze znaną prędkością. Oczywiście zamiast przycisku może być odpowiedni sygnał na odpowiedni pin, ale tego nie próbowałem, bo mam przyciski.  Z innych trików to do modułu wysyłam linię tekstu - zakończoną CR/NL, inaczej nie kuma. Bez problemu działa na 115200, tak właśnie można ładować wsady do UNO/NANO bez kabla, odpowiednio podłączony HC-05 resetuje Arduino (AT+POLAR=1,0 raz przy konfiguracji i kondensator między pin state do RESET Arduino, działa tak jak autoreset Arduino z UART od USB przy otwieraniu połączenia UART) i wgrywa mu wsad przez port COM na BT.

Nowa prędkość działa po resecie, AT+UART=115200,0,0 i potem od razu AT+RESET.

I mam takie tanie z Chin za 2$, może teraz robią podróby podrób. Dla przykładu jakieś HC-10 zachowują się inaczej i nie wymagają linii tekstu z CR/NL.

Inaczej się zachowuje HC-05 ustawiony na master i inaczej ustawiony na SLAVE, HC-06 ma tylko tryb slave.

Opcja, że jest uszkodzony też jest oczywiście na stole.

Oczywiście po resecie nie wymuszaj sprzętowo trybu 38400 AT.

Edytowano przez kaczakat
uwaga końcowa
  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.