Skocz do zawartości

Brak możliwości sterowania diodą LED za pomocą modułu Bluetooth HM-10 (Arduino MEGA)


Pomocna odpowiedź

Napisano

Witam wszystkich! Przedstawię sprawę jak najkrócej i przejrzyście, chcę sterować diodą LED przy pomocy Arduino MEGA(klon) wraz z modułem BT HM-10. Mam możliwość ustawić modułu, lecz nie mogę zrobić najprostszej rzeczy jaką jest zapalenie diody LED przy pomocy telefonu z androidem. Używałem wielu aplikacji, wielu kodów lecz to nie działa! Pomoże mi ktoś? Podaję jeden z kodów programów.


#include <SoftwareSerial.h>
SoftwareSerial HM10(2, 3); // RX = 2, TX = 3
char appData;  
String inData = "";
void setup()
{
  Serial.begin(9600);
  Serial.println("HM10 serial started at 9600");
  HM10.begin(115200); // set HM10 serial at 9600 baud rate
  pinMode(13, OUTPUT); // onboard LED
  digitalWrite(13, HIGH); // switch OFF LED
}
void loop()
{
  HM10.listen();  // listen the HM10 port
  while (HM10.available() > 0) {   // if HM10 sends something then read
    appData = HM10.read();
    inData = String(appData);  // save the data in string format
    Serial.write(appData);
  }
 
  if (Serial.available()) {           // Read user input if available.
    delay(10);
    HM10.write(Serial.read());
  }
  if ( inData == "F") {
    Serial.println("LED OFF");
    digitalWrite(13, LOW); // switch OFF LED
    delay(500);
  }
  if ( inData == "N") {
    Serial.println("LED ON");
    digitalWrite(13, HIGH); // switch OFF LED
    delay(10000);
    digitalWrite(13, LOW); // switch OFF LED
    delay(500);
  }
}

 

Po co tyle delay ów? Na jakim baudrate jest skonfigurowany moduł bt? Co wysyła aplikacja na android? Masz jakąś dedykowaną czy używasz wirtualnego portu bt/com

Pytam bo w konfigu w komentarzu masz zapisane 9600, czy na serial są wysyłane dane odebrane przez bt? 

  • Lubię! 1

Ok ale pytałem też czy masz jakąkolwiek komunikację z tym modułem. Czyli coś w stylu co odbierze moduł spróbuj wysłać na terminal 

(edytowany)
#include <SoftwareSerial.h>
SoftwareSerial HM10(2, 3); // RX = 2, TX = 3
char appData;  

void setup()
{
  Serial.begin(9600);
  Serial.println("HM10 serial started at 9600");
  HM10.begin(115200); 
}
void loop()
{
  while (HM10.available() > 0) {   // if HM10 sends something then read
    appData = HM10.read();
    Serial.println(appData);
  }
 

wgraj narazie tylko to i sprawdz czy cos odbierasz z tego bt...ewentualnie pobaw sie predkosciami tego modulu bo nie wiadomo czy napewno udalo Ci sie zmienic predkosc...

Edytowano przez farmaceuta
  • Lubię! 2
(edytowany)

@_LM_ komunikacja jest, odpowiada na komendy AT(Terminal i telefon). Ustawiłem nazwę, ustawiłem i włączyłem hasło i zmieniłem prędkość na 4 teorytycznie 115200 ale sprawdzę na 9600.

 

Edytowano przez MatiElektronik

Nie chodzi o komendy AT modułu a o komunikację z arduino, sprawdź z tym kodem co @farmaceuta pokazał (nie jestem pewien czy apdata nie powinien być typu string), powinien wysyłać na terminal dane które odbierze BT. Jeśli to zadziała to połowa sukcesu

  • Lubię! 1
20 minut temu, MatiElektronik napisał:

 prędkość ustawiona na 0 czyli 9600

 

A o czym my caly czas z @_LM_ piszemy?? masz ustawic predkosc w szkicu a nie w blue...zostaw juz te komendy at...w kodzie zmieniaj predkosc w funkcji biblioteki czyli .begin()...

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...