Tira led neopixel y sensor UV

Hola comunidad, busco ayuda, necesito encender una tira led Neopixel con la lectura que me entrega un sensor UV, creo ambas sentencias por separado y funciona cada una por su lado, pero cuando dejo ambas juntas nada funciona... agradecería su ayuda.

Les dejo el código.

#include <Adafruit_NeoPixel.h>

#define PIN 1   // input pin
#define NUMPIXELS      24 // Numero de pixeles de la tira

Adafruit_NeoPixel tira = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  tira.begin(); // Inicializamos el objeto "tira"
  Serial.begin(9600); //
}

void loop() {
  tira.clear(); // Apagamos todos los LEDs
  float sensorValue;
 
  sensorValue = analogRead(A0);  //Lee el sensor UV
  Serial.print("sensor reading = ");
  Serial.print(sensorValue);
  Serial.println("");
  delay(1000);
  
if(sensorValue>=1 && sensorValue<3){    //Condiciones segun lectura del sensor.
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Verde 1UV a 2UV
  tira.setPixelColor(0, 0, 255, 0); //Posicion, R, G, B
  tira.setPixelColor(1, 0, 255, 0);
  tira.setPixelColor(2, 0, 255, 0);
  tira.setPixelColor(3, 0, 255, 0);
  tira.setPixelColor(4, 0, 255, 0);
  tira.setPixelColor(5, 0, 255, 0);
  tira.setPixelColor(6, 0, 255, 0);
  tira.setPixelColor(7, 0, 255, 0);
  tira.setPixelColor(8, 0, 255, 0);
  tira.setPixelColor(9, 0, 255, 0);
  tira.setPixelColor(10, 0, 255, 0);
  tira.setPixelColor(11, 0, 255, 0);
  tira.setPixelColor(12, 0, 255, 0);
  tira.setPixelColor(13, 0, 255, 0);
  tira.setPixelColor(14, 0, 255, 0);
  tira.setPixelColor(15, 0, 255, 0);
  tira.setPixelColor(16, 0, 255, 0);
  tira.setPixelColor(17, 0, 255, 0);
  tira.setPixelColor(18, 0, 255, 0);
  tira.setPixelColor(19, 0, 255, 0);
  tira.setPixelColor(20, 0, 255, 0);
  tira.setPixelColor(21, 0, 255, 0);
  tira.setPixelColor(22, 0, 255, 0);
  tira.setPixelColor(23, 0, 255, 0);
  tira.setPixelColor(24, 0, 255, 0);
  tira.show();
}
else if(sensorValue>2 && sensorValue<6){
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Amarillo 3UV a 5UV
  tira.setPixelColor(0, 255, 215, 0); //Posicion, R, G, B
  tira.setPixelColor(1, 255, 215, 0);
  tira.setPixelColor(2, 255, 215, 0);
  tira.setPixelColor(3, 255, 215, 0);
  tira.setPixelColor(4, 255, 215, 0);
  tira.setPixelColor(5, 255, 215, 0);
  tira.setPixelColor(6, 255, 215, 0);
  tira.setPixelColor(7, 255, 215, 0);
  tira.setPixelColor(8, 255, 215, 0);
  tira.setPixelColor(9, 255, 215, 0);
  tira.setPixelColor(10, 255, 215, 0);
  tira.setPixelColor(11, 255, 215, 0);
  tira.setPixelColor(12, 255, 215, 0);
  tira.setPixelColor(13, 255, 215, 0);
  tira.setPixelColor(14, 255, 215, 0);
  tira.setPixelColor(15, 255, 215, 0);
  tira.setPixelColor(16, 255, 215, 0);
  tira.setPixelColor(17, 255, 215, 0);
  tira.setPixelColor(18, 255, 215, 0);
  tira.setPixelColor(19, 255, 215, 0);
  tira.setPixelColor(20, 255, 215, 0);
  tira.setPixelColor(21, 255, 215, 0);
  tira.setPixelColor(22, 255, 215, 0);
  tira.setPixelColor(23, 255, 215, 0);
  tira.setPixelColor(24, 255, 215, 0);
  tira.show();
}
else if(sensorValue>5 && sensorValue<8){
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Naranja 6UV a 7UV
  tira.setPixelColor(0, 255, 69, 0); //Posicion, R, G, B
  tira.setPixelColor(1, 255, 69, 0);
  tira.setPixelColor(2, 255, 69, 0);
  tira.setPixelColor(3, 255, 69, 0);
  tira.setPixelColor(4, 255, 69, 0);
  tira.setPixelColor(5, 255, 69, 0);
  tira.setPixelColor(6, 255, 69, 0);
  tira.setPixelColor(7, 255, 69, 0);
  tira.setPixelColor(8, 255, 69, 0);
  tira.setPixelColor(9, 255, 69, 0);
  tira.setPixelColor(10, 255, 69, 0);
  tira.setPixelColor(11, 255, 69, 0);
  tira.setPixelColor(12, 255, 69, 0);
  tira.setPixelColor(13, 255, 69, 0);
  tira.setPixelColor(14, 255, 69, 0);
  tira.setPixelColor(15, 255, 69, 0);
  tira.setPixelColor(16, 255, 69, 0);
  tira.setPixelColor(17, 255, 69, 0);
  tira.setPixelColor(18, 255, 69, 0);
  tira.setPixelColor(19, 255, 69, 0);
  tira.setPixelColor(20, 255, 69, 0);
  tira.setPixelColor(21, 255, 69, 0);
  tira.setPixelColor(22, 255, 69, 0);
  tira.setPixelColor(23, 255, 69, 0);
  tira.setPixelColor(24, 255, 69, 0);
  tira.show();
}
else if(sensorValue>7 && sensorValue<11){
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Rojo 8UV a 10UV
  tira.setPixelColor(0, 255, 0, 0); //Posicion, R, G, B
  tira.setPixelColor(1, 255, 0, 0);
  tira.setPixelColor(2, 255, 0, 0);
  tira.setPixelColor(3, 255, 0, 0);
  tira.setPixelColor(4, 255, 0, 0);
  tira.setPixelColor(5, 255, 0, 0);
  tira.setPixelColor(6, 255, 0, 0);
  tira.setPixelColor(7, 255, 0, 0);
  tira.setPixelColor(8, 255, 0, 0);
  tira.setPixelColor(9, 255, 0, 0);
  tira.setPixelColor(10, 255, 0, 0);
  tira.setPixelColor(11, 255, 0, 0);
  tira.setPixelColor(12, 255, 0, 0);
  tira.setPixelColor(13, 255, 0, 0);
  tira.setPixelColor(14, 255, 0, 0);
  tira.setPixelColor(15, 255, 0, 0);
  tira.setPixelColor(16, 255, 0, 0);
  tira.setPixelColor(17, 255, 0, 0);
  tira.setPixelColor(18, 255, 0, 0);
  tira.setPixelColor(19, 255, 0, 0);
  tira.setPixelColor(20, 255, 0, 0);
  tira.setPixelColor(21, 255, 0, 0);
  tira.setPixelColor(22, 255, 0, 0);
  tira.setPixelColor(23, 255, 0, 0);
  tira.setPixelColor(24, 255, 0, 0);
  tira.show();
}
else if(sensorValue>10){
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Morado +10UV
  tira.setPixelColor(0, 75, 0, 130); //Posicion, R, G, B
  tira.setPixelColor(1, 75, 0, 130);
  tira.setPixelColor(2, 75, 0, 130);
  tira.setPixelColor(3, 75, 0, 130);
  tira.setPixelColor(4, 75, 0, 130);
  tira.setPixelColor(5, 75, 0, 130);
  tira.setPixelColor(6, 75, 0, 130);
  tira.setPixelColor(7, 75, 0, 130);
  tira.setPixelColor(8, 75, 0, 130);
  tira.setPixelColor(9, 75, 0, 130);
  tira.setPixelColor(10, 75, 0, 130);
  tira.setPixelColor(11, 75, 0, 130);
  tira.setPixelColor(12, 75, 0, 130);
  tira.setPixelColor(13, 75, 0, 130);
  tira.setPixelColor(14, 75, 0, 130);
  tira.setPixelColor(15, 75, 0, 130);
  tira.setPixelColor(16, 75, 0, 130);
  tira.setPixelColor(17, 75, 0, 130);
  tira.setPixelColor(18, 75, 0, 130);
  tira.setPixelColor(19, 75, 0, 130);
  tira.setPixelColor(20, 75, 0, 130);
  tira.setPixelColor(21, 75, 0, 130);
  tira.setPixelColor(22, 75, 0, 130);
  tira.setPixelColor(23, 75, 0, 130);
  tira.setPixelColor(24, 75, 0, 130);
  tira.show();
}
else{
  tira.setBrightness(0); //Brillo global de la tira de 0 a 255 Apagado 0UV
  tira.setPixelColor(0, 0, 0, 0); //Posicion, R, G, B
  tira.setPixelColor(1, 0, 0, 0);
  tira.setPixelColor(2, 0, 0, 0);
  tira.setPixelColor(3, 0, 0, 0);
  tira.setPixelColor(4, 0, 0, 0);
  tira.setPixelColor(5, 0, 0, 0);
  tira.setPixelColor(6, 0, 0, 0);
  tira.setPixelColor(7, 0, 0, 0);
  tira.setPixelColor(8, 0, 0, 0);
  tira.setPixelColor(9, 0, 0, 0);
  tira.setPixelColor(10, 0, 0, 0);
  tira.setPixelColor(11, 0, 0, 0);
  tira.setPixelColor(12, 0, 0, 0);
  tira.setPixelColor(13, 0, 0, 0);
  tira.setPixelColor(14, 0, 0, 0);
  tira.setPixelColor(15, 0, 0, 0);
  tira.setPixelColor(16, 0, 0, 0);
  tira.setPixelColor(17, 0, 0, 0);
  tira.setPixelColor(18, 0, 0, 0);
  tira.setPixelColor(19, 0, 0, 0);
  tira.setPixelColor(20, 0, 0, 0);
  tira.setPixelColor(21, 0, 0, 0);
  tira.setPixelColor(22, 0, 0, 0);
  tira.setPixelColor(23, 0, 0, 0);
  tira.setPixelColor(24, 0, 0, 0);
  tira.show();
}
}

