EFFETTO LIGHT DROPS

Natale è vicino. Passeggio in centro per le strade addobbate con festoni di luci, sfere di led e alberi rivestiti di strisce di luce. Tra queste strisce, ce ne sono alcune che ogni pochi secondi danno origine ad un effetto ammaliante...gocce di luce che cadono e arrivate al fondo danno un ultimo guizzo prima di spegnersi.
Resto affascinato a guardale a lungo; non è la prima volta che le vedo ma, come spesso succede, non mi sono mai soffermato sul dettaglio, pienamente soddisfatto dello spettacolo complessivo.

Ora le vedo con occhio diverso, con l'occhio dell'elettronico. Parte un prima luce, a cui si aggiunge una coda di 4-6 altre luci Si muovono in gruppo dall'alto in basso e arrivate in fondo la coda si riduce a una sola luce che rimane accesa per un tempo più lungo; poi si spegne e tutto ricomincia dopo qualche secondo.
"Non deve essere difficile da riprodurre" mi dico. Torno a casa e mi metto al lavoro.

In effetti non è complesso (esclusa, come sempre per me, la costruzione meccanica e relativa componentistica).
Il progetto richiede un'oretta, spesa più che altro per identificare i compomenti più convenienti. L'hardware, realizzato su basetta millefori, prende un paio d'ore per via dei 'filini' utilizzati (wirewrap), difficili da trattare.

Per il firmware avevo preventivato una mezza oretta; in realtà è costato 2 giorni di prove.
L'idea era di prevedere lo spegnimento graduale (fading) delle luci di coda e della luce finale. Questo richiede il pilotaggio dei led con la tecnica PWM, con tempistiche abbastanza critiche per evitare sfarfallii. Dopo varie prove insoddisfacenti ho messo da parte la raffinatezza, optando per la semplicità. In effetti, la durata totale del ciclo è di circa mezzo secondo, per cui un fading di 4 led su 16 non aggiunge un granchè, mentre il controllo digitale On/Off è estremamente semplice da ottenere.



Descrizione

Il circuito impiega solo 4 componenti passivi e 3 componenti attivi:

  1. MCU PIC12F683: fantastica MCU a soli 8 pin con tutto quello che serve, compreso un oscillatore interno da 8MHz.
  2. IC MAX7981 di MAXIM (datasheet a questo link)
    Semplice da utilizzare e comodo (c'è il formato DIP 28 pin). MAXIM lo fornisce gratuitamente e velocemente come Sample.
  3. IC 7805M: il solito regolatore di tensione per ricavare i 5V dell'elettronica dai 12V (variabile da 7V a 36V) usati per i Led.

L'integrato MAX6971

Questo IC è un '16-Port, 36V Constant-Current LED Driver', ovvero una serie di 16 generatori di corrente costante regolabile con una sola resistenza. Ciascuna porta può erogare (in realtà, assorbire) fino a 55mA; la massima tensione di alimentazione dei Led è di 36V, permettendo quindi di collegare catene di Led fino a 10..12 elementi su ogni porta. I Led devono essere collegati in modalità 'Anodo Comune', quindi tutti gli anodi andranno al positivo di alimentazione Led (previsto sulla porta EXT).



Funzionamento

Il controllo del driver MAX6971 è tramite una porta SPI (segnali SCK e SDO) con velocità fino a 25MHz e un comando LE (Latch Enable) che trasferisce il contenuto dello shift register a 16 posizioni ai 16 generatori di corrente.
Il protocollo SPI, molto semplice, è emulato via software: si pone la linea dati SDO (ovvero DIN) allo stato del bit, si genera un breve impulso basso-alto-basso di clock su SCK (ovvero CLK) e si ripete il tutto per 16 volte, a partire dal bit più significativo (MSB). Finita le sequenza, un breve impulso basso-alto-basso sul filo LE memorizza la stringa inviata nei generatori, ed il gioco è fatto. Con il clock interno a 8MHz, l'invio del comando avviene in circa 42uSec.

Se si vuole estendere il numero di led collegabili, più integrati MAX6971 possono essere collegati in cascata, collegando l'uscita DOUT (qui collegato alla porta EXT) all'ingresso DIN del 2° (3°, 4°...) integrato. Ovviamente, la stringa di comando dovrà essere un multiplo esatto di 16 bit e considerare che i primi 16bit controlleranno l'ultimo IC, e via via a scendere.
C'è un quarto ingresso di comando OE (Output Enable) che portato a livello logico 1 spegne tutti i led e riduce i consumi. Qui non è utilizzato e quindi collegato stabilmente a massa (può anche essere lasciato scollegato).
Il circuito comprende una porta ICSP per la programmazione del PIC e un pulsante P1 utilizzato per scegliere la direzione di movimento dei led, in modo da adattardi alla posizione di montaggio della striscia.



Costruzione

Il circuito è stato montato su una basetta millefori e le dimensioni sono risultate molto compatte.
La parte critica è sicuramente l'allestimento della striscia di Led; nella foto sotto si vede la mia, rudimentale, soluzione. Certamente chi è attezzato e più portato di me alla meccanica potrà trovare soluzioni più adatte.
Nel mio caso, per la breve durata di utilizzo, il modulo è alimentato con una batteria al piombo da 12V per allarmi.



Firmware

da inserire



Modulo di comando e costruzione Dettaglio del modulo di comando Schema elettrico


DOWNLOAD

  1. Schema elettrico in versione Eagle ed eseguibile (file zippato)

Inserito il 26/12/11