Skocz do zawartości

Arduino Bluetooth


lukasq12

Pomocna odpowiedź

Witam forumowiczów, jest to mój pierwszy post na tym forum.

Od paru dni jestem posiadaczem Arduino, oraz modułu bluetooth HC-05.

Postanowiłem zbudować prosty samochód sterowany z androida i tu zaczął się problem, otóż telefon paruje z urządzeniem, dioda na HC-05 zaczyna wolniej pulsować. Wpisuje w terminal aplikacji komendę i nic. Jednak gdy robię to z komputera program sterujący silnikiem się kręci, a co więcej odsyłana zostaje komenda nawet na telefon, i tu pytanie co jest nie tak?

Czy HC-05 pracuje tutaj jako master, a telefon slave? Czy może jest nie sprawny?

Kod programu

int motorPin1 = 3; // pin 2 on L293D IC
int motorPin2 = 4; // pin 7 on L293D IC
int enablePin = 5; // pin 1 on L293D IC
int state;
int flag=0;        //makes sure that the serial only prints once the state

void setup() {
   // sets the pins as outputs:
   pinMode(motorPin1, OUTPUT);
   pinMode(motorPin2, OUTPUT);
   pinMode(enablePin, OUTPUT);
   // sets enablePin high so that motor can turn on:
   digitalWrite(enablePin, HIGH);
   // initialize serial communication at 9600 bits per second:
   Serial.begin(9600);
}

void loop() {
   //if some date is sent, reads it and saves in state
   if(Serial.available() > 0){     
     state = Serial.read();   
     flag=0;
   }   
   // if the state is '0' the DC motor will turn off
   if (state == '0') {
       digitalWrite(motorPin1, LOW); // set pin 2 on L293D low
       digitalWrite(motorPin2, LOW); // set pin 7 on L293D low
       if(flag == 0){
         Serial.println("Motor: off");
         flag=1;
       }
   }
   // if the state is '1' the motor will turn right
   else if (state == '1') {
       digitalWrite(motorPin1, LOW); // set pin 2 on L293D low
       digitalWrite(motorPin2, HIGH); // set pin 7 on L293D high
       if(flag == 0){
         Serial.println("Motor: right");
         flag=1;
       }
   }
   // if the state is '2' the motor will turn left
   else if (state == '2') {
       digitalWrite(motorPin1, HIGH); // set pin 2 on L293D high
       digitalWrite(motorPin2, LOW); // set pin 7 on L293D low
       if(flag == 0){
         Serial.println("Motor: left");
         flag=1;
       }
   }
}
Link do komentarza
Share on other sites

Witaj, ogólnie będzie to mój pierwszy post na tym forum i jeśli bym coś źle powiedział mam nadzieję, że zrozumiecie, jednak wnioskując po twojej wypowiedzi wszystko jest okej z wyjątkiem wysyłania z telefonu.

Skoro przesyłając jakieś wartości z kompa, silniki działają jak powinny to twój program jest okej.

Niestety arduino nie posiadam, jednak na swojej atmedze używałem modułu HC-05 i nie było z nim żadnych problemów. Jesteś pewien że aplikacja na telefon działa poprawnie? Polecam program appinventor, możesz zrobić tam swoją aplikację, która będzie działać bez większych problemów i będziesz miał wszystko pod kontrolą.

Pozdrawiam, a tutaj mój kod jak jeszcze kiedyś tam miałem jakąś płytkę z arduino mini, działał tak, że po wysłaniu jakiejś wartości z telefonu led się zaświecał bądź gasił. Może się przyda do testów.

int led = 8;
int state;

void setup() {                
 pinMode(led, OUTPUT);     
 // 9600 bit na sek:
 Serial.begin(9600);
}

