Search the Community
Showing results for tags 'hc-06'.
Found 2 results
-
Arduino HC-06 (Serial.available() внутри условия Serial.available)
Guest posted a topic in Arduino и Raspberry Pi
Доброго времени суток. Не смог реализовать повторный Serial.available() внутри условия Serial.available. Может кто-то уже сталкивался с этим. Задача состоит в том, что нужно зажечь светодиодные ленты WS2812b. Алгоритм действий: 1) Ожидаем появления данных на входе serial с помощью if (Serial.available()){} 2) Принимаем значения int val=Serial.paresInt(); 3)Условие сравнивания if(val>123){chess=val;} esle if(val<124){color=val;} т.е номер светодиода это chess, цвет это color 4) На смартфон отправляем 'n', для разрешения отправки следующих данных 5)Ждем уже цвет светодиода на входе serial далее по предыдущему алгоритму 6)Зажигаем указанный светодиод на указанный цвет. #include <FastLED.h> #define LED_PIN 6 #define NUM_LEDS 123 CRGB leds[NUM_LEDS]; const unsigned int DIM1 = 123; const unsigned int DIM2 = 1; const unsigned int DIM3 = 3; int ary[DIM1][DIM2][DIM3]; void setup() { Serial.begin(9600); FastLED.addLeds<WS2812, LED_PIN, GRB>(leds, NUM_LEDS); } void loop() { if(Serial.available()){ int val=Serial.parseInt(); int chess=val; Serial.println(chess); delay(1); Serial.println('n'); clear_serail(); if(Serial.available()){int color=Serial.parseInt(); Serial.println(color); if(color>0){ if(color==124){ ary[chess][1][1]=0; ary[chess][1][2]=255; ary[chess][1][3]=0; Serial.println(ary[chess][1][1]); Serial.println(ary[chess][1][2]); Serial.println(ary[chess][1][3]); leds[chess]=CRGB(ary[chess][1][1],ary[chess][1][2],ary[chess][1][3]); FastLED.show(); Serial.println('l'); clear_serail(); } if(color==125){ ary[chess][1][1]=255; ary[chess][1][2]=0; ary[chess][1][3]=0; leds[chess]=CRGB(ary[chess][1][1],ary[chess][1][2],ary[chess][1][3]); FastLED.show(); Serial.println('l'); clear_serail(); }}} } } void clear_serail(){ Serial.end(); Serial.begin(9600); }