Witam,
jak w temacie, posiadam Arduino leonardo i zakupiłem w ramach nauki moduł BTM-222.
Nota katalogowa modułu:
Link
Ustaliłem piny na module:
1- GND
2- RXD
3- TXD
4- wyprowadzenie pinu 28 lub 30
5- +5V
A zabawę postanowiłem zacząć od aplikacji na Androida ArduDroid:
Link
Problem polega na tym, że w żaden sposób nie mogę przesłać danych do Arduino, najprostszy program mający zapalać diodę na pinie 13 również nie działa.
Aplikacja łączy się z modułem, jednak nic z tego nie wynika.
Próbowałem już dzielnika napięcia w celu uzyskania sygnału 3,3V, nie zadziałało, w tym przypadku chyba nie jest to potrzebne ale starałem się znaleźć rozwiązanie.
Czy ktoś łączył ten moduł z Arduino leonardo i może podzielić się swoimi doświadczeniami?
Edit1:
Doczytałem dość ważną rzecz:
Not all pins on the Leonardo support change interrupts,
so only the following can be used for RX:
8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
Rozpiska pinów, dla mnie 14, 15 i 16 nie był oczywisty:
Link
biblioteka pomagająca zmienić piny rx i tx <SoftwareSerial.h>:
Wybrałem 14 i 15 ponieważ nie "wchodzą mi w drogę" na pinach cyfrowych:)
Edit2:
dla osób, których dotyczy problem i szukają rozwiązania podaję link opisujący problem:Link
Edit3. Rozwiązanie
Poczytałem o bibliotece SoftwareSerial i dokonałem dziś ostatnich modyfikacji w przykładowym kodzie.
Ponieważ zmieniliśmy piny rx i tx z domyślnych zamiast Serial, piszemy BluetoothSerial, w programie wszystko widać.
Póki co za pomocą tej aplikacji zrobiłem sterowanie taśmą RGB, serva i odczyt z czujnika temperatury i jest przyjemna w podstawowym zastosowaniu.
Jedyne czego chciałbym się pozbyć to laga, który jest czasami niedostrzegalny, a czasami znaczny (do dwóch sekund).
Nie wiem czy BT tak ma czy mogę coś w kodzie zmienić aby to poprawić, może baud zwiększę... Najpierw doczytam:)
Szkoda, że nie mogę dać sobie choć punkcika;)
Cóż, zostawię dla potomnych, ja na raty trochę rozwiązania szukałem.
Pozdrawiam
jak w temacie, posiadam Arduino leonardo i zakupiłem w ramach nauki moduł BTM-222.
Nota katalogowa modułu:
Link
Ustaliłem piny na module:
1- GND
2- RXD
3- TXD
4- wyprowadzenie pinu 28 lub 30
5- +5V
A zabawę postanowiłem zacząć od aplikacji na Androida ArduDroid:
Link
Problem polega na tym, że w żaden sposób nie mogę przesłać danych do Arduino, najprostszy program mający zapalać diodę na pinie 13 również nie działa.
Aplikacja łączy się z modułem, jednak nic z tego nie wynika.
Próbowałem już dzielnika napięcia w celu uzyskania sygnału 3,3V, nie zadziałało, w tym przypadku chyba nie jest to potrzebne ale starałem się znaleźć rozwiązanie.
Czy ktoś łączył ten moduł z Arduino leonardo i może podzielić się swoimi doświadczeniami?
Edit1:
Doczytałem dość ważną rzecz:
Not all pins on the Leonardo support change interrupts,
so only the following can be used for RX:
8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).
Rozpiska pinów, dla mnie 14, 15 i 16 nie był oczywisty:
Link
biblioteka pomagająca zmienić piny rx i tx <SoftwareSerial.h>:
Kod: text
Wybrałem 14 i 15 ponieważ nie "wchodzą mi w drogę" na pinach cyfrowych:)
Edit2:
dla osób, których dotyczy problem i szukają rozwiązania podaję link opisujący problem:Link
Edit3. Rozwiązanie
Poczytałem o bibliotece SoftwareSerial i dokonałem dziś ostatnich modyfikacji w przykładowym kodzie.
Ponieważ zmieniliśmy piny rx i tx z domyślnych zamiast Serial, piszemy BluetoothSerial, w programie wszystko widać.
Kod: text
Póki co za pomocą tej aplikacji zrobiłem sterowanie taśmą RGB, serva i odczyt z czujnika temperatury i jest przyjemna w podstawowym zastosowaniu.
Jedyne czego chciałbym się pozbyć to laga, który jest czasami niedostrzegalny, a czasami znaczny (do dwóch sekund).
Nie wiem czy BT tak ma czy mogę coś w kodzie zmienić aby to poprawić, może baud zwiększę... Najpierw doczytam:)
Szkoda, że nie mogę dać sobie choć punkcika;)
Cóż, zostawię dla potomnych, ja na raty trochę rozwiązania szukałem.
Pozdrawiam