Indicatori LED a sette segmenti. Indicatore LED E ora, come è programmato il tutto?

In questa lezione impareremo gli schemi per collegare gli indicatori LED a sette segmenti ai microcontrollori e come controllare gli indicatori.

Gli indicatori LED a sette segmenti rimangono uno degli elementi più apprezzati per la visualizzazione delle informazioni digitali.

Le loro seguenti qualità contribuiscono a questo.

  • Prezzo basso. In termini di visualizzazione, non c'è niente di più economico degli indicatori digitali a LED.
  • Varietà di dimensioni. Gli indicatori più piccoli e più grandi sono LED. Conosco indicatori LED con altezze delle cifre da 2,5 mm a 32 cm.
  • Si illuminano al buio. In alcune applicazioni questa proprietà è quasi decisiva.
  • Hanno diversi colori luminosi. Ce ne sono anche di bicolori.
  • Correnti di controllo piuttosto basse. I moderni indicatori LED possono essere collegati ai pin dei microcontrollori senza tasti aggiuntivi.
  • Adatto a condizioni operative difficili (intervallo di temperature, elevata umidità, vibrazioni, ambienti aggressivi, ecc.). Per questa qualità gli indicatori LED non hanno eguali tra gli altri tipi di elementi di visualizzazione.
  • Durata di servizio illimitata.

Tipi di indicatori LED.

L'indicatore LED a sette segmenti visualizza un carattere utilizzando sette LED: segmenti di cifre. L'ottavo LED illumina il punto decimale. Quindi ci sono 8 segmenti in un indicatore a sette segmenti.

I segmenti sono contrassegnati da lettere latine dalla “A” alla “H”.

Gli anodi o i catodi di ciascun LED sono combinati nell'indicatore e formano un filo comune. Pertanto, esistono indicatori con un anodo comune e un catodo comune.

Indicatore LED con anodo comune.

Indicatore LED con catodo comune.

Controllo LED statico.

Gli indicatori LED devono essere collegati al microcontrollore tramite resistori limitatori di corrente.

Il calcolo delle resistenze è lo stesso dei singoli LED.

R = (offerta U - segmento U) / segmento I

Per questo circuito: segmento I = (5 – 1,5) / 1000 = 3,5 mA

I moderni indicatori LED si illuminano in modo abbastanza intenso anche con una corrente di 1 mA. Per un circuito con anodo comune, i segmenti si illumineranno, sui pin di controllo dei quali il microcontrollore genererà un livello basso.

Nello schema di collegamento di un indicatore con catodo comune, la polarità dell'alimentazione e dei segnali di controllo cambia.

Si accenderà il segmento, sul pin di controllo del quale verrà generato un livello alto (5 V).

Modalità multiplex per il controllo degli indicatori LED.

Sono necessari otto pin per collegare ciascun indicatore a sette segmenti al microcontrollore. Se sono presenti 3-4 indicatori (cifre), l'attività diventa praticamente impossibile. Semplicemente non ci sono abbastanza pin del microcontrollore. In questo caso gli indicatori possono essere collegati in modalità multiplex, in modalità di indicazione dinamica.

I risultati dei segmenti con lo stesso nome di ciascun indicatore vengono combinati. Ciò si traduce in una matrice di LED collegata tra i pin del segmento e i pin dell'indicatore comune. Ecco un circuito per il controllo multiplex di un indicatore a tre cifre con un anodo comune.

Per collegare tre indicatori erano necessari 11 pin e non 24, come nella modalità di controllo statico.

