risorse | sommatore binario elettrico

Sommatore binario elettrico

Ho intrapreso questo progetto per dimostrare che un semplice circuito elettrico composto di soli interruttori (deviatori, per la precisione) può far di conto. Vuole essere una risposta concreta a una domanda che mi è stata rivolta spesso, di spiegare cioé come funziona una calcolatrice elettronica.

Per ridurre i costi al minimo ho pensato di realizzare un sommatore binario a tre bit: questo riduce il numero di deviatori – il componente più caro – a sei, cui si aggiungono quattro LED per rappresentare i bit della somma, più eventuali altri tre LED per i riporti:

Schema di massima del sommatore

Lo schema mostra l'aspetto che avrà il sommatore. Com'è logico attendersi, il bit meno significativo si trova a destra, quello più significativo a sinistra. Il sommatore è raffigurato mentre esegue l'operazione 6 + 5 = 11, in binario 0110 + 0101 = 1011.

Il circuito del sommatore sarà formato da un semi-sommatore per il bit meno significativo e una serie di sommatori completi per ognuno dei bit successivi (nel mio caso, due).

Sintesi logica

Semi-sommatore

Il circuito del semi-sommatore si occupa di sommare i due bit meno significativi (A0 e B0) e produce il bit somma (S0) e quello del riporto (C0):

A0B0S0C0
0000
0110
1010
1101

Tavola di verità del semi-sommatore

Dalla tabella si ricavano facilmente le espressioni logiche per le due uscite:

S0 = A0B0 + A0B0

C0 = A0B0

Sommatore completo

Il circuito del sommatore completo determina la somma dei due bit in ingresso (Ai e Bi) e del riporto dello stadio precedente (Ci-1) e produce il bit somma (Si) e quello del riporto (Ci):

AiBiCi-1SiCi
00000
00110
01010
01101
10010
10101
11001
11111

Tavola di verità del sommatore completo

L'espressione logica per la somma è:

Si = AiBiCi-1 + AiBiCi-1 + AiBiCi-1 + AiBiCi-1

Raccogliendo riporto e riporto negato a fattor comune si ottiene:

Si = Ci-1(AiBi + AiBi) + Ci-1(AiBi + AiBi)

L'espressione per il riporto invece è:

Ci = AiBi + Ci-1(Ai + Bi)

Poiché il riporto negato contribuisce alla determinazione del bit somma del sommatore completo, conviene propagarlo assieme al riporto fin dallo stadio iniziale (tecnica nota come dual-rail-carry full adder):

C0 = A0 + B0

Ci = AiBi + Ci-1(Ai + Bi)

Riassumendo, il semi-sommatore è caratterizzato dalle seguenti espressioni:

S0 = A0B0 + A0B0

C0 = A0B0

C0 = A0 + B0

Il sommatore completo è invece contraddistinto dalle seguenti espressioni:

Si = Ci-1(AiBi + AiBi) + Ci-1(AiBi + AiBi)

Ci = AiBi + Ci-1(Ai + Bi)

Ci = AiBi + Ci-1(Ai + Bi)

Circuito elettrico

Semi-sommatore

Il circuito del semi-sommatore può essere realizzato con due deviatori a quattro vie:

Il circuito del semi-sommatore

Di ogni deviatore sono evidenziati i soli poli utilizzati. Per convenzione ho assegnato la posizione del contatto in alto allo stato logico 1, quella in basso allo 0. Secondo questa logica, gli stati delle linee del circuito sono i seguenti:

Gli stati logici delle linee del semi-sommatore

Sommatore completo

Adottando la stessa convenzione circa la posizione del contatto del deviatore usata per il semi-sommatore, ecco una prima versione del circuito del sommatore completo:

Gli stati logici delle linee del sommatore completo

Così configurato, il circuito del sommatore completo richiede l'uso di deviatori a sei poli, difficili da trovare in commercio. In rete ho trovato una versione molto più compatta del circuito, ideata da Konrad Zuse per il suo calcolatore elettromeccanico Z3 attorno al 1941. Usa una sintesi diversa, sebbene equivalente, per la determinazione del riporto e del suo negato, come si può evincere dallo schema sottostante:

Il sommatore di Konrad Zuse basato su due deviatori a quattro vie

Le espressioni dei riporti ricavata dalla tabella di verità del sommatore completo sono:

Ci = AiBi + Ci-1(Ai + Bi)

Ci = AiBi + Ci-1(Ai + Bi)