Primero, te recomiendo que edites tu consulta y utilices la herramienta </> del editor del foro. Para darle formato al código que has puesto y cumplir así con las normas del foro. Además de hacer más legible el código.

Para solucionar tu problema, prueba a eliminar la línea:

tira.clear(); // Apagamos todos los LEDs

O, si quieres, mueve esa línea a la función setup(), tal que así:

void setup() {
    tira.begin(); // Inicializamos el objeto "tira"
    tira.clear(); // Apagamos todos los LEDs
    Serial.begin(9600); //
}

Carga el programa en el Arduino, y espera un segundo para ver el resultado. Se deberían de actualizar los LED cada segundo.

El problema creo que lo tienes en que, para cada ejecución del loop(), esa línea apaga todos los LED. Y después se detiene la ejecución durante un segundo, debido a la llamada a delay(1000). Transcurrido ese segundo, se encienden los LED según el valor leído. Acto seguido termina el loop() y se vuelve a ejecutar de nuevo. Siendo el apagado de todos los LED lo primero que hace. Para luego volver a esperar un segundo antes de volver a encender los LED según el valor leído. Así que el tiempo que están los LED encendidos es apenas un instante para permanecer un segundo todos apagados. Seguramente nuestros ojos no son capaces de apreciar ese instante que están encendidos, a no ser que se esté totalmente a oscuras.

Muchas gracias por tu sugerencia, soy nuevo en el foro y anoche estaba un poco desesperado por una ayuda ya que no entiendo mucho de esto.

Realice lo que me dijiste, pero sigue actuando de la misma forma, dejo una imagen de referencia, la lectura del sensor está en 0.00 y en la tira se quedan encendidos algunos LED's (no pude adjuntar la otra captura del Monitor Serie, donde muestra que la lectura es 0.00)

Si dices que la lectura es 0.00 es que tal vez la lectura del sensor no sea correcta. ¿Has verificado las conexiones? Porque si la lectura es cero, entonces el programa está haciendo lo correcto, apagar todos los ledes.

Por cierto, tal como tienes el código actualmente, el tipo de la variable sensorValue debería de ser int.

Otro detalle es que si tienes 24 ledes, el primer led es el 0 y el último led es el 23. Con lo que te sobran todos los tira.setPixelColor(24, _, _, _);.

Por cierto, no necesitas poner el brillo a cero cuando apagas todos los ledes. Cuando están a cero los valores R, G y B, no hay brillo alguno.

Otra cosa, si siempre vas a poner el mismo color en todos los ledes, te podrías hacer una función que recorra todos los ledes y establezca los tres valores por igual en todos ellos. Y que después llame a tira.show() algo tal que así:

void establecerTodos(byte r, byte g, byte b) { 
  for (int i = 0; i < NUMPIXELS; i++) {
    tira.setPixelColor(i, r, g, b);
  }
  tira.show();
}

Hola.
Partiendo de que no tengo ese anillo de led y por lo tanto no puedo probar lo que voy a sugerir:
Estoy de acuerdo con @IgnoranteAbsoluto en que tal y como tienes la función tira.clear y el delay (1000), la tira se lleva mas tiempo apagada que encendida pero yo no lo solucionaría de esa forma.

En primer lugar estas usando el puerto 1 para comunicarte con la tira. OJO, los puertos cero y uno los usa el arduino para la comunicación tx-rx con el monitor serie del IDE. Seguro que eso te esta dando problemas, cambialo a cualquier otro por ejemplo el 6

He estado mirando codigos de ejemplo de Adafruit y haces cosas mal:

  • La setencia que tu usas "tira.setPixelColor(0, 255, 215, 0);" en los ejemplos se usa de
    esta otra forma " tira.setPixelColor(0, tira.Color(255, 215, 0)); ". Tendras que cambiarlas todas
  • En tu codigo haces un barrido desde el 0 al 24 y cuando acabas lo enciendes cuando
    ha llegado al 24 con " tira.show(); ". es decir con el valor 24 ¿y que ha pasado con los
    anterios del 0 al 23?, pues que se han perdido. Tendras que poner " tira.show(); " cada vez que cambies el valor del led ademas de un pequeño delay para que se note. (este es el delay al que mereferia antes, quizas se nesesite otro al final del loop).

Con todo lo dicho y metiendo todas esa cantidad de sentencias dentro de unos for me queda una cosa asi.

// IMPORTANT: To reduce NeoPixel burnout risk, add 1000 uF capacitor across
// pixel power leads, add 300 - 500 Ohm resistor on first pixel's data input
// and minimize distance between Arduino and first pixel.  Avoid connecting
// on a live circuit...if you must, connect GND first.

#include <Adafruit_NeoPixel.h>

#define PIN 6   // input pin
#define NUMPIXELS      24 // Numero de pixeles de la tira

Adafruit_NeoPixel tira = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int ret=10;

void setup() {
  tira.begin(); // Inicializamos el objeto "tira"
  Serial.begin(9600); //
}

void loop() {
  tira.clear(); // Apagamos todos los LEDs
  float sensorValue;

  sensorValue = analogRead(A0);  //Lee el sensor UV
  Serial.print("sensor reading = ");
  Serial.print(sensorValue);
  Serial.println("");


  if (sensorValue >= 1 && sensorValue < 3) { //Condiciones segun lectura del sensor.
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Verde 1UV a 2UV
    for (int x = 0; x <= 24; x++) {
      tira.setPixelColor(x, tira.Color(0, 255, 0)); //Posicion, R, G, B
      tira.show();
      delay (ret);
    }

  }
  else if (sensorValue > 2 && sensorValue < 6) {
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Amarillo 3UV a 5UV
    for (int x = 0; x <= 24; x++) {
      tira.setPixelColor(x, tira.Color(255, 255, 0)); //Posicion, R, G, B
      tira.show();
      delay (ret);
    }    
  }
  else if (sensorValue > 5 && sensorValue < 8) {
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Naranja 6UV a 7UV
    for (int x = 0; x <= 24; x++) {
      tira.setPixelColor(x, tira.Color(255, 69, 0)); //Posicion, R, G, B
      tira.show();
      delay (ret);
    }
  }
  else if (sensorValue > 7 && sensorValue < 11) {
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Rojo 8UV a 10UV
    for (int x = 0; x <= 24; x++) {
      tira.setPixelColor(x, tira.Color(255, 0, 0)); //Posicion, R, G, B
      tira.show();
      delay (ret);
    }
  }
  else if (sensorValue > 10) {
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Morado +10UV
    for (int x = 0; x <= 24; x++) {
      tira.setPixelColor(x, tira.Color(75, 0, 130)); //Posicion, R, G, B
      tira.show();
      delay (ret);
    }
  }
  else {
    tira.setBrightness(0); //Brillo global de la tira de 0 a 255 Apagado 0UV
    for (int x = 0; x <= 24; x++) {
      tira.setPixelColor(x, tira.Color(0, 0, 0)); //Posicion, R, G, B
      tira.show();
      delay (ret);
    }
  }
  delay(500);
}

Pruebalo a ver si va. ojo a las primeras lineas comentadas en ingles que veo por tu foto que no lo has hecho.
Saludos.

Yo veo otro inconveniente además del pin1 que @gonpezzi ya te ha indicado. Desde ya no uses pin 1.
El otro problema es que un ADC entrega valores entre 0 y 1023 y veo en tu codigo acciones para valores de 0 a 10? y que pasa con los 1013 que quedan. Si el sensor tiene ruido eso que muestras debe ser muy dificil de ver. Ahi tienes un problema.
Nos puedes hablar del sensor UV que estas usando? Un link por favor para ver que salida en volts tiene.

Ayer andaba un poco espeso y se me olvido definir los pines, el setup deveria quedar asi:

void setup() {
  pinMode (6, OUTPUT);
  pinMode (A3, INPUT);
  tira.begin(); // Inicializamos el objeto "tira"
  Serial.begin(9600); //
}

Saludos.

http://knightrobotics.cl/categoria/sensores/producto/GUVA-S12SD

Este es el sensor que tengo.

@gonpezzi Me sirvió cambiar los puertos, pero aun no logro hacer que funcione, la alimentación del anillo led la estoy haciendo con esto, he probado las sugerencias que me hacen pero no me funciona, nose que estaré haciendo mal.

#include <Adafruit_NeoPixel.h>

#define PIN 6   // input pin
#define NUMPIXELS      24 // Numero de pixeles de la tira

Adafruit_NeoPixel tira = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  pinMode(6, OUTPUT);
  pinMode (A3, INPUT);
  tira.begin(); // Inicializamos el objeto "tira"
  tira.clear(); // Apagamos todos los LEDs
  Serial.begin(9600); //
}

void loop() {
  float sensorValue;
  int sensorVoltage;
 
  sensorValue = analogRead(A3);
  sensorVoltage = sensorValue*5.0;
  Serial.println("");
  Serial.print("sensor reading = ");
  Serial.print(sensorValue);
  Serial.println("");
  Serial.print("sensor voltage = ");
  Serial.print(sensorVoltage);
  Serial.println(" mV");
  delay(2000);

if(sensorVoltage<=50){    //Condiciones segun lectura del sensor.
  Serial.print("Indice UV 0");
  tira.setPixelColor(0, tira.Color(0, 0, 0)); //Posicion, R, G, B  Apagado 0UV
  tira.setPixelColor(1, tira.Color(0, 0, 0));
  tira.setPixelColor(2, tira.Color(0, 0, 0));
  tira.setPixelColor(3, tira.Color(0, 0, 0));
  tira.setPixelColor(4, tira.Color(0, 0, 0));
  tira.setPixelColor(5, tira.Color(0, 0, 0));
  tira.setPixelColor(6, tira.Color(0, 0, 0));
  tira.setPixelColor(7, tira.Color(0, 0, 0));
  tira.setPixelColor(8, tira.Color(0, 0, 0));
  tira.setPixelColor(9, tira.Color(0, 0, 0));
  tira.setPixelColor(10, tira.Color(0, 0, 0));
  tira.setPixelColor(11, tira.Color(0, 0, 0));
  tira.setPixelColor(12, tira.Color(0, 0, 0));
  tira.setPixelColor(13, tira.Color(0, 0, 0));
  tira.setPixelColor(14, tira.Color(0, 0, 0));
  tira.setPixelColor(15, tira.Color(0, 0, 0));
  tira.setPixelColor(16, tira.Color(0, 0, 0));
  tira.setPixelColor(17, tira.Color(0, 0, 0));
  tira.setPixelColor(18, tira.Color(0, 0, 0));
  tira.setPixelColor(19, tira.Color(0, 0, 0));
  tira.setPixelColor(20, tira.Color(0, 0, 0));
  tira.setPixelColor(21, tira.Color(0, 0, 0));
  tira.setPixelColor(22, tira.Color(0, 0, 0));
  tira.setPixelColor(23, tira.Color(0, 0, 0));
  tira.show();
}
if(sensorVoltage>=51 && sensorVoltage<=227){    //Condiciones segun lectura del sensor.
  Serial.print("Indice UV 1");
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Verde 1UV
  tira.setPixelColor(0, tira.Color(0, 255, 0)); //Posicion, R, G, B
  tira.setPixelColor(1, tira.Color(0, 255, 0));
  tira.setPixelColor(2, tira.Color(0, 255, 0));
  tira.setPixelColor(3, tira.Color(0, 255, 0));
  tira.setPixelColor(4, tira.Color(0, 255, 0));
  tira.setPixelColor(5, tira.Color(0, 255, 0));
  tira.setPixelColor(6, tira.Color(0, 255, 0));
  tira.setPixelColor(7, tira.Color(0, 255, 0));
  tira.setPixelColor(8, tira.Color(0, 255, 0));
  tira.setPixelColor(9, tira.Color(0, 255, 0));
  tira.setPixelColor(10, tira.Color(0, 255, 0));
  tira.setPixelColor(11, tira.Color(0, 255, 0));
  tira.setPixelColor(12, tira.Color(0, 255, 0));
  tira.setPixelColor(13, tira.Color(0, 255, 0));
  tira.setPixelColor(14, tira.Color(0, 255, 0));
  tira.setPixelColor(15, tira.Color(0, 255, 0));
  tira.setPixelColor(16, tira.Color(0, 255, 0));
  tira.setPixelColor(17, tira.Color(0, 255, 0));
  tira.setPixelColor(18, tira.Color(0, 255, 0));
  tira.setPixelColor(19, tira.Color(0, 255, 0));
  tira.setPixelColor(20, tira.Color(0, 255, 0));
  tira.setPixelColor(21, tira.Color(0, 255, 0));
  tira.setPixelColor(22, tira.Color(0, 255, 0));
  tira.setPixelColor(23, tira.Color(0, 255, 0));
  tira.show();
}
if(sensorVoltage>=228 && sensorVoltage<=318){    //Condiciones segun lectura del sensor.
  Serial.print("Indice UV 2");
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Verde 2UV
  tira.setPixelColor(0, tira.Color(0, 255, 0)); //Posicion, R, G, B
  tira.setPixelColor(1, tira.Color(0, 255, 0));
  tira.setPixelColor(2, tira.Color(0, 255, 0));
  tira.setPixelColor(3, tira.Color(0, 255, 0));
  tira.setPixelColor(4, tira.Color(0, 255, 0));
  tira.setPixelColor(5, tira.Color(0, 255, 0));
  tira.setPixelColor(6, tira.Color(0, 255, 0));
  tira.setPixelColor(7, tira.Color(0, 255, 0));
  tira.setPixelColor(8, tira.Color(0, 255, 0));
  tira.setPixelColor(9, tira.Color(0, 255, 0));
  tira.setPixelColor(10, tira.Color(0, 255, 0));
  tira.setPixelColor(11, tira.Color(0, 255, 0));
  tira.setPixelColor(12, tira.Color(0, 255, 0));
  tira.setPixelColor(13, tira.Color(0, 255, 0));
  tira.setPixelColor(14, tira.Color(0, 255, 0));
  tira.setPixelColor(15, tira.Color(0, 255, 0));
  tira.setPixelColor(16, tira.Color(0, 255, 0));
  tira.setPixelColor(17, tira.Color(0, 255, 0));
  tira.setPixelColor(18, tira.Color(0, 255, 0));
  tira.setPixelColor(19, tira.Color(0, 255, 0));
  tira.setPixelColor(20, tira.Color(0, 255, 0));
  tira.setPixelColor(21, tira.Color(0, 255, 0));
  tira.setPixelColor(22, tira.Color(0, 255, 0));
  tira.setPixelColor(23, tira.Color(0, 255, 0));
  tira.show();
}
if(sensorVoltage>=319 && sensorVoltage<=408){
  Serial.print("Indice UV 3");
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Amarillo 3UV
  tira.setPixelColor(0, tira.Color(255, 215, 0)); //Posicion, R, G, B
  tira.setPixelColor(1, tira.Color(255, 215, 0));
  tira.setPixelColor(2, tira.Color(255, 215, 0));
  tira.setPixelColor(3, tira.Color(255, 215, 0));
  tira.setPixelColor(4, tira.Color(255, 215, 0));
  tira.setPixelColor(5, tira.Color(255, 215, 0));
  tira.setPixelColor(6, tira.Color(255, 215, 0));
  tira.setPixelColor(7, tira.Color(255, 215, 0));
  tira.setPixelColor(8, tira.Color(255, 215, 0));
  tira.setPixelColor(9, tira.Color(255, 215, 0));
  tira.setPixelColor(10, tira.Color(255, 215, 0));
  tira.setPixelColor(11, tira.Color(255, 215, 0));
  tira.setPixelColor(12, tira.Color(255, 215, 0));
  tira.setPixelColor(13, tira.Color(255, 215, 0));
  tira.setPixelColor(14, tira.Color(255, 215, 0));
  tira.setPixelColor(15, tira.Color(255, 215, 0));
  tira.setPixelColor(16, tira.Color(255, 215, 0));
  tira.setPixelColor(17, tira.Color(255, 215, 0));
  tira.setPixelColor(18, tira.Color(255, 215, 0));
  tira.setPixelColor(19, tira.Color(255, 215, 0));
  tira.setPixelColor(20, tira.Color(255, 215, 0));
  tira.setPixelColor(21, tira.Color(255, 215, 0));
  tira.setPixelColor(22, tira.Color(255, 215, 0));
  tira.setPixelColor(23, tira.Color(255, 215, 0));
  tira.show();
}
if(sensorVoltage>=409 && sensorVoltage<=503){
  Serial.print("Indice UV 4");
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Amarillo 4UV
  tira.setPixelColor(0, tira.Color(255, 215, 0)); //Posicion, R, G, B
  tira.setPixelColor(1, tira.Color(255, 215, 0));
  tira.setPixelColor(2, tira.Color(255, 215, 0));
  tira.setPixelColor(3, tira.Color(255, 215, 0));
  tira.setPixelColor(4, tira.Color(255, 215, 0));
  tira.setPixelColor(5, tira.Color(255, 215, 0));
  tira.setPixelColor(6, tira.Color(255, 215, 0));
  tira.setPixelColor(7, tira.Color(255, 215, 0));
  tira.setPixelColor(8, tira.Color(255, 215, 0));
  tira.setPixelColor(9, tira.Color(255, 215, 0));
  tira.setPixelColor(10, tira.Color(255, 215, 0));
  tira.setPixelColor(11, tira.Color(255, 215, 0));
  tira.setPixelColor(12, tira.Color(255, 215, 0));
  tira.setPixelColor(13, tira.Color(255, 215, 0));
  tira.setPixelColor(14, tira.Color(255, 215, 0));
  tira.setPixelColor(15, tira.Color(255, 215, 0));
  tira.setPixelColor(16, tira.Color(255, 215, 0));
  tira.setPixelColor(17, tira.Color(255, 215, 0));
  tira.setPixelColor(18, tira.Color(255, 215, 0));
  tira.setPixelColor(19, tira.Color(255, 215, 0));
  tira.setPixelColor(20, tira.Color(255, 215, 0));
  tira.setPixelColor(21, tira.Color(255, 215, 0));
  tira.setPixelColor(22, tira.Color(255, 215, 0));
  tira.setPixelColor(23, tira.Color(255, 215, 0));
  tira.show();
}
if(sensorVoltage>=504 && sensorVoltage<=606){
  Serial.print("Indice UV 5");
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Amarillo 5UV
  tira.setPixelColor(0, tira.Color(255, 215, 0)); //Posicion, R, G, B
  tira.setPixelColor(1, tira.Color(255, 215, 0));
  tira.setPixelColor(2, tira.Color(255, 215, 0));
  tira.setPixelColor(3, tira.Color(255, 215, 0));
  tira.setPixelColor(4, tira.Color(255, 215, 0));
  tira.setPixelColor(5, tira.Color(255, 215, 0));
  tira.setPixelColor(6, tira.Color(255, 215, 0));
  tira.setPixelColor(7, tira.Color(255, 215, 0));
  tira.setPixelColor(8, tira.Color(255, 215, 0));
  tira.setPixelColor(9, tira.Color(255, 215, 0));
  tira.setPixelColor(10, tira.Color(255, 215, 0));
  tira.setPixelColor(11, tira.Color(255, 215, 0));
  tira.setPixelColor(12, tira.Color(255, 215, 0));
  tira.setPixelColor(13, tira.Color(255, 215, 0));
  tira.setPixelColor(14, tira.Color(255, 215, 0));
  tira.setPixelColor(15, tira.Color(255, 215, 0));
  tira.setPixelColor(16, tira.Color(255, 215, 0));
  tira.setPixelColor(17, tira.Color(255, 215, 0));
  tira.setPixelColor(18, tira.Color(255, 215, 0));
  tira.setPixelColor(19, tira.Color(255, 215, 0));
  tira.setPixelColor(20, tira.Color(255, 215, 0));
  tira.setPixelColor(21, tira.Color(255, 215, 0));
  tira.setPixelColor(22, tira.Color(255, 215, 0));
  tira.setPixelColor(23, tira.Color(255, 215, 0));
  tira.show();
}
if(sensorVoltage>=607 && sensorVoltage<=696){
  Serial.print("Indice UV 6");
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Naranja 6UV
  tira.setPixelColor(0, tira.Color(255, 69, 0)); //Posicion, R, G, B
  tira.setPixelColor(1, tira.Color(255, 69, 0));
  tira.setPixelColor(2, tira.Color(255, 69, 0));
  tira.setPixelColor(3, tira.Color(255, 69, 0));
  tira.setPixelColor(4, tira.Color(255, 69, 0));
  tira.setPixelColor(5, tira.Color(255, 69, 0));
  tira.setPixelColor(6, tira.Color(255, 69, 0));
  tira.setPixelColor(7, tira.Color(255, 69, 0));
  tira.setPixelColor(8, tira.Color(255, 69, 0));
  tira.setPixelColor(9, tira.Color(255, 69, 0));
  tira.setPixelColor(10, tira.Color(255, 69, 0));
  tira.setPixelColor(11, tira.Color(255, 69, 0));
  tira.setPixelColor(12, tira.Color(255, 69, 0));
  tira.setPixelColor(13, tira.Color(255, 69, 0));
  tira.setPixelColor(14, tira.Color(255, 69, 0));
  tira.setPixelColor(15, tira.Color(255, 69, 0));
  tira.setPixelColor(16, tira.Color(255, 69, 0));
  tira.setPixelColor(17, tira.Color(255, 69, 0));
  tira.setPixelColor(18, tira.Color(255, 69, 0));
  tira.setPixelColor(19, tira.Color(255, 69, 0));
  tira.setPixelColor(20, tira.Color(255, 69, 0));
  tira.setPixelColor(21, tira.Color(255, 69, 0));
  tira.setPixelColor(22, tira.Color(255, 69, 0));
  tira.setPixelColor(23, tira.Color(255, 69, 0));
  tira.show();
}
if(sensorVoltage>=697 && sensorVoltage<=795){
  Serial.print("Indice UV 7");
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Naranja 7UV
  tira.setPixelColor(0, tira.Color(255, 69, 0)); //Posicion, R, G, B
  tira.setPixelColor(1, tira.Color(255, 69, 0));
  tira.setPixelColor(2, tira.Color(255, 69, 0));
  tira.setPixelColor(3, tira.Color(255, 69, 0));
  tira.setPixelColor(4, tira.Color(255, 69, 0));
  tira.setPixelColor(5, tira.Color(255, 69, 0));
  tira.setPixelColor(6, tira.Color(255, 69, 0));
  tira.setPixelColor(7, tira.Color(255, 69, 0));
  tira.setPixelColor(8, tira.Color(255, 69, 0));
  tira.setPixelColor(9, tira.Color(255, 69, 0));
  tira.setPixelColor(10, tira.Color(255, 69, 0));
  tira.setPixelColor(11, tira.Color(255, 69, 0));
  tira.setPixelColor(12, tira.Color(255, 69, 0));
  tira.setPixelColor(13, tira.Color(255, 69, 0));
  tira.setPixelColor(14, tira.Color(255, 69, 0));
  tira.setPixelColor(15, tira.Color(255, 69, 0));
  tira.setPixelColor(16, tira.Color(255, 69, 0));
  tira.setPixelColor(17, tira.Color(255, 69, 0));
  tira.setPixelColor(18, tira.Color(255, 69, 0));
  tira.setPixelColor(19, tira.Color(255, 69, 0));
  tira.setPixelColor(20, tira.Color(255, 69, 0));
  tira.setPixelColor(21, tira.Color(255, 69, 0));
  tira.setPixelColor(22, tira.Color(255, 69, 0));
  tira.setPixelColor(23, tira.Color(255, 69, 0));
  tira.show();
}
if(sensorVoltage>=796 && sensorVoltage<=881){
  Serial.print("Indice UV 8");
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Rojo 8UV
  tira.setPixelColor(0, tira.Color(255, 0, 0)); //Posicion, R, G, B
  tira.setPixelColor(1, tira.Color(255, 0, 0));
  tira.setPixelColor(2, tira.Color(255, 0, 0));
  tira.setPixelColor(3, tira.Color(255, 0, 0));
  tira.setPixelColor(4, tira.Color(255, 0, 0));
  tira.setPixelColor(5, tira.Color(255, 0, 0));
  tira.setPixelColor(6, tira.Color(255, 0, 0));
  tira.setPixelColor(7, tira.Color(255, 0, 0));
  tira.setPixelColor(8, tira.Color(255, 0, 0));
  tira.setPixelColor(9, tira.Color(255, 0, 0));
  tira.setPixelColor(10, tira.Color(255, 0, 0));
  tira.setPixelColor(11, tira.Color(255, 0, 0));
  tira.setPixelColor(12, tira.Color(255, 0, 0));
  tira.setPixelColor(13, tira.Color(255, 0, 0));
  tira.setPixelColor(14, tira.Color(255, 0, 0));
  tira.setPixelColor(15, tira.Color(255, 0, 0));
  tira.setPixelColor(16, tira.Color(255, 0, 0));
  tira.setPixelColor(17, tira.Color(255, 0, 0));
  tira.setPixelColor(18, tira.Color(255, 0, 0));
  tira.setPixelColor(19, tira.Color(255, 0, 0));
  tira.setPixelColor(20, tira.Color(255, 0, 0));
  tira.setPixelColor(21, tira.Color(255, 0, 0));
  tira.setPixelColor(22, tira.Color(255, 0, 0));
  tira.setPixelColor(23, tira.Color(255, 0, 0));
  tira.show();
}
if(sensorVoltage>=882 && sensorVoltage<=976){
  Serial.print("Indice UV 9");
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Rojo 9UV
  tira.setPixelColor(0, tira.Color(255, 0, 0)); //Posicion, R, G, B
  tira.setPixelColor(1, tira.Color(255, 0, 0));
  tira.setPixelColor(2, tira.Color(255, 0, 0));
  tira.setPixelColor(3, tira.Color(255, 0, 0));
  tira.setPixelColor(4, tira.Color(255, 0, 0));
  tira.setPixelColor(5, tira.Color(255, 0, 0));
  tira.setPixelColor(6, tira.Color(255, 0, 0));
  tira.setPixelColor(7, tira.Color(255, 0, 0));
  tira.setPixelColor(8, tira.Color(255, 0, 0));
  tira.setPixelColor(9, tira.Color(255, 0, 0));
  tira.setPixelColor(10, tira.Color(255, 0, 0));
  tira.setPixelColor(11, tira.Color(255, 0, 0));
  tira.setPixelColor(12, tira.Color(255, 0, 0));
  tira.setPixelColor(13, tira.Color(255, 0, 0));
  tira.setPixelColor(14, tira.Color(255, 0, 0));
  tira.setPixelColor(15, tira.Color(255, 0, 0));
  tira.setPixelColor(16, tira.Color(255, 0, 0));
  tira.setPixelColor(17, tira.Color(255, 0, 0));
  tira.setPixelColor(18, tira.Color(255, 0, 0));
  tira.setPixelColor(19, tira.Color(255, 0, 0));
  tira.setPixelColor(20, tira.Color(255, 0, 0));
  tira.setPixelColor(21, tira.Color(255, 0, 0));
  tira.setPixelColor(22, tira.Color(255, 0, 0));
  tira.setPixelColor(23, tira.Color(255, 0, 0));
  tira.show();
}
if(sensorVoltage>=977 && sensorVoltage<=1079){
  Serial.print("Indice UV 10");
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Rojo 10UV
  tira.setPixelColor(0, tira.Color(255, 0, 0)); //Posicion, R, G, B
  tira.setPixelColor(1, tira.Color(255, 0, 0));
  tira.setPixelColor(2, tira.Color(255, 0, 0));
  tira.setPixelColor(3, tira.Color(255, 0, 0));
  tira.setPixelColor(4, tira.Color(255, 0, 0));
  tira.setPixelColor(5, tira.Color(255, 0, 0));
  tira.setPixelColor(6, tira.Color(255, 0, 0));
  tira.setPixelColor(7, tira.Color(255, 0, 0));
  tira.setPixelColor(8, tira.Color(255, 0, 0));
  tira.setPixelColor(9, tira.Color(255, 0, 0));
  tira.setPixelColor(10, tira.Color(255, 0, 0));
  tira.setPixelColor(11, tira.Color(255, 0, 0));
  tira.setPixelColor(12, tira.Color(255, 0, 0));
  tira.setPixelColor(13, tira.Color(255, 0, 0));
  tira.setPixelColor(14, tira.Color(255, 0, 0));
  tira.setPixelColor(15, tira.Color(255, 0, 0));
  tira.setPixelColor(16, tira.Color(255, 0, 0));
  tira.setPixelColor(17, tira.Color(255, 0, 0));
  tira.setPixelColor(18, tira.Color(255, 0, 0));
  tira.setPixelColor(19, tira.Color(255, 0, 0));
  tira.setPixelColor(20, tira.Color(255, 0, 0));
  tira.setPixelColor(21, tira.Color(255, 0, 0));
  tira.setPixelColor(22, tira.Color(255, 0, 0));
  tira.setPixelColor(23, tira.Color(255, 0, 0));
  tira.show();
}
if(sensorVoltage>=1080){
  Serial.print("Indice UV 11+");
  tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Morado +10UV
  tira.setPixelColor(0, tira.Color(75, 0, 130)); //Posicion, R, G, B
  tira.setPixelColor(1, tira.Color(75, 0, 130));
  tira.setPixelColor(2, tira.Color(75, 0, 130));
  tira.setPixelColor(3, tira.Color(75, 0, 130));
  tira.setPixelColor(4, tira.Color(75, 0, 130));
  tira.setPixelColor(5, tira.Color(75, 0, 130));
  tira.setPixelColor(6, tira.Color(75, 0, 130));
  tira.setPixelColor(7, tira.Color(75, 0, 130));
  tira.setPixelColor(8, tira.Color(75, 0, 130));
  tira.setPixelColor(9, tira.Color(75, 0, 130));
  tira.setPixelColor(10, tira.Color(75, 0, 130));
  tira.setPixelColor(11, tira.Color(75, 0, 130));
  tira.setPixelColor(12, tira.Color(75, 0, 130));
  tira.setPixelColor(13, tira.Color(75, 0, 130));
  tira.setPixelColor(14, tira.Color(75, 0, 130));
  tira.setPixelColor(15, tira.Color(75, 0, 130));
  tira.setPixelColor(16, tira.Color(75, 0, 130));
  tira.setPixelColor(17, tira.Color(75, 0, 130));
  tira.setPixelColor(18, tira.Color(75, 0, 130));
  tira.setPixelColor(19, tira.Color(75, 0, 130));
  tira.setPixelColor(20, tira.Color(75, 0, 130));
  tira.setPixelColor(21, tira.Color(75, 0, 130));
  tira.setPixelColor(22, tira.Color(75, 0, 130));
  tira.setPixelColor(23, tira.Color(75, 0, 130));
  tira.show();
}
}