Con il display dinamico, è illuminata solo una cifra alla volta. Un segnale di alto livello (5 V) viene fornito al pin comune di uno dei bit e segnali di basso livello vengono inviati ai pin del segmento per quei segmenti che dovrebbero illuminarsi in questo bit. Dopo un certo tempo si accende la scarica successiva. Al suo pin comune viene applicato un livello alto e i segnali di stato per questo bit vengono inviati ai pin del segmento. E così via per tutte le cifre in un ciclo infinito. Il tempo di ciclo è chiamato tempo di rigenerazione dell'indicatore. Se il tempo di rigenerazione è sufficientemente breve, l'occhio umano non noterà la commutazione delle scariche. Sembrerà che tutte le scariche siano costantemente luminose. Per evitare lo sfarfallio degli indicatori, si ritiene che la frequenza del ciclo di rigenerazione dovrebbe essere di almeno 70 Hz. Cerco di usare almeno 100 Hz.

Il circuito di indicazione dinamica per LED con catodo comune si presenta così.

La polarità di tutti i segnali cambia. Ora viene applicato un livello basso al filo comune della scarica attiva e un livello alto ai segmenti che dovrebbero illuminarsi.

Calcolo degli elementi di visualizzazione dinamici degli indicatori a diodi emettitori di luce (LED).

Il calcolo è un po’ più complicato rispetto alla modalità statica. Durante il calcolo è necessario determinare:

  • corrente media dei segmenti;
  • corrente impulsiva dei segmenti;
  • resistenza del resistore del segmento;
  • corrente impulsiva dei terminali comuni delle scariche.

Perché Le cifre dell'indicatore si illuminano a turno, la luminosità del bagliore determina la corrente media. Dobbiamo sceglierlo in base ai parametri dell'indicatore e alla luminosità richiesta. La corrente media determinerà la luminosità dell'indicatore ad un livello corrispondente al controllo statico con la stessa corrente costante.

Scegliamo una corrente di segmento media di 1 mA.

Ora calcoliamo la corrente impulsiva del segmento. Per fornire la corrente media richiesta, la corrente impulsiva deve essere N volte maggiore. Dove N è il numero di cifre dell'indicatore.

Segmento diavoletto = I segmento media *N

Per il nostro schema segmento I. diavoletto = 1 * 3 = 3 mA.

Calcoliamo la resistenza dei resistori che limitano la corrente.

R = (offerta U - segmento U) / segmento I. diavoletto

R = (5 – 1,5) / 0,003 = 1166 Ohm

Determiniamo le correnti impulsive dei terminali comuni delle scariche. Possono illuminarsi 8 segmenti contemporaneamente, ciò significa che è necessario moltiplicare la corrente impulsiva di un segmento per 8.

I categoria imp. = I segmento diavoletto *8

Per il nostro circuito I categoria imp. = 3 * 8 = 24 mA.

  • Selezioniamo la resistenza del resistore su 1,1 kOhm;
  • i pin del microcontrollore di controllo del segmento devono fornire una corrente di almeno 3 mA;
  • i pin del microcontrollore per la selezione della cifra dell'indicatore devono fornire una corrente di almeno 24 mA.

Con tali valori di corrente l'indicatore può essere collegato direttamente ai pin della scheda Arduino, senza l'utilizzo di tasti aggiuntivi. Per gli indicatori luminosi, tali correnti sono abbastanza sufficienti.

Schemi con chiavi aggiuntive.

Se gli indicatori richiedono più corrente, è necessario utilizzare tasti aggiuntivi, soprattutto per i segnali di selezione delle cifre. La corrente di scarica totale è 8 volte la corrente di un segmento.

Schema di collegamento di un indicatore LED con anodo comune in modalità multiplex con interruttori a transistor per la selezione delle scariche.

Per selezionare un bit in questo circuito, è necessario generare un segnale di basso livello. La chiave corrispondente si aprirà e fornirà alimentazione allo scarico dell'indicatore.

Schema di collegamento di un indicatore LED a catodo comune in modalità multiplex con interruttori a transistor per la selezione delle scariche.

Per selezionare un bit in questo circuito, è necessario generare un segnale di alto livello. La chiave corrispondente aprirà e chiuderà il terminale di scarico comune a terra.

