Skocz do zawartości

HC5 bluetooth + Arduino - problem z komunikacją


Pomocna odpowiedź

(edytowany)

Dojdziemy w końcu do etapu, że będziesz musiał fotki porobić, co masz gdzie podłączone, bo nie da się uwierzyć. 😛

Edytowano przez trainee
Link to post
Share on other sites

nie wiem jak to ktoś zrobił - znalazłem w sieci, ale działa ... przynajmniej pod względem załączania i wyłączania diody poprzez konsolę z telefonu ...

 

char blueToothVal;           //value sent over via bluetooth
char lastValue;              //stores last state of device (on/off)
 
void setup() 
{
 Serial1.begin(9600); 
 pinMode(12,OUTPUT);
}
 
 
void loop()
{
  if(Serial1.available())
  {//if there is data being recieved
    blueToothVal=Serial1.read(); //read it
  }
  if (blueToothVal=='n')
  {//if value from bluetooth serial is n
    digitalWrite(12,HIGH);            //switch on LED
    if (lastValue!='n')
      Serial1.println(F("LED is on")); //print LED is on
    lastValue=blueToothVal;
  }
  else if (blueToothVal=='f')
  {//if value from bluetooth serial is n
    digitalWrite(12,LOW);             //turn off LED
    if (lastValue!='f')
      Serial1.println(F("LED is off")); //print LED is on
    lastValue=blueToothVal;
  }
  delay(1000);
}

 

Link to post
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

Pomijając, że tu jest użyty port sprzętowy, czyli musiałeś przepiąć Bluetooth z 2, 3 na 0, 1, to nie ma tu nic odkrywczego ani innego. Jeżeli to działa, to komunikacja między komputerem a telefonem też musi.

Link to post
Share on other sites

no dokładnie masz rację z tą komunikacją (przepiąłem się na 0 i 1, ale komunikację testował na wszelkie sposoby i nic mi to nie dawało)  - sprawdzę to i dam znać nie da mi to spokoju

Link to post
Share on other sites
(edytowany)

@merinum 

Cytat

nie wiem jak to ktoś zrobił - znalazłem w sieci, ale działa 

Może dlatego, ze nie używa Serial.write tylko Serial.print? 😉 

Edytowano przez Dantey
  • Nie zgadzam się! 1
Link to post
Share on other sites
38 minut temu, merinum napisał:

nie wiem jak to ktoś zrobił - znalazłem w sieci, ale działa

Może dlatego, ze nie używa Serial.write tylko Serial.print?

Link to post
Share on other sites
18 minut temu, Dantey napisał:

Może dlatego, ze nie używa Serial.write tylko Serial.print?

A Serial.print to czego używa do wypisywania jak nie Serial.write?

Link to post
Share on other sites

Panowie, jak mi już to HC05 zadziałało to zacząłem się tym bawić, robić załączanie, wyłączanie ledów i znowu się zwiesiłem na opcji polegającej na tym, że chciałbym użyć suwaka w aplikacji, który wpływałby, a raczej powodował zmianę wartości zmiennych (np int dlugosc) - mam zdefiniowany zakres od 5-100, przesuwam suwak na 56 i aplikacja wysyła mi do arduino wartość w postaci d 56, no i tutaj znowu zawias bo nie wiem co zbytnio z taką informacją z monitora zrobić by zmieniło int dlugosc na 56 .... pomóżcie mi ten problem jakoś rozwikłać bo ja się już poddaje

Link to post
Share on other sites

@merinum I wypadałoby też napisać co wiesz, czego nie wiesz, czego spróbowałeś, że już się poddajesz, bo pytanie wydaje się być bardzo proste jeśli chwilę poświęcić na naukę podstaw. Pewnie jak zerknę w tutejszy kurs Arduino, to będą bliskie przykłady. Nie lepiej tak, by zrozumieć, zamiast gotowej odpowiedzi pod jeden konkretny przypadek?

Link to post
Share on other sites
10 godzin temu, trainee napisał:

@merinum A może podzielisz się informacjami, co wcześniej robiłeś źle, że teraz już działa?

bardzo przepraszam za brak wyjaśnienia, ale bazowałem na tym co znalazłem i działało i postanowiłem iść tym schematem, ale mając chwilę czasu zrobiłem śledztwo i sprawa wygląda następująco w kwestii Leonardo:

zapis SoftwareSerial mySerial(2, 3); z kodu o który pytałem w przypadku tej płytki nie pójdzie bo zapis z dokumencji Arduino jasno precyzuje, które piny nadają się do transmisji, ten który wybrałem nie pasuje więc nie chodziło, a raczej chodziło tylko w jedną stronę (Not all pins on the Leonardo and Micro boards support change interrupts, so only the following can be used for RX: 8, 9, 10, 11, 14 (MISO), 15 (SCK), 16 (MOSI).)

druga sprawa jest taka, że transmisja jest możliwa na pinach RX TX (0 1) ale tylko i wyłącznie poprzez Serial1, więc zagadka tego tematu została rozwikłana i rozgryziona z każdej strony, dziękuję za wsparcie w tym temacie

  • Lubię! 1
Link to post
Share on other sites
10 godzin temu, trainee napisał:

Będąc dobrym sługą narodu podpowiem, że wszystko, czego potrzebujesz, znajdziesz w dokumentacji typu String z Arduino.

proszę nie zrozum mnie źle, nie szukam gotowców bo to nic nie daje, podstawa to dobrze zrozumieć co się robi, więc naprowadzenie na stringi juz jest mega wskazówką, działam i analizuję temat, jak to wyczaruję to dam znać . dzięki wielkie

Link to post
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.