Questo sito utilizza cookie, anche di terze parti, per migliorare la tua esperienza e offrire servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie. Se vuoi saperne di più o negare il consenso a tutti o ad alcuni cookie vai alla sezioneCookie Policy

Utilizzo dei display a led

Ultimo aggiornamento: 31/07/2015

Un metodo molto semplice e rapido per poter mostrare visivamente risultati o dati è permesso dall'uso di display numerici a led connettendoli direttamente alla porta di un microcontrollore. Sara' sufficiente utilizzare un qualsiasi picmicro dotato di almeno un paio di porte. Nelcaso specifico abbiamo utilizzato un 'vecchio' pic16F84 o un piu' recente 16F628. I display a led, pur essendo considerati 'vecchio stile' hanno dalla loro parte la velocità, una qualità che i piu' moderni display lcd certamente non hanno.

Come possiamo vedere dallo schema tutti i display sono connessi alla stessa porta (PORTB) e vengono switchati on/off per mezzo di quattro pin della PORTA del picmicro. Naturalmente (per il fatto di essere connessi alla stessa porta) solo un display alla volta verrà acceso ma la permanenza dell'immagine sulla retina dell'occhio fara' si che ad un umano sembreranno accesi tutti allo stesso tempo.

display led picmicro  

 

I componenti non sono critici. Alla base del transistor: 2.2-10kohm
Resistenza per i led 180-330 ohm.
Transistors: qualsiasi NPN di bassa potenza.

int x,y,l;

char numbers[16]={0x3F, 0x06, 0x5B,           // Chars 0-9 A-F array
0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F,
0x6F, 0x77, 0x7C, 0x39, 0x5E, 0x79, 0x71};
char cn[4] = {1,2,4,8};                                      // = bits 0b0001  0010  0100  1000 of  PORTA

void main()
{
TRISA = 0;
TRISB = 0;
CMCON = 7;                                                    // only 16F628 to disable comparators. To be removed if pic=16F84
PORTA = 0;
PORTB = 0xFF;
// --------------------First loop                             simple slow loop to show all chars
for (x=0;x<4;x++)
{  PORTA = cn[x];
    for (y=0; y<16; y++)     
         {  PORTB = numbers[y];
            delay_ms(150);   } 
 } delay_ms(1000);

// --------------------Second loop                        same loop faster

for (x=0;x<4;x++)
{PORTA = cn[x];
  for (y=0; y<16; y++)     
   {  PORTB = numbers[y];
      delay_ms(15); }
}delay_ms(1000);

//--------------------Third loop                            same loop very fast repeated 255 times

for(l=0;l<255;l++)
{     for (x=0;x<4;x++)    
      { PORTA = cn[x];      
        for (y=0; y<16; y++)      
        {PORTB = numbers[y];         
          delay_us(100); } 
      } 
 } 
}

Ecco un semplice primo programma in Mikroc utile per verificare le connessioni fra il picmicro ed il display.

Il primo array è utilizzato per la creazione dei caratteri (0-9 A-F) mentre un secondo array viene usato per settare correttamente i piedini della porta (per switchare ON un singolo display alla volta).

Tre loop effettuati a diverse velocita' consentiranno di verificare la esatte connessioni e, ad alte velocita', la permanenza dell'immagine sulla retina dell'occhio. Infatti l'ultimo loop risultatalmente veloce da dover essere ripetuto molte volte (255) per essere visibile e mostra, di fatto, una serie di '8'.

 

Diritti riservati Cuteminds.com 2008-2015. Tutti i marchi riportati sono detenuti dai legittimi proprietari. Tutto il materiale e` liberamente utilizzabile ma non per scopi commerciali. Non si assume alcuna responsabilita` sul materiale pubblicato per eventuali danni diretti o indiretti che possano derivare dall`utilizzo di schemi, progetti o altro materiale presente nel sito. Inviare una mail a: remove-admin@cuteminds.com (contenuti) remove-webmaster@cuteminds.com (webserver) per domande e/o suggerimenti.