Potrebbero esserci circuiti in cui è necessario utilizzare interruttori a transistor sia per i segmenti che per i pin di bit comuni. Tali schemi sono facilmente sintetizzabili dai due precedenti. Tutti i circuiti mostrati vengono utilizzati quando l'indicatore è alimentato con una tensione pari all'alimentazione del microcontrollore.

Tasti per indicatori con tensione di alimentazione maggiorata.

Esistono indicatori di grandi dimensioni in cui ciascun segmento è costituito da diversi LED collegati in serie. Per alimentare tali indicatori, è necessaria una sorgente con una tensione superiore a 5 V. Gli interruttori devono fornire la commutazione di una tensione maggiore controllata dai segnali di livello del microcontrollore (solitamente 5 V).

Rimane invariato il circuito dei tasti che collegano a massa i segnali degli indicatori. E gli interruttori di alimentazione dovrebbero essere costruiti secondo uno schema diverso, ad esempio come questo.

In questo circuito, il bit attivo viene selezionato dal livello alto del segnale di controllo.

Tra la commutazione delle cifre dell'indicatore, tutti i segmenti devono essere spenti per un breve periodo (1-5 μs). Questo tempo è necessario per completare i processi transitori di cambio chiave.

Strutturalmente, i perni di scarico possono essere combinati in un caso di un indicatore a più cifre, oppure un indicatore a più cifre può essere assemblato da indicatori separati a una cifra. Inoltre, è possibile assemblare un indicatore da singoli LED combinati in segmenti. Questo di solito viene fatto quando è necessario assemblare un indicatore molto grande. Tutti gli schemi di cui sopra saranno validi per tali opzioni.

Nella prossima lezione collegheremo un indicatore LED a sette segmenti alla scheda Arduino e scriveremo una libreria per controllarlo.

Categoria: . Puoi aggiungerlo ai segnalibri.

Non consente di accendere/spegnere direttamente l'indicatore LED o il flash della fotocamera; alcuni telefoni dispongono di questa opzione.

Come lampeggiare in modo programmatico le luci multicolori, come scrivere la tua "Torcia elettrica" ​​o quali altri LED del dispositivo possono essere controllati: lo imparerai di seguito.

Tutto è iniziato quando, esplorando il file system del mio HTC Desire utilizzando ES Explorer, mi sono imbattuto per caso in directory interessanti: /sys/class/leds/blue, /sys/class/leds/flashlight, ecc.
Cos'altro è blu?! Ho visto solo un indicatore arancione e verde. Ma la cosa più interessante è che all'interno di queste directory c'era un file di luminosità con permesso di scrittura! Di cui ho subito approfittato.

In realtà, questo non è un semplice file, ma un'interfaccia per lavorare con un driver LED. Quindi, scrivendo un numero positivo nel file /sys/class/leds/blue/brightness, accenderemo l'indicatore blu sulla custodia del telefono, scrivendo 0 - lo spegneremo. Allo stesso modo con gli indicatori color ambra e verde. Accendendo due led insieme otteniamo nuovi colori: ambra+blu=viola; verde + blu = acqua.

Ora, come è programmato tutto?
public void ledControl(Nome stringa, luminosità int) (

Tentativo (

FileWriter fw = new FileWriter("/sys/class/leds/" + nome + "/luminosità" );

fw.write(Integer.toString(luminosità));

fw.close();

) catch (Eccezione e) (

// Il controllo LED non è disponibile

}

}


// Accende l'indicatore viola

ledControl("ambra", 255);

ledControl("blu", 255);


// Rende il display più scuro

ledControl("retroilluminazione LCD", 30 );


// Disattiva la retroilluminazione dei pulsanti

ledControl("pulsante-retroilluminazione", 0 );


// Organizza una torcia di media luminosità

ledControl("torcia elettrica", 128 );

È possibile scaricare un'applicazione di esempio con i codici sorgente.

Conclusione
Tutto! Ora il telefono si illumina come un albero di Natale. Il codice è stato testato solo su HTC Desire con Android 2.2, ma probabilmente funzionerà su altri dispositivi. Scrivimi se il focus funzionerà o meno sul tuo telefono.

