I.S.I.S. G.D. Romagnosi
Settore elettrico-elettronico
Indirizzo manutenzione e assistenza tecnica
Anno scolastico 2014/2015
Classe 5G
Matrice LED RGB
10X10 gestita da 4
PIC 16F877
(Project β) pag.
0 Candidato: Proserpio Stefano
Indice
Ringraziamenti pag. 2
Scelta del progetto pag. 3
Introduzione pag. 4
Progettazione pag. 5
Schema a blocchi pag. 5
Scelta dei componenti pag. 6
Schema elettrico (Eagle)
pag. 13
Assemblaggio del progetto
pag. 17
Microcontrollore PIC 16F877
pag. 21
Configurazione piedinatura
pag. 23
Registri interni e SFR
pag. 28
Programmazione dei PIC
pag. 37
Lista istruzioni pag. 40 pag.
1 Programma PIC matrice
pag. 41
Caricamento programma
pag. 42
Test finali di collaudo
pag. 43
Possibili usi e miglioramenti
pag. 45
Fonti
pag. 49
Ringraziamenti
Ringrazio innanzitutto la mia famiglia che mi ha incoraggiato e supportato nella realizzazione di questo progetto.
In particolare ringrazio mia madre per avermi regalato tutto ciò di cui avevo bisogno, e mio padre per avermi consentito di trasformare la cantina in un laboratorio.
Ringrazio infine tutti i miei amici che, nonostante le delusioni pag. 2 e gli insuccessi, hanno sempre creduto in me.
Scelta del progetto
La scelta di costruire una matrice LED era partita qualche anno fa quando, guardando dei progetti esposti all’università, notai una matrice di piccole dimensioni che illuminava il laboratorio.
La matrice in questione era controllata per mezzo di un PIC 16F84A e un multiplexer.
Tornato a casa mi imposi l’obiettivo di realizzare una matrice 10X10 RGB controllata da PIC ma senza l’utilizzo di multiplexer; l’obiettivo del progetto, inoltre, consisteva nel contenere al massimo i prezzi pur realizzando un prodotto di qualità.
Pensavo molto al potenziale utilizzo della matrice: per la segnaletica stradale, per riprodurre semplici giochi o scritte, oppure per realizzare orologi digitali o analogici con informazioni sia sull’orario sia sulla data.
Secondo le mie aspettative la matrice doveva resistere a determinate condizioni di utilizzo. pag. 3
Le idee erano molte.
Inizialmente pensai di scartare questa scelta per la mancanza di tempo ma la sfida di progettare qualcosa partendo da zero e la voglia di mettermi in gioco per creare qualcosa di unico ebbe la meglio.
Questo progetto ha comportato tante ore sui libri, sui manuali e su internet a causa della complessità degli argomenti ma il risultato finale è stato un prodotto con un’elevata flessibilità di utilizzo che, su scala industriale, potrebbe portare una svolta in molte applicazioni come, per esempio, la segnaletica.
Inizialmente, come in tutti i progetti complessi, ci sono stati parecchi imprevisti determinati dall’immaturità del lavoro ma nelle fasi finali, le modifiche e gli accorgimenti effettuati, hanno permesso al progetto di funzionare correttamente.
Introduzione
La matrice trattata in questo progetto è una matrice RGB costituita da 100 LED: 10 in altezza e 10 in lunghezza.
Ogni LED (ciascuno dei quali ad anodo comune e dotato di 4 pin) può riprodurre una larga scala di colori a seconda della tensione fornita sui pin dello stesso LED; per limitare la luce è stato applicato un filtro ricavato dal display di un vecchio televisore LCD che ne cambia totalmente la visione rendendo l’insieme decisamente più leggibile.
Questa matrice è divisa in quattro quadranti, ciascuno dei quali viene gestito da un PIC Microchip 16F877 che, attraverso un programma generato in codice assembly e steso sull’ambiente MPLAB, ne determina l’immagine riprodotta; la programmazione dei PIC è stata effettuata attraverso l’uso del programmatore Microchip PICKIT 3 e di una basetta da me creata (PROJECT Ω). pag. 4
Il progetto consta di una sola scheda elettronica sulla quale sono inseriti tutti i componenti circuitali escluso l’alimentatore.
Il prodotto permette la visione di alcuni brevi esempi di utilizzo quali giochi di luce, una scritta, un piccolo gioco (ping pong), e l’esempio di un orologio che scandisce ore, minuti e secondi.
La sfida di questo progetto è stata quella di realizzare una matrice che non comportasse l’ausilio di multiplexer.
Sono state necessarie conoscenze di “TEEA” e “TTIM” sia per arrivare alla programmazione/gestione del PIC 16F877, sia per la progettazione (oltre che per la risoluzione dei problemi); abilità di “MECCANICA”, per i test di resistenza; abilità di “INGLESE” per la lettura dei datasheet e manuali tecnici.
Progettazione
La fase di progettazione del circuito elettronico è stata la parte più lunga della realizzazione della matrice, soprattutto per la complessità del circuito da realizzare.
La fase di progettazione è consistita nella realizzazione di due schemi (quello a blocchi e quello elettrico) e nella scelta della componentistica che doveva mantenere un elevato rapporto qualità prezzo.
Tutte le scelte sono state effettuate anche in base ai datasheet e ai calcoli effettuati su correnti e tensioni in gioco.
L’intero progetto si basa sul microcontrollore, che è stato il primo componente scelto per velocizzare la stesura degli schemi; avendo più di 25 I/O per ogni quadrante della matrice da controllare ho optato sull’uso di un componente Microchip veloce e poco costoso: il PIC 16F877.
Schema a blocchi
pag. 5
La realizzazione del circuito elettronico parte da un semplicissimo schema a blocchi.
Lo schema a blocchi permette di valutare in una prima istanza ciò di cui il progetto necessita e comporta.
PIC
Necessita di un’alimentazione in continua a 5V, un clock generato da un oscillatore al quarzo completo di condensatori, dei resistori per limitare la corrente ai capi di ogni LED e transistor che chiudono il circuito a massa e determinano l’accensione della matrice (fig. 1.0). pag. 6
Si iniziano così a definire le componenti principali del circuito elettronico che porteranno alla scelta dei componenti.
Scelta dei componenti
Resistori
I resistori sono componenti passivi largamente utilizzati in elettronica per dissipare potenza o limitare la corrente in un circuito.
In questo caso sono stati scelti dei resistori con tecnologia THT (through-hole technology) adatti a una basetta millefori e più facili da saldare rispetto ai componenti SMD (surface mounting device).
Si deve precisare che il dimensionamento dei resistori si basa sulla prima legge di Ohm e sui due principi di Kirchhoff.
Sapendo che la tensione fornita dagli output dei PIC è 5V, e considerato che la tensione massima richiesta da ogni pin del LED RGB varia dai 2,4V ai 3,4V, si può scomporre il problema in circuiti semplici per il calcolo delle resistenze.
Ripetendo il procedimento, inserendo la tensione di ogni colore del diodo RGB, si calcolano i valori di resistenza necessari a garantire il funzionamento del LED;
tenendo presente che la corrente di normale funzionamento dei diodi LED è di 20mA si riportano di seguito i circuiti semplificati compresi di calcoli. pag. 7
(5−VLED R) =
R= 0,020
(5−2,4) = 130Ω
0,020
(5−VLED G) =
R 2= 0,020
(5−3,2) = 90Ω
0,020
(5−VLED B) =
R 3= 0,020
(5−3,2) = 90Ω
0,020
Dai calcoli effettuati risulta che il resistore da porre sull’anodo comune dei LED RGB deve avere una resistenza uguale o superiore pag. 8
a 130Ω per evitare il danneggiamento della parte rossa.
Vengono utilizzati quindi resistori commerciali da 130Ω per non limitare troppo la luce dei LED, garantendo un’intensità luminosa di circa 8000/9000 mcd.
Per aiutarmi nella lettura dei resistori (e per verificare le tolleranze) ho utilizzato un tester predisposto per la misura della resistenza e il codice a colori che riporto nella figura illustrativa 1.1.
Diodi LED RGB
I diodi LED RGB sono particolari diodi LED che possono riprodurre un’ampia scala di colori utilizzando un processo chiamato mescolanza additiva.
La mescolanza additiva avviene (nel caso dei LED RGB) tra i tre colori che lo costituiscono, cioè il rosso, il verde e il blu; attraverso questo procedimento non si possono ottenere tutte le combinazioni di colore, ma solo una parte.
Nella scelta del diodo RGB bisogna tener conto dell’ambiente di utilizzo, delle tensioni/correnti in gioco e della tipologia del pin in comune; in questo caso si adotta un RGB ad anodo comune perché il pin in comune è direttamente soggetto alla tensione in uscita dal PIC.
Come descritto nella parte precedente relativa ai resistori, l’anodo comune del diodo è preceduto da un resistore da 130Ω per preservare lo stesso prima di collegarsi al pin del PIC.
Prevedendo un uso esterno si è scelto un componente che può sopportare un range di temperature compreso tra i -25 e i +80°C: l’M500RGB4D-A anodo comune, da 5mm.
Il diodo LED RGB può essere scomposto in uno schema semplice composto di 3 diodi aventi un anodo in comune (fig. 1.2). pag. 9
Dal datasheet di questo diodo LED si possono rilevare anche le specifiche (fig. 1.3) di tensioni, correnti e intensità luminosa:
Come si denota dalla tabella sopra riportata, il diodo LED assorbe una corrente di 20mA e, per ogni colore, viene riportato il range di tensioni adatto per il corretto funzionamento: il diodo rosso può sopportare una tensione massima di 2,4V e produce una luminosità di 8000 mcd; il diodo verde e quello blu possono sopportare tensioni fino a 3,4V ma producono un’intensità luminosa diversa: il primo di 9000 mcd, il secondo di 8000 mcd.
L’adozione di questi led ad altissima luminosità determina una visibilità molto buona.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Introduzione Project B, tesina
La tesina che porto quest'anno è la realizzazione di una matrice LED RGB 10x10 controllata da 4 PIC16F877 con approfondimenti relativi a ogni componente e a ogni stadio della realizzazione.
Collegamenti
- TEEA (tecnologie elettrico-elettroniche) - transistor, condensatori e oscillatori, diodi, PIC16F877
- MECCANICA - test flessione, azioni vincolari e test resistenza temperature basse ed elevate
- TTIM - progettazione, cablaggio e programmazione