В настоящее время я работаю над проектом, в котором мой телефон контролирует светодиодную ленту RGB. Я полагаю, что моя сторона андроида работает достаточно прилично, где все должно работать. У меня проблема в том, что когда я нажимаю один цвет на телефоне, полоска работает просто отлично, но когда я нажимаю на строб или кнопку затухания, светодиодная полоска работает, но только для этой одной функции, затем она ломается или не работает.
Моя цель состоит в том, чтобы нажать на любую кнопку, независимо от того, является ли она сплошным цветом или стробоскопом, и хотите, чтобы она работала. Любая помощь будет принята с благодарностью.
#include <SoftwareSerial.h>
int bluetoothTx = 2;
int bluetoothRx = 3;
int RedPin = 10;
int GreenPin = 5;
int BluePin = 6;
SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
String data;
char inData;
int FADESPEED = 5;
void setup()
{
Serial.begin(9600);
bluetooth.begin(115200);
delay(100);
//bluetooth.println("U,9600,N");
bluetooth.begin(9600);
}void loop()
{
if(bluetooth.available() > 0)
{
inData = (char)bluetooth.read();
if(inData != '\n')
{
data += inData;
}
}
else
{
data = "";
}
//**********************************************************
if (data == "Red")
{//if value from bluetooth serial is n
analogWrite(RedPin, 255);
analogWrite(GreenPin, 0);
analogWrite(BluePin, 0); //switch on LED
}
//**********************************************************
else if (data == "Blue")
{//if value from bluetooth serial is n
analogWrite(RedPin, 0);
analogWrite(GreenPin, 0);
analogWrite(BluePin, 255); //turn off LED
}
//**********************************************************
else if (data == "Green")
{
analogWrite(RedPin, 0);
analogWrite(GreenPin, 255);
analogWrite(BluePin, 0);
}
//**********************************************************
else if (data == "R1")
{
analogWrite(RedPin, 255);
analogWrite(GreenPin, 0);
analogWrite(BluePin, 125);
}
//**********************************************************
else if (data == "B1")
{
analogWrite(RedPin, 0);
analogWrite(GreenPin, 125);
analogWrite(BluePin, 255);
}
//**********************************************************
else if (data == "G1")
{
analogWrite(RedPin, 125);
analogWrite(GreenPin, 255);
analogWrite(BluePin, 0);
}
//**********************************************************
else if (data == "R2")
{
analogWrite(RedPin, 255);
analogWrite(GreenPin, 0);
analogWrite(BluePin, 255);
}
//**********************************************************
else if (data == "B2")
{
analogWrite(RedPin, 0);
analogWrite(GreenPin, 255);
analogWrite(BluePin, 255);
}
//**********************************************************
else if (data == "G2")
{
analogWrite(RedPin, 255);
analogWrite(GreenPin, 255);
analogWrite(BluePin, 0);
}
//**********************************************************
else if (data == "R3")
{
analogWrite(RedPin, 125);
analogWrite(GreenPin, 0);
analogWrite(BluePin, 255);
}
//**********************************************************
else if (data == "B3")
{
analogWrite(RedPin, 0);
analogWrite(GreenPin, 255);
analogWrite(BluePin, 125);
}
//**********************************************************
else if (data == "G3")
{
analogWrite(RedPin, 255);
analogWrite(GreenPin, 125);
analogWrite(BluePin, 0);
}
//**********************************************************
while(data == "Strobe" && bluetooth.available() == 0)
{
analogWrite(RedPin, 255);
analogWrite(GreenPin, 255);
analogWrite(BluePin, 255);
delay(40);
analogWrite(RedPin, 0);
analogWrite(GreenPin, 0);
analogWrite(BluePin, 0);
delay(40);
}
//**********************************************************
while(data == "Smooth" && bluetooth.available() == 0)
{
{
int r, g, b;
// fade from blue to violet
for (r = 0; r < 256; r+5)
{
analogWrite(RedPin, r);
delay(FADESPEED);
}
// fade from violet to red
for (b = 255; b > 0; b-5)
{
analogWrite(BluePin, b);
delay(FADESPEED);
}
// fade from red to yellow
for (g = 0; g < 256; g+5)
{
analogWrite(GreenPin, g);
delay(FADESPEED);
}
// fade from yellow to green
for (r = 255; r > 0; r-5)
{
analogWrite(RedPin, r);
delay(FADESPEED);
}
// fade from green to teal
for (b = 0; b < 256; b+5)
{
analogWrite(BluePin, b);
delay(FADESPEED);
}
// fade from teal to blue
for (g = 255; g > 0; g-5)
{
analogWrite(GreenPin, g);
delay(FADESPEED);
}
}
}
//**********************************************************
}
Задача ещё не решена.