Esto me funcionó, pero no estoy 100% seguro porque en ocasiones no se ilumina y varían demasiado las mediciones del sensor, pero cuando lo tengo conectado solo, es super estable la medición.

Hola, pero ¿hace algo distinto?, ¿se queda igual?.. en fin.. unas sugerencias.

  • ¿Has unido todas las GND?. haz de unirlas.
  • Veo que has hecho caso a @Surbyte con los valores del ADC de 0 a1024´, pero ahora al saber cual es el sensor veo que en su salida tendras de 0 a 1V , esto quiere decir que tus mediciones del puerto A3 iran de 0 a 205. cambia los if else a este nuevo rango.
  • Ya te dije antes que no tengo el anillo y no puedo hacer pruebas, solo suponer comparando con otros codigos y puedo estar herrando. Tu que lo tienes, carga algunos ejemplos que te vienen con la libreria y ves como van. <estos los puedes cargar con el IDE en Archivo- Ejemplos--Adafruit Neopixel.Mira con especial atencion el ejemplo simple es lo que quieres hacer, (pero sin los If para los valores del sensor).

Lo siento pero me castañean los dientes viendo tantas sentencias iguales, ¿por que no usa bucules for mira te pongo a continuacion tu ultimo código con bucles for, comparalo con el anterior mio y con el ejemplo "simple" ¿donde colocamos la sentencia tira.show ?