Visualizza simboli su tabelloni segnapunti, orologi elettronici e molto altro. Un indicatore LED è un design semplice che visualizza caratteri alfabetici o simbolici. Strutturalmente si tratta di un insieme di LED, dove ogni elemento è illuminato da un indicatore a segmenti di segnale.

Caratteristiche e tipi di progettazione

Gli indicatori LED sono costituiti da circuiti integrati che visualizzano varie informazioni. La tensione di funzionamento varia da 2 V a 8 V. Possono essere:

segmentale;
- Matrice;
- Scala lineare;
- Separare

La prima varietà è quella utilizzata più spesso ed è quella standard. A seconda del modello, la struttura può essere assemblata da 1 a 4 gruppi a sette segmenti. La dimensione dell'oggetto e il numero di caratteri visualizzati dipendono dal loro numero. Pertanto, un gruppo di sette segmenti mostrerà solo un numero o una lettera. Negli orologi elettronici vengono utilizzati quattro gruppi. Quando si sceglie un circuito per uso domestico, l'acquirente dovrebbe prestare attenzione alla presenza di un anodo e un catodo comuni.
Oltre ai piccoli indicatori, ci sono anche quelli che possono essere visti nei luoghi pubblici. Per aumentarne la luminosità vengono utilizzati LED collegati in sequenza, integrati in ogni singolo componente. Affinché l'indicatore mostri un determinato numero o simbolo, viene applicata una tensione di 11,2 Volt. Gli elementi hanno i loro nomi: A, B, C, D, F o G. Il funzionamento è determinato da registri a scorrimento digitali e decodificatori.

Crittografia dei dati e circuiti integrati

Tali elementi sono installati su una scheda che controlla la tensione di alimentazione. Il lavoro è dovuto all'accesso al codice del programma e all'uso di microcontrollori speciali. Utilizzando la programmazione viene impostata una temporizzazione che influisce sulla visualizzazione dei componenti in un determinato momento.
Il circuito integrato converte il codice binario e decimale binario fornito al display. I circuiti comuni per il controllo degli indicatori domestici sono K514ID2 o K176ID2, nei modelli importati 74HC595. La gestione è possibile in due modalità:

Direttamente, tramite microcontrollori;
- Utilizzo dei registri a scorrimento

La prima opzione ha meno successo a causa della necessità di collegare molti pin. Inoltre, il consumo di corrente può essere maggiore di quello possibile con i microcontrollori. I grandi indicatori a sette segmenti dipendono dal chip MBI5026.

Caratteristiche degli indicatori di segmento

In elettronica vengono utilizzati per l'ispezione visiva. La struttura è composta dai seguenti elementi:

Un indicatore di sintesi dei caratteri è un dispositivo in cui le informazioni visive vengono visualizzate utilizzando uno o più componenti;
- Campo di visualizzazione dati – al suo interno vengono visualizzati numeri o altri simboli;
- Elemento di visualizzazione – una parte strutturale che ha il proprio controllo;
- Segmento – un elemento di visualizzazione delle informazioni, presentato sotto forma di linee rette o curve;
- Spazio familiare: lo spazio richiesto per visualizzare un carattere

Tutti i dispositivi elettronici svolgono compiti di base:

1. Informazioni visive.
2. Hanno un design completo.
3. Dotato di controllo elettronico

Le modifiche del segmento differiscono dalle modifiche della matrice in quanto ogni elemento è unico. La forma dei caratteri è progettata specificamente per visualizzare determinati numeri o simboli. Questi ultimi non si basano su sette, ma su nove, quattordici o sedici segmenti. Quando il numero supera 7, è abbastanza razionale utilizzare l'indicazione di commutazione dinamica. La visualizzazione e l'indicazione LED sono possibili anche in forma bicolore. Vengono utilizzate lampadine di diversi colori e collegate a un circuito comune. Combinando i risultati si ottiene una tonalità combinata.

