Light Board v1

11 Anni 8 Mesi fa - 11 Anni 8 Mesi fa #1 da Spazzoli
Light Board v1 è stato creato da Spazzoli
Buongiorno a tutti,
ho finalmente tempo di scrivere due righe riguardo al mio ultimo, estremamente semplice, progetto. Si tratta di una scheda controllata da un PIC18f4520 che si occupa di gestire 4 gruppi di led: blu, rosso, verde e bianco. Il progetto è davvero semplice, diciamo che avevo sopratutto voglia di programmare un po' e di sperimentare con timer, interruzioni e pwm sw, quindi ho scelto un qualcosa di estremamente semplice dal punto di vista elettronico.
Per gli schematici mi sono basato sulle informazioni contenuto in questo sito:
picprojects.org.uk/projects/rgb/index.htm
davvero ricco di esempi riguardo all'argomento.
La scheda, oltre ai led colorati ad elevata luminosità, contiene anche un display a sette segmenti, 3 led rossi di segnalazione e 3 pulsanti (set, + e -). E' infatti possibile scegliere il gioco di luce (ad adesso ho implementato 4 differenti opzioni), la velocità con cui eseguirlo e infine è possibile impostare un tempo di time-out, 10, 20, 30, ... , 90 minuti, di modo che la scheda si spenga da sola (fondamentale quando ti vuoi addormentare con questa accesa...:D )
Qui trovate un video d'esempio:

se qualcuno si vuole cimentare in qualcosa di simile ed ha qualche dubbio, chieda pure, non garantisco di risolverglielo però!! ;-) Anche per codice o altro, fornisco tutto senza problemi in caso di bisogno!
Schematico in realtà non ne ho prodotto...è talmente semplice la scheda che ci andavo dietro a poco a poco mentre saldavo...
Possibili sviluppi futuri:
. aggiungere un quinto colore (es: giallo)
. aggiungere sensore di luce per attivare la scheda quando si ha una forte variazione di luminosità (spengo luce - chiudo finestra)
. connettere la scheda a qualche altro dispositivo a sua volta connesso alla rete (sono libere le porte usart)
...giusto qualche idea, ad adesso non intenzione di sviluppare ulteriormente il progettino.

ciao a tutti, spero possa essere utile a qualcuno!

anto.spax
youtube robot gallery:
www.youtube.com/user/antospax?feature=mhum
Ultima Modifica 11 Anni 8 Mesi fa da Spazzoli.

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

  • Spazzoli
  • Avatar di Spazzoli
  • Senior Member
  • Senior Member
Di più
11 Anni 8 Mesi fa #2 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Light Board v1
...questi abitanti del Forum!
Quando si annoiano creano cose stravaganti.
Proprio ieri pensavo a qualcosa di simile.
Ho visto una palla di vetro con una lampadina dentro che non costava molto ed ho pensato che sarebbe stata carina da prendere e metterci dentro un gioco di luci tipo quello del video.

Ottimo lavoro e grazie per aver condiviso i risultati.
Se hai lo zip del codice facci vedere come hai risolto il tutto.
Se non erro il PC18F4520 ha due soli moduli PWM, come hai implementato gli altri due segnali PWM per pilotare i LED?
Ad occhio mi sembra che tu abbia controllato la tensione e non la corrente sui LED, vero?
Hai collegato i LED in serie ed alimentati con la tensione prima del regolatore?

Saluti,

Mauro

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

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
11 Anni 8 Mesi fa #3 da Spazzoli
Risposta da Spazzoli al topic Re: Light Board v1
In allegato una immagine della vista dall'alto e il main del codice. Mancano i file relativi alla gestione della EEPROM, ma niente di troppo significativo. La EEPROM è usata per mantenere in memori le ultime impostazioni e ripartire con l'ultimo gioco di luce una quando viene ridata alimentazione.
Esatto i led sono controllati in tensione: alimentati a 11,4 V (dopo diodo contro inversione polarità) e connessi in serie con un transistor per ramo comandato dal micro. Quindi on oppure off a seconda del pwm, dal video si vede ogni tanto che l'accensione non è graduale, in realtà ciò è dovuto alla sensibilità della telecamera, che evidenzia questo effetto! Ad occhio nudo non si vede. Yes, il 4520 ha due soli moduli pwm, ma non sono stati utilizzati. Vi è una interruzione molto frequente, (ogni 55usec mi pare) che confronta il valore di un registro (onda triangolare) con quelli relativi alla luminosità dei led. Se quest'ultima è maggiore il ramo corrispondente è posto ad 1, altrimenti a 0. Poi viene incrementato di 1 il valore dell'onda triangolare, che è memorizzato in un byte, quindi per ogni ramo sono possibili 256 gradazioni.
La gestione degli interrupt può sembrare complicata perchè il tempo per cambiare i parametri (che coincide col tempo di visualizzazione dei numeri sul display7seg) è limitato, quindi ogni volta che si preme un pulsante viene attivato un timer, resettato alla pressione successiva, che spegne tutto una volta scaduto il tempo.
Il programma principale si occupa fondamentalmente di selezionare uno dei 4 giochi di luce disponibili, che comunque viene interrotto se si cambia qualcosa durante l'esecuzione.
Vi è anche una prima parte di lettura dei dati dalla eeprom.
Inoltre, per comodità, è stata creata una funzione che attende esattamente 100ms (o un multiplo, dipende dall'argomento) e verifica se sono apportate modifiche alla velocità / timeout / gioco di luce.
Per evitare lampeggi indesiderati dei led (durante cambiamenti di programma ecc) è stata creata una variabile 'mask', che, poichè moltiplica il valore delle uscite dei rami, se è posta ad 1 è trasparente, se è posta a 0 spegne tutto a prescindere di cosa avviene in altre parti del codice, fino alla riaccensione controllata del nuovo programma.

anto.spax
youtube robot gallery:
www.youtube.com/user/antospax?feature=mhum
Allegati:

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

  • Spazzoli
  • Avatar di Spazzoli
  • Senior Member
  • Senior Member
Di più
11 Anni 8 Mesi fa #4 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Re: Light Board v1
Ciao,

grazie per i dettagli.

Sicuramente creerai spunto ed idee ad altri.

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