void loop() {
 if(Serial.available() > 0){     
     state = Serial.read();}

 if (state == '1') {
     digitalWrite(led, HIGH);} 

 if (state == '2') {
     digitalWrite(led, LOW);}   

 if (state == '3') {
     digitalWrite(led, HIGH);}  

 if (state == '4') {
     digitalWrite(led, LOW);}  

 if (state == '5') {
     digitalWrite(led, HIGH);}  

 if (state == '6') {
     digitalWrite(led, LOW);} 

 if (state == '7') {
     digitalWrite(led, HIGH);} 

 if (state == '8') {
     digitalWrite(led, LOW);}  

 delay(100);            

}

Pozdrawiam.

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

Planuje zrobić robota sterowanego telefonem z androidem przez bt. Chciałem w tym celu użyć hc-05. Szukam jakieś przykładowej aplikacji i kodu na arduino. Jak patrzyłem przykładowe aplikacje ze sklepu play to telefon się parował z modułem ale tak ogólnie nie działało. I jak przejść w tryb AT?

Link do komentarza
Share on other sites

Witam jestem tu nowy. Posiadam funduino uno i mam problem z modułem bluetooth. Posiadam BLUETOOTH HC-05 kupiony na allegro od AVmarket. Problem polega na tym iż nie mogę się polaczyć żadną aplikacją z modułem. Telefon idzie sparować ale gdy wchodzę w aplikację np. arduino bluetooth rc car żeby móc sterować samochodem wyskakuje unable to connect. Wszystkie aplikację które ściągam maja problem z polączeniem sie z modułem. Jedyne co to Arduino terminal łączy się.

Kolejny problem to taki że nie mogę wejść w tryb komend. Mój bluetooth posiada takie o to nóżki: State, RXD, TXD, GND, VCC, EN. Level 3,3V. Power 3,6-6V.

Prosty program do odczytywania komend z arduino terminala nie wyświetla ich na monitorze.

void setup(){ 
  Serial.begin(9600); 
} 

void loop(){ 
  if (Serial.available()){ 
    Serial.print(Serial.read()); 
  } 
}

Jak podłączyć ten moduł pod RX i TX żeby go nie spalić skoro napięcie to 3,3 a magistrala UART w arduino daje napięcie 5 V ??

Jestem zielony w tych sprawach póki co

Link do komentarza
Share on other sites

no tak czyli już go uszkodziłem i przez to mam problemy z polaczeniem się z aplikacjami ??

co zrobić żeby kolejnego modułu nie spalić i jak go podłączyć. jaki najlepiej wyprać. pomoże ktoś ?

Link do komentarza
Share on other sites

Powinien działać. Moduł bluetooth to to zielone, a na tej niebieskiej płytce masz regulator napięcia i logic level shifter.

Natomiast żeby dobrać się do komend AT, musisz mieć przy podłączaniu zasilania wciśnięty ten guzik...

Link do komentarza
Share on other sites

Czyli jak podlaczylem go do portow na arduino Rx i Tx a zasilanie 5v to go nie spalilem ?

Jezeli chodzi o tryb AT to podlaczam zasilane przy wcisnietym tym malym przycisku, dioda zaczyna wolniej mrugac. Gdy na komputerze w porcie szeregowym pisze jakas komende to zadnej informacji zwrotnej nie ma. Moze mam zly program ? Czy jeszcze jakis port musze podlaczyc oprocz zasilania, Tx i Rx ?. Kolejna sprawa zadna aplikacja nie moze sie sparowac poza bluetooth terminalem na androida lecz nie bez problemow. Moze ktos poda jakis skech ?

Zauwazylem rowniez ze gdy bluetooth terminal juz sie polaczy to dioda na bluetooth nie swieci sie lecz mruga tak samo jak w przypadku podlaczania bluetooth z wcisnietym tym malym przyciskiem .

Dzieki z gory za pomoc.

Link do komentarza
Share on other sites

Mam klona Funduino zgodny z arduino uno r3. Zdjecia schematu nie mam gdyz nie ma mnie w domu. Podlaczam zasilanie pod 5v, gnd do masy a RX z Bt do TX arduino, TX z Bt do RX arduino czyli na krzyz tak wyczytalem tu na forum

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.