Conclusione

Il funzionamento degli indicatori è impossibile senza LED. Tali dispositivi sono rilevanti non solo per le apparecchiature radio, ma vengono utilizzati con successo anche per segnali, timer e indicatori. Per visualizzare le informazioni è possibile utilizzare dispositivi di vari tipi di circuito e controllo.
Condividi informazioni sulle tue pagine di social media riguardo a questo argomento.

Fig.1 Posizione dei segmenti dell'indicatore LED

Gli indicatori LED sono il mezzo più semplice per visualizzare informazioni simboliche. Il loro design è un insieme di LED realizzati sotto forma di segmenti di una certa forma. La Figura 1 mostra il layout del segmento più comune, che consente di visualizzare i numeri da 0 a 9 e molti altri caratteri aggiuntivi. All'interno dell'alloggiamento tutti i LED hanno un punto di collegamento comune. Integrati insieme possono essere anodi (anodo comune) o catodi (catodo comune). I colori luminosi più comuni sono il rosso e il verde. A parità di consumo di corrente, i LED rossi, di norma, hanno una maggiore emissione luminosa. Il consumo energetico dipende dalla tensione di alimentazione e dalla tecnologia di produzione. La corrente del segmento degli indicatori moderni può essere inferiore a 1 mA.


Fig.2 Collegamento dell'indicatore per l'indicazione dinamica

Per evidenziare il simbolo richiesto sull'indicatore, sarà necessario utilizzare 8 pin sul microcontrollore. È possibile salvare una riga eliminando il segmento H quando non è necessaria la visualizzazione di un punto (virgola). Con un numero maggiore di indicatori utilizzati, il numero di linee I/O aumenterà in modo significativo. Due indicatori richiederanno 16 linee, 3 indicatori ne richiederanno 24, ecc. Chiaramente, per la maggior parte delle applicazioni un uso così dispendioso di perni è del tutto inaccettabile. Questo problema può essere risolto utilizzando la visualizzazione dinamica. Per fare ciò, invece di collegare direttamente i segmenti al microcontrollore, questi vengono combinati in gruppi comuni, come mostrato in Fig. 2. Il circuito utilizza un indicatore TOT-3361AH-LN per 3 posizioni familiari con catodi comuni. La porta D viene utilizzata per controllare i LED dei segmenti A...H. I catodi K0...K2 sono collegati direttamente rispettivamente alle linee 0...2 della porta B (per indicatori di altro tipo con una corrente totale ≥20 mA saranno necessari elementi buffer aggiuntivi). All'inizio, sull'indicatore viene visualizzato il simbolo corrispondente alla familiarità zero. In questo caso il livello di tensione è impostato basso sulla linea PB0 e alto su PB1 e PB2 (altrimenti il ​​simbolo verrà visualizzato in tutte e tre le posizioni). Dopo un certo periodo di tempo, viene emesso il simbolo successivo in ordine e ora il catodo K1 è collegato a terra (c'è un livello basso sulla linea PB1, un livello alto su PB0 e PB2). Successivamente, le informazioni vengono visualizzate nella posizione più alta dell'indicatore (in PB2 log.0, in PB0, PB1 log.1), poi di nuovo a zero, ecc. A frequenze di aggiornamento del personaggio ≥ 50 Hz, l'inerzia della visione umana inizia ad apparire. Lo sfarfallio (effetto di commutazione) scompare. L'immagine viene percepita continuamente, come se tutti i simboli fossero costantemente illuminati. Di seguito è riportato un esempio di subroutine di visualizzazione dinamica. Richiede due parametri: il codice del carattere e il numero della posizione in cui questo carattere deve essere visualizzato.

