#include <FastLED.h> // Druga biblioteka sterowania diodami
#define PIN 2 // Pin do sterowania diodami
#define NUMPIXELS 30 // Ilosc diod
#define COLOR_ORDER RGB
#define LED_TYPE WS2811
#define MAX_BRIGHTNESS 255
char OdebraneDane[20];
int indeks=0;
char data;
float Dioda_R = 0; // wartosc jasnosci dla diod czerwonych
float Dioda_G = 0; // wartosc jasnosci dla diod zielonych
float Dioda_B = 100; // wartosc jasnosci dla diod niebieskich
char znak ="";
int x=6;
CRGB led[NUMPIXELS];
void setup()
{
Serial.begin(9600);
FastLED.setBrightness(MAX_BRIGHTNESS);
FastLED.addLeds<NEOPIXEL, PIN>(led, NUMPIXELS);
FastLED.clear();
}
void loop()
{
wybor_funkcji();
}
void wybor_funkcji()
{
if (Serial.available() > 0 )
{
if (Serial.read() == 'f')
{
x = 0;
}
Serial.println(x);
}
delay(200);
while (x == 0){
ustawienie_koloru();
}
}
void ustawienie_koloru()
{
while (1 == 1) {
x=8;
Serial.print("ustawienie koloru:");
Serial.println(indeks);
if (Serial.available() > 0 )
{
delay(200);
do{
Serial.print("przerwa");
znak = (char)Serial.read();
OdebraneDane[indeks] = znak;
indeks++;
} while(znak != '\n');
OdebraneDane[indeks] = 0;
indeks=0;
delay(200);
}
}
}
Powyżej zamieściłem kod o którym mowa.
Zamieszczę również zdjęcie bloków z MIT app inventor.
Aplikacja ma służyć do sterowania LED'ami.
Z niewiadomej dla mnie przyczyny po wysłaniu kilka razy informacji do bluetooth poprzez moduł HC-05 wyskakuje błąd "516 - broken pipe".
Aplikacja mobilna była tworzona w MIT app inventor oraz w kotlinie (android studio). Wciąż ten sam problem.
Wiem, że broken pipe występuje ze względu na problem z połączeniem użytkownik-odbiorca. W blokach w MIT app inventor zamieściłem fragment, który łączy
mnie z powrotem z arduino. Niestety jest to połowiczne rozwiązanie, bo ponowne łączenie trwa z 6 sekund (co jest irytujące).
Ciekawe, że kiedy korzystam z aplikacji RoboRemo, wszystko działa jak należy...
Ktoś miał podobny problem? Ktoś wie jak go rozwiązać?