#include #include NS_Rainbow ns_stick2 = NS_Rainbow(8,2); SoftwareSerial mySerial(10, 11); bool serial_mode = false; void setup() { pinMode(12, INPUT); pinMode(13, OUTPUT); ns_stick2.begin(); Serial.begin(115200); mySerial.begin(9600); } void loop() { if (serial_mode == false) { int d12 = digitalRead(12); digitalWrite(13, d12); } while (mySerial.available()) { String s1 = mySerial.readStringUntil(':'); String s2 = mySerial.readStringUntil(';'); if (s1 != NULL && s1.length() > 0 && s2 != NULL && s2.length() > 0) { serial_mode = true; Serial.println(s1 + ":" + s2 + ";"); process_event(s1, s2); } } while (Serial.available()) { String s1 = Serial.readStringUntil(':'); String s2 = Serial.readStringUntil(';'); if (s1 != NULL && s1.length() > 0 && s2 != NULL && s2.length() > 0) { serial_mode = true; Serial.println(s1 + ":" + s2 + ";"); process_event(s1, s2); } process_event(s1, s2); } delay(10); } void process_event(String s1, String s2) { if (s1 == "LED" && s2 == "on") { digitalWrite(13, HIGH); ns_stick2.setAllColor(150, 150, 150); ns_stick2.show(); } if (s1 == "LED" && s2 == "off") { digitalWrite(13, LOW); ns_stick2.setAllColor(0, 0, 0); ns_stick2.show(); } if (s1 == "brightness") { int b = s2.toInt(); int c = map(b, 0, 100, 0, 255); ns_stick2.setAllColor(c, c, c); ns_stick2.show(); } if (s1 == "color") { if (s2 == "red") ns_stick2.setAllColor(255, 0, 0); if (s2 == "green") ns_stick2.setAllColor(0, 255, 0); if (s2 == "blue") ns_stick2.setAllColor(0, 0, 255); if (s2 == "yellow") ns_stick2.setAllColor(255, 255, 0); if (s2 == "orange") ns_stick2.setAllColor(255, 127, 0); ns_stick2.show(); } }