#include <Adafruit_NeoPixel.h>

#define PIN 6   // input pin
#define NUMPIXELS      24 // Numero de pixeles de la tira

Adafruit_NeoPixel tira = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
  pinMode(6, OUTPUT);
  pinMode (A3, INPUT);
  tira.begin(); // Inicializamos el objeto "tira"
  tira.clear(); // Apagamos todos los LEDs
  Serial.begin(9600); //
}

void loop() {
  float sensorValue;
  int sensorVoltage;

  sensorValue = analogRead(A3);
  sensorVoltage = sensorValue * 5.0;
  Serial.println("");
  Serial.print("sensor reading = ");
  Serial.print(sensorValue);
  Serial.println("");
  Serial.print("sensor voltage = ");
  Serial.print(sensorVoltage);
  Serial.println(" mV");
  delay(2000);

  if (sensorVoltage <= 50) { //Condiciones segun lectura del sensor.
    Serial.print("Indice UV 0");
    for (int x = 0; x <= 23; x++) {
      tira.setPixelColor(x, tira.Color(0, 0, 0)); //Posicion, R, G, B  Apagado 0UV
    }
    tira.show();
  }
  if (sensorVoltage >= 51 && sensorVoltage <= 227) { //Condiciones segun lectura del sensor.
    Serial.print("Indice UV 1");
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Verde 1UV
    for (int x = 0; x <= 23; x++) {
    tira.setPixelColor(x, tira.Color(0, 255, 0)); //Posicion, R, G, B
    }
    tira.show();
  }
  if (sensorVoltage >= 228 && sensorVoltage <= 318) { //Condiciones segun lectura del sensor.
    Serial.print("Indice UV 2");
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Verde 2UV
    for (int x = 0; x <= 23; x++) {
    tira.setPixelColor(x, tira.Color(0, 255, 0)); //Posicion, R, G, B
    }    
    tira.show();
  }
  if (sensorVoltage >= 319 && sensorVoltage <= 408) {
    Serial.print("Indice UV 3");
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Amarillo 3UV
    for (int x = 0; x <= 23; x++) {
    tira.setPixelColor(x, tira.Color(255, 215, 0)); //Posicion, R, G, B
    }    
    tira.show();
  }
  if (sensorVoltage >= 409 && sensorVoltage <= 503) {
    Serial.print("Indice UV 4");
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Amarillo 4UV
    for (int x = 0; x <= 23; x++) {
    tira.setPixelColor(x, tira.Color(255, 215, 0)); //Posicion, R, G, B
    }    
    tira.show();
  }
  if (sensorVoltage >= 504 && sensorVoltage <= 606) {
    Serial.print("Indice UV 5");
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Amarillo 5UV    
    for (int x = 0; x <= 23; x++) {
    tira.setPixelColor(x, tira.Color(255, 215, 0)); //Posicion, R, G, B
    }    
    tira.show();
  }
  if (sensorVoltage >= 607 && sensorVoltage <= 696) {
    Serial.print("Indice UV 6");
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Naranja 6UV
    for (int x = 0; x <= 23; x++) {
    tira.setPixelColor(x, tira.Color(255, 69, 0)); //Posicion, R, G, B
    }    
    tira.show();
  }
  if (sensorVoltage >= 697 && sensorVoltage <= 795) {
    Serial.print("Indice UV 7");
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Naranja 7UV
    for (int x = 0; x <= 23; x++) {
    tira.setPixelColor(x, tira.Color(255, 69, 0)); //Posicion, R, G, B
    }    
    tira.show();
  }
  if (sensorVoltage >= 796 && sensorVoltage <= 881) {
    Serial.print("Indice UV 8");
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Rojo 8UV
    for (int x = 0; x <= 23; x++) {
    tira.setPixelColor(x, tira.Color(255, 0, 0)); //Posicion, R, G, B
    }    
    tira.show();
  }
  if (sensorVoltage >= 882 && sensorVoltage <= 976) {
    Serial.print("Indice UV 9");
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Rojo 9UV
    for (int x = 0; x <= 23; x++) {
    tira.setPixelColor(0, tira.Color(255, 0, 0)); //Posicion, R, G, B
    }    
    tira.show();
  }
  if (sensorVoltage >= 977 && sensorVoltage <= 1079) {
    Serial.print("Indice UV 10");
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Rojo 10UV
    for (int x = 0; x <= 23; x++) {
    tira.setPixelColor(x, tira.Color(255, 0, 0)); //Posicion, R, G, B
    }
    
    tira.show();
  }
  if (sensorVoltage >= 1080) {
    Serial.print("Indice UV 11+");
    tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Morado +10UV
    for (int x = 0; x <= 23; x++) {
    tira.setPixelColor(x, tira.Color(75, 0, 130)); //Posicion, R, G, B
    }    
    tira.show();
  }
}

Saludos.

Si @gonpezzi , a mí también me hace ruido la forma en que lo tengo hecho, es que necesito que todas las luces se enciendan al mismo tiempo y se mantengan ahí encendidas. Mañana voy a testear el código que me dejaste, muchas gracias por la ayuda de todos, cómo les dije entiendo súper poco sobre este tema de programar Arduino.

Ahh por cierto los números que puse hacen referencia a unos rangos que encontré navegando en Internet, según algunas páginas los valores con los que trabaja el sensor son los de la imagen a continuación:

Efectivamente según esa tabla me quede un poco corto en mis calculos. Me parece muy fiable esa tabla la lectura del puerto A3 te va a dar valores entre 0 y 240.

Si el sensor envía 1V como máximo te conviene usar la referencia interna de 1.1V en lugar de los 5V por defecto.

Agrega en setup()

analogReference(INTERNAL);

Seguramente con 1V no llegues a obtener una lectura máxima de 1023 pero va a ser superior a 900 (teóricamente alrededor de 930).

Si los valores son como los de la tabla que adjuntó @gonpezzi puede ocurrir que no puedas diferenciar los niveles 10 y 11 porque 1.170 superan la tensión de referencia y te va a llegar a 1023 antes de ese valor, no sé si eso será un problema.
Me genera dudas el tema de que el sensor supere la tensión de referencia aunque 70 mV por encima no creo que dañen el pin (en el supuesto que llegues a medir valores tan extremos).

