Maxi Termometro ArduTempLED

0

Di Giovanni Carrera

Rispetto alle versioni a display tradizionale, i termometri elettronici a scala lineare si distinguono per l’immediata facilità di lettura, pur mantenendo tutta la flessibilità offerta dal controllo digitale.
In questo articolo realizziamo un termometro di grandi dimensioni con una striscia di smart led RGB e Arduino

L’idea mi è venuta sperimentando le strip led RGB intelligenti, ossia dotate di microchip di controllo, come la NEOPIXEL basata su chip WS2812B. La cosa interessante è quella che basta un solo bit per controllare numerosi led. Il numero dei pixel non è limitato dal livello del segnale, sempre ritrasmesso da ogni chip, ma dalla velocità di trasmissione.
In rete si trovano diverse librerie, io ho provato sia la FastLED-master sia l’Adafruit_NeoPixel, entrambe possono pilotare vari chip di led intelligenti e di controller. Per misurare la temperatura ho provato tre tipi di sensori ma nella versione finale ho usato un LM35.
Naturalmente questo display lineare si presta per visualizzare altre grandezze fisiche e si può facilmente aumentare il numero dei led.

I led WS2812B

Essi possono essere montati su una striscia di circuito stampato flessibile e adesivo, il cui aspetto è mostrato in figura 1.

Figura 1. – Aspetto tipico di una striscia WS2812

La densità è pari a 60 led per metro. I chip, alimentati a +5V con C=100nF di by-pass, sono collegati in cascata secondo lo schema mostrato in figura 2.

Figura 2 – Schema elettrico della striscia led.

Il protocollo seriale di comunicazione è di tipo NRZ (Non Return to Zero) e il dato è a 24 bit, otto bit per colore nell’ordine GRB (Green, Red, Blue) con il bit più significativo per primo. In questo modo si realizzano fino a 2^24 = 16777216 colori. Il bit rate può variare da 400 a 800 [kbit/s].
La figura 3 mostra i diagrammi dei pacchetti trasmessi e come vengono interpretati dai singoli chip.

Figura 3 – Diagrammi di comunicazione.

Il primo pacchetto, inviato dalla MPU, è acquisito dal primo chip D1 che ritrasmette il secondo e i successivi. Il secondo chip D2 acquisisce il secondo pacchetto e ritrasmette i successivi, e così via. Alla fine del ciclo una pausa di almeno 50 µs resetta il sistema. Ogni led consuma fino a 20 mA, quindi 60 mA massimi per chip. Se volessi rappresentare una barra luminosa con 30 led di luce bianca, ossia con i tre colori accesi, avrei un consumo di ben 1.8 A con considerevole dissipazione e variazione di corrente. Tranne che negli estremi, in cui faccio un flash di due led per un secondo, preferisco accendere un solo led alla volta e usare un solo colore.
Inoltre posso variare la luminosità del led tra 0 e 255.

This content has been restricted to logged-in users only. Please login to view this content.

Informazioni sull'autore

Nessun commento su "Maxi Termometro ArduTempLED"

Lascia un commento

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.