mentre quelle utilizzate da Zuse nel suo sommatore sono:

Ci = AiBi + Ci-1(AiBi + AiBi)

Ci = AiBi + Ci-1(AiBi + AiBi)

Realizzazione pratica

Mi sono rifornito del materiale necessario in un negozio di elettronica, dove ho reperito i deviatori a quattro vie, i LED e alcune matasse di filo colorato che spero agevolino il lavoro di cablatura del circuito.

Uno dei deviatori a quattro vie acquistati

Ho temporaneamente disposto i deviatori su un supporto in cartoncino in attesa di trovare una scatola adatta a contenere il circuito finale:

Il supporto temporaneo in cartoncino con i deviatori già montati

Data la sua semplicità, ho potuto verificare preliminarmente il circuito del semi-sommatore con i (pochi) connettori a coccodrillo di cui dispongo:

Verifica del circuito del semi-sommatore con i connettori a coccodrillo

Dettaglio del circuito del semi-sommatore temporaneo

Per ognuna delle quattro configurazioni dei bit in ingresso A0 e B0 ho verificato che ci fosse continuità elettrica tra i terminali d'uscita (somma/riporto) e la linea di alimentazione solo nei casi in cui l'uscita corrisponde al livello logico 1. Una volta accertato il corretto funzionamento del circuito del semi-sommatore, ho proceduto con la cablatura definitiva. Al semi-sommatore sono seguiti i due sommatori, realizzati secondo lo schema di Zuse:

Il sommatore a tre bit completo

Ultimato il lavoro di saldatura ho verificato il corretto funzionamento dell'intero circuito sfruttando la scheda Arduino per ricavare la tensione di alimentazione (5V) e la sua bread-board per collegare i LED che rappresentano il risultato del sommatore. Le resistenze limitatrici sono da 220Ω per una corrente diretta sui LED di circa 14mA, considerando una caduta di tensione su di essi vicina ai 2V:

Test di funzionamento del sommatore

Solo a questo punto mi sono reso conto di aver cablato il semi-sommatore dal lato sbagliato del pannello; visto frontalmente, esso si trova infatti a sinistra, non a destra, posizione naturale del bit meno significativo! Ho deciso allora di segmentare il circuito, e per farlo ho usato alcuni cavetti Dupont:

La prima segmentazione: l'alimentazione tra il semi-sommatore e il primo sommatore completo

Verfica del circuito a segmentazione completata

Dove trovare un contenitore grande a sufficienza per ospitare il circuito e che sia dotato di un frontalino adatto per il montaggio dei deviatori e dei LED? La scelta è ricaduta su una scatola di derivazione Gweiss, comprata per pochi spiccioli in ferramenta:

La scatola di derivazione che ospiterà il circuito del sommatore

Dopo aver forato il coperchio della scatola di derivazione in corrispondenza delle posizioni dei deviatori e dei LED, ho smontato il circuito dal supporto temporaneo in cartoncino e l'ho montato sul frontalino di plastica:

Il circuito rimontato sul coperchio della scatola di derivazione

Per l'alimentazione ho riciclato un cavo di ricarica per cellulare che aveva la presa micro-USB difettosa. Ecco l'aspetto finale del sommatore binario:

Il circuito sommatore nella sua veste definitiva

Ho predisposto una maschera che aiuta a interpretare il funzionamento del circuito:

Il primo prototipo della maschera esplicativa applicata al frontalino

Il sommatore all'opera

Note

Nella realizzare il circuito ho invertito la corrispondenza tra la posizione del contatto del deviatore e lo stato logico associato. Quando la levetta del deviatore si trova in alto (posizione associata allo stato logico 1), internamente il contatto avviene tra il terminale centrale e quello sottostante; quando la levetta è in basso (posizione associata allo stato logico 0), il contatto è stabilito tra il terminale centrale e quello superiore:

Relazione tra la posizione della levetta e contatti del deviatore

Per questa ragione la cablatura dei due circuiti risulta invertita verticalmente:

Vista posteriore delle cablature del semi-sommatore e del sommatore completo

Lo schema elettrico completo del circuito è rappresentato qui sotto; nel mio caso al posto delle lampadine ho usato dei LED con una resistenza da 220Ω in serie. Il circuito può essere usato in sicurezza con una tensione di alimentazione non superiore ai 6V.

Schema elettrico completo (click sull'immagine per ingrandirla)

Pagina modificata il 21/04/2019