; Poiché l'indicatore contiene 3 luoghi familiari, la subroutine; l'output dei caratteri deve essere richiamato con una frequenza ≥ 150 Hz (3 ; familiarità x 50 Hz = 150 Hz). Il periodo di passaggio dovrebbe; essere 1/150 Hz = 6667 μs, che corrisponde alla frequenza di 1 MHz per l'AVR; saranno 6667 cicli della frequenza di clock del generatore. Permanente; È più conveniente misurare gli intervalli di tempo con un timer in funzione; in modalità ripristino coincidenza (modalità CTC). ATmega8 ha questo; la modalità esiste per il timer-contatore a 16 bit 1 e 8-; bit timer-counter 2. Per questi scopi (nel caso di utilizzo del timer-counter 1) sono presenti due registri; Spazi RVV: OCR1AH ​​(byte alto), OCR1AL (byte basso). ; Quando il circuito di confronto è abilitato, il registro di conteggio; TCNT1H:TCNT1L si avvia dopo ogni impulso in ingresso; l'unità aumenta il suo contenuto fino a quando; il valore non è uguale al valore scritto; OCR1AH:OCR1AL. In questo momento il contenuto di TCNT1H:TCNT1L ; viene ripristinato e il flag OCF1A viene impostato in TIMSK RV. Se; preimpostare il bit OCIE1A in TIMSK e il bit I in SREG, ; quindi per coincidenza ci sarà una transizione al gestore degli interrupt; dal modulo di confronto A. Esiste anche il timer-contatore 1; anche un secondo modulo simile per confrontare B con i registri; confronti OCR1BH:OCR1BL il cui funzionamento è simile; descritto sopra. .def data = R16 ;registrarsi con il simbolo code.def pos = R17 ;registrarsi con il numero dell'indicatore di posizione corrente.def temp = R18 ;registrarsi per operazioni intermedie.dseg .org SRAM_START ;celle nella SRAM per buffer di visualizzazione: . byte 3 ;su indicatore.cseg .org 0 rjmp iniziale ;avvia program.org 0x0006 ;gestore di interruzioni per rjmp service_T1COMPA ;corrispondenza dal modulo di confronto A ; Periodo di interruzione in modalità CTC: T=(OCR1AH:OCR1AL+1) ; /(Fclk/N), dove N è il coefficiente di divisione del prescaler; frequenza all'ingresso del timer-contatore 1. La modalità operativa è impostata; bit WGM13:WGM10 (WGM10 e WGM11 nel controllo RV TCCR1A, ; WGM12 e WGM13 in TCCR1B), e il valore N è specificato dai bit; CS12:CS10 nel registro TCCR1A. Per periodo T = 6667 μs; (WGM13:WGM10 = 0100 – taglia CTC), N =1(CS12:CS10 = 001 – ; prescaler disabilitato) e Fclk=1 MHz – contenuto di OCR1AH:OCR1AL ; = 6667. .org 0x0020 iniziale: ldi temp,high(RAMEND) ;inizializzazione stack out SPH,temp ldi temp,low(RAMEND) out SPL,temp . clr pos clr temp ldi temp,1 ;riempi il buffer del display con i numeri 1...3 m buffer,temp ldi temp,2 m buffer+1,temp ldi temp,3 m buffer+2,temp out TCCR1A,temp ldi temp ,(1<< WGM12)|(1<< CS10) out TCCR1B,temp ldi temp,high(6667) out OCR1AH,temp ldi temp,low(6667) out OCR1AL,temp ldi temp,1<< OCIE1A out TIMSK,temp sei . service_T1COMPA: ;обработчик прерывания по совпадению OCR1A in temp,SREG ;при входе сохраняем в стеке push temp ;регистры temp, SREG clr temp ldi YH,high(buffer) ;заносим в указатель Y адрес ldi YL,low(buffer) ;буфера индикации buffer add YL,pos ;добавляем к Y смещение, что соответствует adc YH,temp ;ячейке с текущей позицией pos индикатора ld data,Y ;заносим в data кодом символа текущей позиции rcall din_ind ;вызов подпрограммы индикации inc pos ;циклически изменяем номер позиции cpi pos,3 ;индикатора 0->1->2->0, ecc. brne PC+2 clr pos pop temp ;all'uscita, ripristina dallo stack out SREG,temp ;registra temp, SREG reti ; Subroutine di visualizzazione dinamica; ZH:ZL – indice per la conversione tabulare; R18 – registro per operazioni intermedie; R16 – numero di carattere nella tabella di conversione ind_tabl; quando si entra in una subroutine; R17 – numero di posizione all'ingresso della subroutine (0…2); determina il flag T all'ingresso della subroutine; presenza (T=1) o assenza (T=0) di una virgola din_ind: clr R18 ;cancella il registro ausiliario all'ingresso ldi ZH,high(2*ind_tabl) ;inserisci l'indirizzo iniziale di ldi ZL,low(2*ind_tabl ) nell'indice Z; le tabelle di conversione dei caratteri aggiungono ZL,R16 ;aggiungere al puntatore Z un offset, adc ZH,R18 ;corrispondente alla posizione del simbolo nella tabella lpm R16,Z ;estrae il simbolo bld R16,7 da la tabella in R16;inserire il valore nel bit più significativo di R16 (segmento H) clt ;virgola, che viene trasmesso tramite il flag T ldi R18,0b11111110 sbrc R17,0 ;se la cifra corrente è 1, allora inseriamo R18 la maschera ldi R18,0b11111101 ;porta B per accendere il catodo K1 sbrc R17,1 ;se la cifra corrente è 2, inserire in R18 la maschera ldi R18,0b11111011 ;porta B per accendere il catodo K2 premere R17 ; salvare sullo stack il registro con il numero di posizione in R17,PORTB;leggere nel buffer R17 lo stato corrente della porta ori R17,0b00000111 e R18,R17 out PORTB,R17 ;estinguere tutti i segmenti applicando log.1 a K0. ..K2 out PORTD,R16 ; emette il simbolo successivo out PORTB, R18 alla porta D ; collega il successivo catodo pop R17 a massa ; ripristina il registro con il numero di posizione dallo stack ret ind_tabl: ; tabella di alcuni simboli con un comune catodo; HGFEDCBA Numero di caratteri HGFEDCBA nella tabella.db 0b00111111, 0b00000110 ; 0,1 0, 1 .db 0b01011011, 0b01001111 ; 2,3 2, 3 .db 0b01100110, 0b01101101 ; 4,5 4, 5 .db 0b01111101, 0b00000111 ; 6,7 6, 7 .db 0b01111111, 0b01101111 ; 8,9 8, 9 .db 0b01110111, 0b01111100 ; A,b 10, 11 .db 0b01011110, 0b01011110 ; C,d 12, 13 .db 0b01111001, 0b01110001 ; E,F 14, 15 .db 0b01000000, 0b00000000 ; -,spazio 16, 17

