• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z bluetooth
#1
Witam wszystkich bardzo serdecznie,

Mam pewien problem z bluetoothem, ale od początku. Chce sterować kolorem diody RGB za pomocą Arduino, a wartości kolorów przesyłać przez bluetooth z telefonu do naszego Arduino. Posiadam bluetooth HC-06. Tutaj wklejam kod programu:

Kod:
#include <SoftwareSerial.h>

SoftwareSerial mySerial(10,11);

void setup() {
 mySerial.begin(9600);
 Serial.begin(9600);
 mySerial.println("Siemanko");
 pinMode(9,OUTPUT);
 pinMode(6,OUTPUT);
 pinMode(5,OUTPUT);
 analogWrite(9,255);
 analogWrite(6,255);
 analogWrite(5,255);
}

char wartosc_blu;
int value;
int wynik=0;
bool temp1, temp2, temp3;
void loop() {
 if( mySerial.available())
 {
   wartosc_blu = mySerial.read();
   if(wartosc_blu == 'b' || temp1){
     temp1=true;
   if(wartosc_blu >= '0' && wartosc_blu <= '9') // is this an ascii digit between 0 and 9?
   {
      value = (value * 10) + (wartosc_blu - '0'); // yes, accumulate the value
   }
   else if (wartosc_blu == 10)  // is the character the newline character
   {
      wynik = value;  // set blinkrate to the accumulated value
      Serial.println(wynik);
      analogWrite(9,wynik);
      value = 0; // reset val to 0 ready for the next sequence of digits
      temp1=false;
   }
 }
 if(wartosc_blu == 'g' || temp2){
     temp2=true;
   if(wartosc_blu >= '0' && wartosc_blu <= '9') // is this an ascii digit between 0 and 9?
   {
      value = (value * 10) + (wartosc_blu - '0'); // yes, accumulate the value
   }
   else if (wartosc_blu == 10)  // is the character the newline character
   {
      wynik = value;  // set blinkrate to the accumulated value
      Serial.println(wynik);
      analogWrite(6,wynik);
      value = 0; // reset val to 0 ready for the next sequence of digits
      temp2=false;
   }
 }
 if(wartosc_blu == 'r' || temp3){
     temp3=true;
   if(wartosc_blu >= '0' && wartosc_blu <= '9') // is this an ascii digit between 0 and 9?
   {
      value = (value * 10) + (wartosc_blu - '0'); // yes, accumulate the value
   }
   else if (wartosc_blu == 10)  // is the character the newline character
   {
      wynik = value;  // set blinkrate to the accumulated value
      Serial.println(wynik);
      analogWrite(5,wynik);
      value = 0; // reset val to 0 ready for the next sequence of digits
      temp3=false;
   }
 }
 }
}

Problem polega na tym, że gdy wysyłam wartości z bluetooth to Arduino nie przetwarza danych które wysyłam(r100 - wartość 100 na kolorze czerwonym i analogicznie do reszty kolorów). Natomiast jeżeli wysyłam je przez SerialMonitor to wszytko działa poprawnie i nie ma żadnych problemów. Myślałem pierwotnie że może być problem z tym, że bluetooth jest podłączony razem do tych samych pinów co USB więc stworzyłem zastępczy serial na pinach 10, 11, ale dalej jest ten sam problem, a i jeszcze bluetooth działa poprawnie bo gdy wysyłam dane na Arduino odsyła mi je na telefon, ale później nic z nimi nie robi. Proszę o pomoc w rozwiązaniu tego problemu bo ja nie wiem co jest nie tak.
 
Odpowiedź
#2
Ten bluetooth co masz to chyba działa tylko w jedną stronę . HC-05 to jest master/slave a HC-06 jest tylko slave
 
Odpowiedź
#3
eeee master oznacza że potrafi zainicjować połączenie , slave tylko je przyjąć a komunikacja jest w obu przypadkach taka sama czyli 2 kierunkowa .
Ważne aby robić co się lubi albo lubić co się robi .
Arduino UNO, TINY, PRO MINI
Pomoc nagradzamy punktami reputacji Wink
 
Odpowiedź
#4
(05-12-2015, 16:56)JasQ napisał(a): eeee master oznacza że potrafi zainicjować połączenie , slave tylko je przyjąć a komunikacja jest w obu przypadkach taka sama czyli 2 kierunkowa .

No to żyłem w niewiedzy Smile
 
Odpowiedź
#5
Ponawiam prośbę o pomoc
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości