Led rgb in base alla tensione della batteria

Ciao, sto usando il mio arduino come voltmetro, l'ho attaccato a una batteria, e vorrei che un led rgb andasse dal verde (ovvero quando è carica), al rosso (quando è scarica), passando in dissolvenza dall'arancione.. come posso fare?

Il voltmetro dovrebbe darti un valore 0-1023 visto che lo colleghi ad un pin digitale. Non credo sia proprio 0-1023 ma dovrebbe essere all'incirca quello l'intervallo.
Per il led rgb dovrai usare dei pin PWM, uno per ogni colore, tralasciando il blu, quindi 2 pin PWM.
I pin PWM vanno da 0 (spento) a 255 (massima luminosità di quel colore)

In base al valore di analog/voltmetro dovrai calcolare il valore del rosso e il valore del verde.

Batteria scarica, circa 0 da analog, quindi rosso=255 e verde=0
Batteria carica, circa 1023 da analog, quindi rosso=0 e verde=255
Batteria a metà carica, circa 512 da analog, quindi rosso=128 e verde=128


tabella colori

puoi usare la funzione "map" per convertire un range in un altro range.
in sostanza:
int VisualizzaTensione = map(VariabileLettaDalPinAnalogicoDoveCollegoIlPartitoreDiTensione, 0, 1023, 0, 255);

dove 0-1023 è la scala che ho in ingresso e 0,255 la scala che voglio in uscita.

Se parlassimo di volt da visualizzare, dopo il partitore, potrei dire che in ingresso ho 0,5V ma voglio visualizzato sul display 0-12V che sarebbero i veri volt che sto misurando...
quindi:
int VisualizzaTensione = map(VariabileLettaDalPinAnalogicoDoveCollegoIlPartitoreDiTensione, 0, 5, 0, 12);
lcd.print(VisualizzaTensione)

che appunto mi visualizzera un valore proporzionale 0-12V pur leggendo 0-5V

altro esempio:

Devo ruotare un servo che fa solo 0-270° ma ho un valore analogico 0-1024
int PosizioneAngolare = map(AnalogRead, 0, 1024, 0, 270);

spero ti sia utile.
occhio ai famosi +1 della partenza 0
0-270 sono 271, come 0-1024 sono 1025 e non va molto bene...

https://www.arduino.cc/en/Reference/Map