Le linee delle porte I/O dell'AVR hanno caratteristiche di carico simmetriche. Consentono correnti di ingresso e uscita uguali fino a 20 mA. Pertanto, gli indicatori con anodo e catodo comuni possono essere utilizzati con uguale successo. Inoltre, i pin per il collegamento dei segmenti svolgono molto spesso funzioni aggiuntive dei pulsanti di polling. In Fig. 2, ad esempio, il pulsante SBN è collegato alla linea del segmento A tramite il resistore limitatore di corrente RN. Periodicamente il PD0 viene configurato come ingresso per leggere lo stato del pulsante. In questo caso, la resistenza pull-up interna funge da resistenza di carico.


Fig.3 Riduzione del numero di pin del microcontrollore
a - utilizzando un registro a scorrimento
b - utilizzando indicatori con diversi schemi di connessione dei LED

Il numero di pin può essere notevolmente ridotto se si utilizzano microcircuiti ausiliari insieme al microcontrollore. La figura 3a mostra ad esempio come viene utilizzato a questo scopo un registro a scorrimento 74HC164 o simile. Questa connessione libera 6 linee I/O. In alcuni casi, può essere giustificato l'uso di decodificatori di codici a sette segmenti e contatori di vario tipo. Inoltre, esiste un’altra opportunità di risparmio basata sull’uso delle linee portuali dello stato z. Il circuito di Fig. 3b è simile al circuito di Fig. 2, con l'unica eccezione che un indicatore a tre cifre con anodo comune HG2 è inoltre collegato in parallelo con l'indicatore con catodo comune HG1. Le linee PB0...PB2 effettuano contemporaneamente la commutazione rispettivamente degli anodi A0...A2 dell'indicatore HG2 e dei catodi K0...K2 di HG1. Quando le informazioni vengono visualizzate nella posizione zero di HG2 (anodo A0), viene generato un livello di alta tensione sulla linea PB0. Sulle linee della porta D, log.0 è impostato in quei segmenti che devono essere illuminati e z-state nei segmenti che devono essere spenti. Quando il segno più basso HG1 (catodo K0) è attivo, sulla linea PB0 deve essere presente un livello basso di tensione e sulla porta D viene emesso un valore logico in cui il livello logico 1 sulle linee corrisponde ai segmenti illuminati e allo stato z estinguersi. Se i caratteri vengono emessi in posizioni dell'indicatore diverse da A0 e K0, allora PB0 deve essere commutato in uno stato ad alta impedenza. Naturalmente, il programma di output con un tale schema di commutazione sarà notevolmente più complicato di quello mostrato in Fig. La tabella dei simboli risulterà molto più ampia poiché, in primo luogo, per ognuno di essi sarà necessario, oltre al valore PORTD, memorizzare anche il contenuto del registro DDRD, attraverso il quale dovranno essere trasferito allo stato z (impostato per l'input). E in secondo luogo, i simboli di HG1 corrisponderanno ad altri valori PORTD inversi rispetto all'indicatore con un catodo comune HG2.

