#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 6
#define NUMPIXELS 8
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
String inString = String(100);
int dbLevel = -999;
#define DELAYVAL 1
void buffer_fill() {
inString = "";
inString = Serial.readStringUntil('x');
if (inString != "") {
pixels.clear();
float fled = inString.toFloat();
if (fled >= 0.09) {
for (int x = 0; x < 8; x++) {
pixels.setPixelColor(x, pixels.Color(110, 0, 0));
}
pixels.show();
Serial.flush();
delay(750);
}
if (fled < -60) {
for (int x = 0; x < 7; x++) {
pixels.setPixelColor(x, pixels.Color(0, 0, 0));
}
}
if (fled > -60 && fled < -50) {
pixels.setPixelColor(0, pixels.Color(0, 90, 0));
for (int x = 1; x < 7; x++) {
pixels.setPixelColor(x, pixels.Color(0, 0, 0));
}
}
if (fled > -50 && fled < -40) {
pixels.setPixelColor(0, pixels.Color(0, 90, 0));
pixels.setPixelColor(1, pixels.Color(0, 90, 0));
for (int x = 2; x < 7; x++) {
pixels.setPixelColor(x, pixels.Color(0, 0, 0));
}
}
if (fled > -40 && fled < -30) {
pixels.setPixelColor(0, pixels.Color(0, 90, 0));
pixels.setPixelColor(1, pixels.Color(0, 90, 0));
pixels.setPixelColor(2, pixels.Color(0, 90, 0));
for (int x = 3; x < 7; x++) {
pixels.setPixelColor(x, pixels.Color(0, 0, 0));
}
}
if (fled > -30 && fled < -20) {
pixels.setPixelColor(0, pixels.Color(0, 90, 0));
pixels.setPixelColor(1, pixels.Color(0, 90, 0));
pixels.setPixelColor(2, pixels.Color(0, 90, 0));
pixels.setPixelColor(3, pixels.Color(0, 90, 0));
for (int x = 4; x < 7; x++) {
pixels.setPixelColor(x, pixels.Color(0, 0, 0));
}
}
if (fled > -20 && fled < -13) {
pixels.setPixelColor(0, pixels.Color(0, 90, 0));
pixels.setPixelColor(1, pixels.Color(0, 90, 0));
pixels.setPixelColor(2, pixels.Color(0, 90, 0));
pixels.setPixelColor(3, pixels.Color(0, 90, 0));
pixels.setPixelColor(4, pixels.Color(0, 90, 0));
for (int x = 5; x < 7; x++) {
pixels.setPixelColor(x, pixels.Color(0, 0, 0));
}
}
if (fled > -13 && fled < -7) {
pixels.setPixelColor(0, pixels.Color(0, 90, 0));
pixels.setPixelColor(1, pixels.Color(0, 90, 0));
pixels.setPixelColor(2, pixels.Color(0, 90, 0));
pixels.setPixelColor(3, pixels.Color(0, 90, 0));
pixels.setPixelColor(4, pixels.Color(0, 90, 0));
pixels.setPixelColor(5, pixels.Color(90, 90, 0));
pixels.setPixelColor(6, pixels.Color(0, 0, 0));
pixels.setPixelColor(7, pixels.Color(0, 0, 0));
}
if (fled > -7 && fled < -3) {
pixels.setPixelColor(0, pixels.Color(0, 90, 0));
pixels.setPixelColor(1, pixels.Color(0, 90, 0));
pixels.setPixelColor(2, pixels.Color(0, 90, 0));
pixels.setPixelColor(3, pixels.Color(0, 90, 0));
pixels.setPixelColor(4, pixels.Color(0, 90, 0));
pixels.setPixelColor(5, pixels.Color(100, 90, 0));
pixels.setPixelColor(6, pixels.Color(100, 90, 0));
pixels.setPixelColor(7, pixels.Color(0, 0, 0));
}
if (fled > -3 && fled < -0.09) {
pixels.setPixelColor(0, pixels.Color(0, 90, 0));
pixels.setPixelColor(1, pixels.Color(0, 90, 0));
pixels.setPixelColor(2, pixels.Color(0, 90, 0));
pixels.setPixelColor(3, pixels.Color(0, 90, 0));
pixels.setPixelColor(4, pixels.Color(0, 90, 0));
pixels.setPixelColor(5, pixels.Color(100, 90, 0));
pixels.setPixelColor(6, pixels.Color(100, 90, 0));
pixels.setPixelColor(7, pixels.Color(95, 0, 0));
}
pixels.show();
Serial.flush();
} else {
}
}
void setup() {
Serial.begin(9600);
pixels.begin();
pixels.setBrightness(64);
Serial.setTimeout(33.3);
}
void loop() {
buffer_fill();
delay(1);
}