Innanzitutto, specificare un singolo produttore di LED e un numero di parte. L'intervallo in Vf da una parte all'altra non sarà eccezionale come suggerisci (non 0,5 V).
In secondo luogo, piccole variazioni di luminosità non sono facilmente rilevabili per gli occhi. Quindi non devi preoccuparti di piccole variazioni da unità a unità.
Terzo, quando possibile, alimentate i LED da una tensione regolata, non dalla batteria, in modo da rimuovere una fonte di variazione.
In quarto luogo, quando l'unica fonte di alimentazione disponibile è variabile (come una batteria), si guida il LED con una sorgente di corrente anziché una sorgente di tensione con un resistore di limitazione della corrente. Se è disponibile almeno una tensione regolata (anche se è una bassa tensione), è abbastanza facile creare una sorgente di corrente soddisfacente per pilotare un indicatore LED utilizzando solo un transistor e alcune resistenze. Questo è economico ma occupa spazio su design fortemente limitati dallo spazio.
Se non è disponibile nemmeno una singola tensione regolata, è comunque possibile creare una sorgente di corrente decente utilizzando due diodi in serie come riferimento di tensione.
Non sono sicuro di essere un vero ingegnere, ma ho dovuto fare tutte queste cose durante la progettazione di prodotti di consumo, ed è così che ho affrontato. Un'altra cosa che può davvero aiutarti con gli indicatori LED è quando i carichi pesanti causano l'abbassamento della tensione della batteria. Ad esempio, un motore o un altoparlante a vibrazione può causare la caduta della tensione della batteria su alcuni prodotti. Tale caduta potrebbe causare uno sfarfallio evidente o una variazione della luminosità del LED quando il LED viene azionato dalla batteria. Questo è un altro motivo per utilizzare una fonte corrente.
Ecco una fonte di corrente per quando il LED è alimentato dalla batteria, ma hai a disposizione un segnale GPIO che deriva da una tensione regolata:
simula questo circuito - Schema creato usando CircuitLab
Nello schema sopra, non importa se il LED è alimentato da 3,3 V o VBATT o altro, purché il GPIO sia alimentato da una fonte regolata. L'ho copiato da un'altra risposta. Dovresti modificare la resistenza dell'emettitore per ottenere la corrente specifica che stai cercando. Quando non è disponibile molto sovraccarico, è anche possibile ridurre R2 in modo che la tensione di base sia inferiore a 1 V.
Ecco un circuito per quando non c'è tensione regolata disponibile:
simula questo circuito
Nel circuito sopra, D1 e D2 fungono da riferimento di tensione. La tensione può variare, ma non tanto quanto la tensione della batteria. Questa tensione costante alla base di Q1 viene quindi sfruttata in una tensione costante attraverso R3, e quindi, corrente di collettore costante (il transistor non sarà saturo a meno che VBATT non sia molto basso). In realtà non l'ho fatto in un progetto di produzione, ma credo che funzionerebbe bene.
Rispetto a un semplice interruttore saturo, entrambi i circuiti fanno un buon lavoro per mantenere la corrente desiderata anche quando la tensione è appena sufficiente per mantenere il LED acceso.
Ecco alcuni risultati della simulazione confrontando il semplice interruttore saturo con la resistenza di limitazione della corrente (D1), rispetto al circuito di riferimento del partitore di tensione (D2) rispetto al riferimento a due diodi (D5). Questo è con un LED 3V. Si noti che i valori della resistenza sono stati ottimizzati per ottenere circa 9 mA a VBATT = 4,2 V.
Come puoi vedere, la sorgente di corrente con il riferimento del partitore di tensione ha mantenuto buone prestazioni, diciamo 3,35 V. Quindi ha bisogno solo di circa 350mV di spese generali.
Il circuito di riferimento a due diodi ha mantenuto buone prestazioni fino a circa 3,45 V, ovvero circa 450 mV di sovraccarico.
Il circuito standard in realtà non mantiene affatto una corrente regolata. La corrente scende linearmente con la tensione della batteria.
Si noti inoltre che il circuito di riferimento a due diodi e il circuito di riferimento del partitore di tensione hanno entrambi una corrente più elevata a tutte le tensioni della batteria rispetto al circuito standard, ad eccezione della tensione massima della batteria.