L'altro giorno ero in un negozio di elettronica. A volte compaiono vari componenti radio usati a basso prezzo. Questa volta ho visto il microcircuito, visto che costava un centesimo, l'ho comprato senza esitazione. Ho deciso di creare un semplice indicatore di segnale mono. Perché mono e non stereo? Perché c'è un solo chip. Finirò il secondo canale più tardi...

Dopo aver stampato il circuito utilizzando una stampante laser su carta lucida, iniziamo a trasferire il toner (inchiostro) sulla scheda. Lo facciamo nel modo seguente: posizioniamo la carta su una tavola ben levigata e la passiamo sopra con un ferro da stiro riscaldato per 10 minuti. Aspettiamo che la tavola si raffreddi e rimuoviamo con cura la carta sotto l'acqua calda. Dovrebbe sembrare come questo:

Quindi incidiamo la tavola nel cloruro ferrico. Dopo circa un'ora la mia tavola era completamente incisa. Utilizzando un solvente, eliminiamo la vernice e utilizziamo la carta vetrata per conferire alla tavola un aspetto più rettangolare.

Stiamo effettuando il pagamento. Quindi iniziamo a saldare le parti. Per prima cosa ho saldato il chip. Dopo i LED e poi il resto delle parti. Foto della tavola completamente finita:


Funzionamento del circuito

Ti parlerò brevemente degli scopi delle parti. Usando R2 regoliamo il livello del segnale di ingresso. Attraverso il condensatore C1, il segnale arriva alla base del transistor VT1, che funge da amplificatore. Il resistore R3 imposta la polarizzazione sulla base del transistor. Quindi il segnale amplificato “arriva” attraverso il condensatore C2 ai diodi VD1 e VD2.

Il segnale negativo va al meno, il segnale positivo alla quinta gamba del microcircuito. C3 e R4 fungono da filtro. Maggiore è la tensione sulla gamba 5, più LED si accendono. A proposito, se metti in cortocircuito il pin 9 su positivo, i LED si accenderanno in modo lineare. Nel video potete vedere come funziona questa cosa.

Video del funzionamento dell'indicatore LED