Ogni singolo punto (LED) è collegato al micro per file e colonne. in questo caso rappresentato i led hanno l'anodo colegato sulle 10 file e il catodo collegato sulle 10 colonne. Il micro per accendere il led giusto "gioca" a battaglia navale, cioè accende una determinata riga e una determinata colonna e il il led di intersezione si accende. La vera e propia composizione dell'immagineVi spiegherò come si compone l'immagine di una diagonale con una serie di immagini che commenterò.
Questo è il disegno che rappresenterò. è una diagonale che parte dal punto A1 e finisce nel punto L0 (ovviamente i pallinio verdi sono i LED accesi quelli bianchi spenti). Se il micro volesse (cioè se io gli dico di) accendere tutti i LED che compongono la diagonale dovrebbe accendere le colonne 1, 2, 3, 4, 5, 6, 7, 8, 9 e 0, quindi tutte!!!! E accenderebbe le righe A, B, C, D, E, F, G, H, I e L, quindi tutte. Il display sarebbe in una situazione come questa:
Il display è tutto acceso!!!! come mai? Accendendo tutte le file e le colonne il display ovviamente si accende tutto. E come si fa allora a rappresentare la diagonale?? Le foto seguenti lo spiegano:
Supponiamo che in un tempo 0 il microcontrollore accende SOLO la fila A e solo la colonna 1 quindi in quel momento c'è acceso solo il LED A1.
Nel momento 1 invece il microcontrollore accende SOLO la fila B e la colonna 2 cioè led B2 acceso. Seguendo questa logica il microcontrollore accenderà negli 8 successivi tempi (2, 3, 4, 5, 6, 7, 8, 9), SOLO i led rappresentati nelle 8 figure successive:
Momento n°2: Led C3 acceso.
Momento n°3: LED D4 acceso.
Momento n°4: LED E5 acceso.
Momento n°5: LED F6 acceso.
Momento n°6: LED G7 acceso.
Momento n°7: LED H8 acceso.
Momento n°8: LED I9 acceso.
Momento n°9: LED L0 acceso.
Se voi poteste unire queste immagini vi accorgereste subito che la diagonale sarebbe comparsa. Però c'è un'altro fenomeno che aiuta l'elettronico a rappresentare questa diagonale: l'occhio umano riesce solo a vedere 25 fotogrammi al secondo quindi se si sta sopra a questa frequenza l'occhio umano non riesce a percepire se un led è acceso o spento e ancor meno capire a che velocità lampeggia. Quindi se facciamo scorrere le nostre immagini più di 25 volte in un secondo noi vedremo la diagonmale bella completa.
L'occhio però riesce a vedere uno sfarfallio dell'immagine fino a 50Hz, infatti se guardate i neon vecchi a tubo vicinino alle estremità a volte si nota uno sfarfallio. Se però si sta sopra alla frequenza di 50 Hz l'immagine è perfetta. voi magari state pensando: "Ma come faccio io a far scorrere quelle immagini 50 volte al secondo?". Be, vi rispondo io: voi non potete soprattutto perchè neanche le vostre mani ce la farebbero a cambiare le 10 immagini ogni 20ms. Ma secondo voi un micro come arduino che fa 16.000.000 di operazioni al secondo non ce la fa? Cito arduino perchè è il micro più semplice da programmare per un principiante ed è un buono spunto di partenza anche per i più esperti può essere utile.
Ma arduino come fa realmente a gestire il display? cioè come fa a gestire 10 righe e 10 colonne? ci vogliono 20 pin! Arduino non basterebbe ne ha solo 14 di input-output. E invece ce la facciamo perchè usiamo questo stratagemma: utilizziamo un divisore di frequenza come il 4017. Questo integrato a ogni impulso sul pin di clk (clock) che arduino gli manda accende in sequenza le sue 10 uscite quindi le 10 colonne che sono a lui collegate. Le colonne potrebbero essere anche 5 se il micro disponesse per il 4017 anche del pin di reset cioè un pin che resetta l'IC e accende l'uscita 0 e re-inizia il conteggio da capo. Quindi ad arduino bastano 12 pin per gestire un display 10 x 10. Per approfondire le poche informazioni che vi ho dato sul 4017 vi consiglio di guardare anche una guida che fetente a pubblicato qui per noi inesperti (un tempo lo eravamo tutti o no?) su grix. Ecola qui: http://www.grix.it/viewer.php?page=3823
Il signor quinto67 invece con lo stesso sistema ha costruito un bellissimo termometro di cui riporto il link alla pagina e lo schema:
Quinto usa invece che arduino un micro di casa microchip: il PIC16F876A. Controlla 3 display 8 x 8 le cui righe sono messe in serie e 3 4017 gestiscono le 24 colonne. Dei BC547 amplificano il piccolo segnale che il 4017 emette, questo brucerebbe se gli si collegassero le file direttamente e soprattutto va a logica opposta cioè il 4017 abilita la sua uscita potandola a livelli di Vcc e invece il transistor accende la colonna di led portandola verso massa. Il funzionamento è lo stesso che vi ho spiegato prima solo applicato su un display più grosso.
Per chi vuole provare una cosa simile esiste anche colorduino, un micro che gestisce un display 8 x 8 a colori. Eccovi il link della pagina in cui viene descritto: http://iteadstudio.com/product/ah-colorduino-debut/
Con questo chiudo il mio tutorial sulla rappresentazione di immagini su display a matrice. Appena avrò ultimato la mia creazione vi scriverò una pagina che spiega come realizzare un'orologio con un display di qusto tipo. Accetto qualunque consiglio e critica se fatta a modo e vi ringrazio per aver letto questa pagina.
Elia
|
|
|
Lo staff di www.grix.it non si assume responsabilità sul contenuto di questa pagina. |
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|