Time follower a led

13 Anni 1 Mese fa #1 da Ricky85
Time follower a led è stato creato da Ricky85
Eccomi quà con il primo progettino...

Devo realizzare una "linea di led" che simulano una specie di "fantasma" lungo una pista ciclistica.

In pratica questa "linea" deve dare un idea al ciclista di turno a "che punto è" rispetto alla posizione di un record piuttosto chè un tempo prestabilito per l'allenamento.

La funzionalità non è troppo complessa... imposto il tempo desiderato "esempio 30 secondi, il mio programma deve pilotare i led dividendo il tempo per la quantità di led presenti in modo da dare linearità, se ci sono 100 led significa che ogni 0.3 secondi si accende il led successivo, (pur non essendo totalmente reale perchè c'è il fattore accelerazione, ma a questo penserò un secondo momento, magari dividendo in "step" di tot metri ogni sezione di tempo, per ora ci interessa il tempo totale).

Le impostazioni dei tempi verranno fatte tramite pulsanti e la visualizzazione su un LCD (o magari su un GLCD ma questo mi fa un po più paura...)

Il dubbio che mi attenaglia ora è come gestire la grande quantità di led che saranno 100, ed RGB (sfruttando le sfumature da verde a rosso per dare un effetto "fading" alla posizione rispetto al fantasma).

Io ho pensato a due soluzioni:

1) Degli I/O Expander tipo MCP23018 usando il protocollo I2C ma non ho la più pallida idea di come funzionino e come si gestiscano via software, e qua avrei bisogno di un tutorial

2) Dei demultiplexer "ignoranti" tipo CD74HCT4514E o simili

Gestendo 100 led rgb avrei bisogno di gestire addirittura 300 uscite separate avrei bisogno di addirittura 19 demux/expander, ma nello stesso tempo non posso permettermi di avere matasse di cavo che vanno avanti e indietro (p.s. verranno fatti dei PCB apposta per creare le striscie di led, e l'ideale sarebbe poter "spalmare" i demux/expander lungo la linea, quindi servirà un bus fisicamente non troppo ingombrante).

Sicuramente ci sarà pure un metodo più "indolore" per gestirli... ma attualmente non mi vengono altre soluzioni...

A voi ^^

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Ricky85
  • Avatar di Ricky85
  • Senior Member
  • Senior Member
Di più
13 Anni 1 Mese fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Time follower a led
Ciao Ricky,

devo dire di non aver capito molto bene come vuoi pilotare i vari led.
In particolare l'esigenza dei colori ed eventuale modo di raggrupparli.

Altri integrati che potresti considerare per estendere il numero di I/O è il PCF8574.
Integrati come questi e MCP23018 avrebbero la caratteristica di possedere un buffer di uscita sul quale scrivere il valore e non dovresti quindi scrivere in continuazione il valore sui led.
Una tecnica molto usata è quella di dividere tutti i led in una matrice per esempio 10 righe e 10 colonne. Il tutto richiederebbe solo 20 pin ma dovresti rinfrescare in maniera continua il valore sui led.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
13 Anni 1 Mese fa #3 da Ricky85
Risposta da Ricky85 al topic Re: Time follower a led
Ciao Mauro,

in effetti da spiegare non è semplice...

In pratica facciamo finta che ho una colonna di 100 led.

gli step sono i seguenti:

Step0
Led 1 acceso rosso

Step1
Led 2 acceso rosso
Led 1 acceso rosso

Step2
Led 3 acceso rosso
Led 2 acceso rosso
Led 1 acceso rosso

Step3
Led 4 acceso rosso
Led 3 acceso rosso
Led 2 acceso rosso
Led 1 acceso giallo

Step4
Led 5 acceso rosso
Led 4 acceso rosso
Led 3 acceso rosso
Led 2 acceso giallo
Led 1 acceso giallo

Step5
Led 6 acceso rosso
Led 5 acceso rosso
Led 4 acceso rosso
Led 3 acceso giallo
Led 2 acceso giallo
Led 1 acceso giallo

Step6
Led 7 acceso rosso
Led 6 acceso rosso
Led 5 acceso rosso
Led 4 acceso giallo
Led 3 acceso giallo
Led 2 acceso giallo
Led 1 acceso verde

Step7
Led 8 acceso rosso
Led 7 acceso rosso
Led 6 acceso rosso
Led 5 acceso giallo
Led 4 acceso giallo
Led 3 acceso giallo
Led 2 acceso verde
Led 1 acceso verde

Step8
Led 9 acceso rosso
Led 8 acceso rosso
Led 7 acceso rosso
Led 6 acceso giallo
Led 5 acceso giallo
Led 4 acceso giallo
Led 3 acceso verde
Led 2 acceso verde
Led 1 acceso verde

Step9
Led 10 acceso rosso
Led 9 acceso rosso
Led 8 acceso rosso
Led 7 acceso giallo
Led 6 acceso giallo
Led 5 acceso giallo
Led 4 acceso verde
Led 3 acceso verde
Led 2 acceso verde
Led 1 spento

E così via fino ad arrivare al led n°100 (o quello che sarà)

In pratica devo muovere questo "serpentello" di 9 led a gruppi di 3 per colore avanti di una posizione ogni tot millisecondi

Il fatto è che ogni step (quindi pochi millisecondi) dovrei refreshare tutto

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Ricky85
  • Avatar di Ricky85
  • Senior Member
  • Senior Member
Di più
13 Anni 1 Mese fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Time follower a led
Ciao Ricky,

ora ho capito, ma non sono certo.
Infatti mi chiedo perché si debbano utilizzare ben 100 LED.
Mi immagino la stringa piuttosto fina e lunga!

In ogni modo credo che possa tornare utile un approccio modulare come hai indicato inizialmente tu.
Magari hai 8 LED per modulo.
Ogni modulo potrebbe essere comandato con il bus I2C o semplice SPI. In particolare ogni modulo scrive in maniera statica sui LED, dunque non devi rinfrescare l'intera stringa. Dovendo gestire i colori potresti usare il multiplexaggio solo sul canale dei colori.

Il primo modulo riceve i dati in ingresso e quando si accendono tutti i LED il modulo invia informazioni al modulo successivo, come se fosse uno shift register (cosa che potrebbe anche essere utilizzato).
Quando anche il secondo modulo si "riempie" il segnale "trabocca" sul terzo modulo e via discorrendo.


Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
Moderatori: Mauro Laurenti

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login