Otra opción sería usar una referencia externa algo por encima de 1.1V, puedes hacerlo con un simple divisor de tensión o algo más "profesional" con integrados dedicados como los MAX6070 y MAX6071 que entregan varias tensiones según la versión (por ej. MAX6070_AUT12 o MAX6071_AUT12 entregan una tensión de referencia de 1.25V)
En este caso tendrías que usar la instrucción

analogReference(EXTERNAL);

Saludos

La próxima vez recuerda aportar toda la información.
Te das cuenta porqué te pedí que pusieras el link del sensor, no hay sensor que entregue tensiones como las que tenias. Luego resulta que entraga un maximo de casi 1.1V asi que la sugerencia de @gatul es correcta aunque ahi se ven unos 70 mV extras... no creo que generen problemas.
Siempre aporta la información necesaria para que podamos dar la mejor respuesta basada en información concisa.
Bueno yo he hecho un cambio pero no me gusta ese delay de 2 segundos que tienes luego de tomar el dato del sensor. Asi que retíralo por favor.
En su reemplazo voy a actualizar la tira cada 500 mseg y si necesitas mejor actualización lo subes.

#include <Adafruit_NeoPixel.h>

#define PIN 6   // input pin
#define NUMPIXELS      24 // Numero de pixeles de la tira
#define INTERVALO     500 // modifica este numero a 2000 si gustas.

Adafruit_NeoPixel tira = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
unsigend long muestroTiraLed;

void setup() {
  pinMode(6, OUTPUT);
  pinMode (A3, INPUT);
  tira.begin(); // Inicializamos el objeto "tira"
  tira.clear(); // Apagamos todos los LEDs
  Serial.begin(9600); //
  analogReference(INTERNAL);
}

void loop() {
  float sensorValue;
  int sensorVoltage;

  if (millis() - muestroTiraLed > INTERVALO) {
      sensorValue = analogRead(A3);
      sensorVoltage = sensorValue * 1.1/1023;  // esta cuenta estaba mal hecha 
      Serial.println("");
      Serial.print("sensor reading = ");
      Serial.print(sensorValue);
      Serial.println("");
      Serial.print("sensor voltage = ");
      Serial.print(sensorVoltage);
      Serial.println(" mV");
    
    
      if (sensorVoltage <= 50) { //Condiciones segun lectura del sensor.
        Serial.print("Indice UV 0");
        muestroTira(0,0,0);
        
      }
      if (sensorVoltage >= 51 && sensorVoltage <= 227) { //Condiciones segun lectura del sensor.
        Serial.print("Indice UV 1");
        tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Verde 1UV
        muestroTira(0, 255,0);
      }
      if (sensorVoltage >= 228 && sensorVoltage <= 318) { //Condiciones segun lectura del sensor.
        Serial.print("Indice UV 2");
        tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Verde 2UV
        muestroTira(0, 255, 0);
      }
      if (sensorVoltage >= 319 && sensorVoltage <= 408) {
        Serial.print("Indice UV 3");
        tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Amarillo 3UV
        muestroTira(255, 215, 0)); //Posicion, R, G, B
      }
      if (sensorVoltage >= 409 && sensorVoltage <= 503) {
        Serial.print("Indice UV 4");
        tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Amarillo 4UV
        muestroTira(255, 215, 0)); //Posicion, R, G, B
      }
      if (sensorVoltage >= 504 && sensorVoltage <= 606) {
        Serial.print("Indice UV 5");
        tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Amarillo 5UV
        muestroTira(255, 215, 0)); //Posicion, R, G, B
        
      }
      if (sensorVoltage >= 607 && sensorVoltage <= 696) {
        Serial.print("Indice UV 6");
        tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Naranja 6UV
        muestroTira(255, 69, 0)); //Posicion, R, G, B
      }
      if (sensorVoltage >= 697 && sensorVoltage <= 795) {
        Serial.print("Indice UV 7");
        tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Naranja 7UV
        muestroTira(255, 69, 0)); //Posicion, R, G, B
      }
      if (sensorVoltage >= 796 && sensorVoltage <= 881) {
        Serial.print("Indice UV 8");
        tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Rojo 8UV
        muestroTira(255, 0, 0)); //Posicion, R, G, B
      }
      if (sensorVoltage >= 882 && sensorVoltage <= 976) {
        Serial.print("Indice UV 9");
        tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Rojo 9UV
        muestroTira(255, 0, 0)); //Posicion, R, G, B
      }
      if (sensorVoltage >= 977 && sensorVoltage <= 1079) {
        Serial.print("Indice UV 10");
        tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Rojo 10UV
        muestroTira(255, 0, 0)); //Posicion, R, G, B
        
      }
      if (sensorVoltage >= 1080) {
        Serial.print("Indice UV 11+");
        tira.setBrightness(5); //Brillo global de la tira de 0 a 255 Morado +10UV
        muestroTira(75, 0, 130)); //Posicion, R, G, B
      }
      muestroTiraLed = millis();
  }
}

void muestroTira(byte R, byte G, byte B) {
  for (int i=0; i<24; i++) {
    tira.setPixelColor(i, tira.Color(R, G, B)); //Posicion, R, G, B  Apagado 0UV
  }
  tira.show();
}

Esto

sensorValue = analogRead(A3);
  sensorVoltage = sensorValue*5.0;

estaba mal. Como mínimo debe ser

 sensorVoltage = sensorValue*5.0/1023.0;

Agrego un detalle que se me escapó.

Si estás usando un Arduino Uno, aunque no es estrictamente necesario pero mejora la estabilidad de la referencia interna según sugiere la hoja de datos del ATmega328, tienes que agregar un capacitor de 100 nF entre el pin ARef y GND porque viendo los esquemáticos oficiales, no lo trae.

Por el contrario, el Nano ya lo tiene instalado así que no es necesario agregarlo.

En caso que no sea ninguna de estas placas, te sugiero que revises los esquemáticos del modelo que usas (los encuentras aquí en la Store) y verifiques si ya viene instalado.

Saludos