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:
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.
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.