#include <Adafruit_NeoPixel.h>
int led_pin = 7;
int led_n = 16;
Adafruit_NeoPixel ring(led_n, led_pin);
int plc_signal = A0;
int process_stage = 0;
void setup() {
// Setup code here, run only once
Serial.begin(9600);
ring.begin();
}
void loop() {
// Main code in a loop
process_stage = analogRead(plc_signal);
Serial.println(process_stage);
set_off(); // turning all leds offat start
if(process_stage >= 50)
{
set_one(0, ring.Color(255, 15, 0));
}
if(process_stage >= 100)
{
set_one(1, ring.Color(239, 31, 0));
}
if(process_stage >= 150)
{
set_one(2, ring.Color(223, 47, 0));
}
if(process_stage >= 200)
{
set_one(3, ring.Color(207, 63, 0));
}
if(process_stage >= 250)
{
set_one(4, ring.Color(191, 79, 0));
}
if(process_stage >= 300)
{
set_one(5, ring.Color(175, 95, 0));
}
if(process_stage >= 350)
{
set_one(6, ring.Color(159, 111, 0));
}
if(process_stage >= 400)
{
set_one(7, ring.Color(143, 127, 0));
}
if(process_stage >= 450)
{
set_one(8, ring.Color(127, 143, 0));
}
if(process_stage >= 500)
{
set_one(9, ring.Color(111, 159, 0));
}
if(process_stage >= 550)
{
set_one(10, ring.Color(95, 175, 0));
}
if(process_stage >= 600)
{
set_one(11, ring.Color(79, 191, 0));
}
if(process_stage >= 650)
{
set_one(12, ring.Color(63, 207, 0));
}
if(process_stage >= 700)
{
set_one(13, ring.Color(47, 223, 0));
}
if(process_stage >= 750)
{
set_one(14, ring.Color(31, 239, 0));
}
if(process_stage >= 800)
{
set_one(15, ring.Color(15, 255, 0));
}
ring.show();
}
void set_one(int index, uint32_t color)
{
ring.setPixelColor(index, color);
//ring.show();
}
void set_off()
{
for(int i = 0; i < led_n; i++)
{
ring.setPixelColor(i, ring.Color(0, 0, 0));
//ring.show();
//delay(100);
}
}
void set_color(uint32_t col)
{
for(int i = 0; i < led_n; i++)
{
ring.setPixelColor(i , col);
//ring.show();
//delay(100);
}
}