Spesso chi si costruisce un amplificatore o un preamplificatore HiFi, vorrebbe una volta finito poterlo ascoltare comodamente dalla poltrona preferita senza doversi scomodare ogni volta per alzare ed abbassare il volume, selezionare una sorgente diversa o silenziare l'impianto per risponder ad una telefonata.
Cerando in rete si trovano delle soluzioni, ma noi ne volevamo una con alcune particolari caratteristiche che si possono rivelare utili soprattutto quando si utilizzano in amplificatori o preamplificatori valvolari.
Ci siamo messi di buona lena per progettarne uno, ma subito ci siamo trovati di fronte ad uno scoglio: la scelta del protocollo.
Esistono svariati protocolli di traasmissione ad infrarossi ed ognuo ha i suoi pro e i suoi contro, noi abbiamo optato per il protocollo NEC in base ad alcuni fattori:

  1. Il fatto che il telecomando Apple remote usi quel protocollo
  2. il fatto che buona parte dei telecomandi TV usi un protocollo simile
  3. il fatto che ci sembrava semplice da implementare  ( poi abbiamo visto che qualche piccolo scoglio c'è stato ).

il funzionamento teorico è semplice:

  • il telecomando invia un treno di impulsi secondo la codifica NEC estesa ,
  • il ricevitore verifica il protocollo e decide a) se il protocollo è quello NEC, b) se l'identificativo corrisponde al trasmettitore associato  c) di quale istruzione si tratta

il protocollo nec è costituito da una portante a 38Khz che viene pulsata con una sequenza predeterminata. il ricevitore ad infrarossi, legge e filtra la portante e la trasforma in un impulso continuo senza gli impulsi della portante, cioè quando c'è la portante da in uscita uno stato alto, quando questa smette, da in uscita uno stato basso

Ad uno stato 0 corrisponde un impulso di 560us seguito da uno spazio di altri 560us per un totale di 1120uS , mentre ad uno stato  1 corrisponde un impulso di 560us seguito da uno spazio di 1690us per un totale di 2250uS.
stati logici nec

per la trasmissione di un dato, ci son due alternative:
la codifica NEC standard, dove vengono tramessi un primo impulso è di 9mS, seguito da uno spazio di 4.5ms, l'ID di periferica , il medesimo ID negato ( NOT ID ) il comando ed il comando negato come da immagine.
nec data packet
oppure nella codifica NEC estesa ( quella che usa il telecomanda Apple  )
dove vengono tramessi un primo impulso è di 9mS, seguito da uno spazio di 4.5ms, il byte più significativo ( MSB ) dell'ID di periferica, il byte meno significativo dell'ID di periferica (LSB ) , il comando ed il comando negato come da immagine.
sequenza codice IR NEC esteso
Un secondo tipo di codice trasmesso è il "Repeat" che non contiene nè un ID, nè un comando, ma dice alla macchina di ripetere l'ultimo comando ricevuto. esso consta in un impulso di 9ms seguito da uno spazio di 2250us ed un altro impulso di 560us.
nec repeat command
Una classica sequenza in uscita dal telecomando quindi consta di un treno di umpulsi che contiene il dato e poi una sequenza di comandi "repeat" tutti equidistanti a 110ms
sequenza comandi NEC


Apple usa un protocollo NEC modificato, ma facilmente comprensibile:
vengono tramessi un primo impulso è di 9mS, seguito da uno spazio di 4.5ms, il byte più significativo ( EE ) dell'ID di periferica, il byte meno significativo dell'ID di periferica ( 87 ) , il comando ed infine un identificativo ( ID ) del telecomando per permettere alle periferiche di interpretare i comandi che non sono uguali per tutti i telecomandi compatibili ( vedi tabella )

apple remote IR sequence

Key Telecomando venduto separatamente Telecomando Alluminio Telecomando Bianco
Su EE 87 0B 59 EE 87 0A 68  EE 87 0A 15
Giù EE 87 0D 59 EE 87 0C 68  EE 87 0C 15
Sinistra EE 87 08 59 EE 87 09 68  EE 87 09 15
Destra EE 87 07 59 EE 87 06 68  EE 87 06 15
Centro EE 87 5D 59 seguito da
EE 87 04 59
EE 87 5C 68 seguito da by
EE 87 05 68
 EE 87 05 15
Menu EE 87 02 59 EE 87 03 68  EE 87 03 15
Play EE 87 5E 59 seguito da
EE 87 04 59
EE 87 5F 68 seguito da
EE 87 05 68
 N/A


Abbiamo scelto di usare  la sequenza del codice del Telecomando di Alluminio ( colonna centrale ) , che è quella usata anche nei compatibili che si acquistano a basso prezzo ed in base a quella abbiamo scritto la sequenza del codice realtiva.

un'altra cosa che volevamo fornire era la possibiltà di gestire la selezione degli ingressi con un encoder, per cui abbiamo creato una scheda ingressi con selettore a relè pilotato da un un circuito integrato driver del tipo ULN2003.

L'encoder che abbiamo scelto è un encoder in quadratura, che ad ogni scatto fa aprire e chidere i contatti secondo una sequenza precisa data da questa tabella della verità:

tabella verità encoder

come vediamo ruotando in senso orario ( CW clocwise ) prima si troverà nello stato 1 il segnale A e poi il segnale B, mentre ruotando in senso anti orario ( CCW counter-clocwise ) prima si troverà nello stato 1 il segnale B e poi il segnale A.
Per determiare in che direzione si sta muovendo l'encoder la soluzione softwre più rapida è quella di usare una macchina a stati di tipo deterministico, nella quale lo stato successivo dipende non solo dall'input ma dallo stato precendente
Sebbene sembri complesso, il software relativo alla macchina a stati ha meno istruzioni delle parole in corsivo che abbiamo usato per descriverlo: l'output è dato da un or esclusivo ( XOR ) tra lo stato precedente e l'ingresso.


Il motore del potenziometro è un motore in corrente continua e viene pilotato da un ponte ad H realizzato con 4 transistor.
ponte ad H driver motore continua
nota: la scelta dei transistor è ricaduta su quelli nello schema, perchè sopportano tranquillamente la corrente richiesta ed hanno un ottimo rapporto qualità prezzo, nonchè sono di facile reperibiltà.
il potenziometro fornito nel kit è un ALPS RK-16814 a quattro vie che è di ottima qualità e permette di gestire un segnale bilanciato, nel caso si può sostituire con un potenziometro alps RK-27.

Il circuito è dotato del suo circuito raddrizzatore e stabilizzatore e può sfruttare come alimentazione i 6.3V dei filamenti ( che sono la tensione minima a cui può essere alimentato )
Abbiamo scelto di fare un circuito stampato unico con dei tagli che permettessero di spezzarlo a fine saldatura, per semplificare il montaggio.
Importante è anche stare attenti, perchè alcuni componenti sono montati dalla parte opposta.
reicevitore infrarossi per controllo volume e selettore ingressi

Ovviamente fa parte del kit anche il telecomando di cui forniamo il circuito  senza chassis, per lasciare libero ognuno di sbizzarrirsi.

Tale circuito non ha alcuna difficoltà teorica: il tasto attiva il microcontrollore che "spara il pacchetto dati ad esso associato.
La cosa interessante nel software è invece quella di avere utilizzato il watchdog per disattivre il processore quando non viene usato e aumentare la durata della batteria.
Il software è completamente scritto in assembler, per poter rispattare i timing della portante a 38kHz.
Qui vi presentiamo una nostra realizzazione di uno chassis che abbiamo  freato da un pezzo di mogano.
chassis telecomando in legno

qui sotto potete vedere lo schema, la lista componenti e il layout del circuito.
schema selettore ingressi e telecomando IR volume
questa è la lista dei componenti:

Reference(s) Value Footprint
AC_IN1, J1, Motor1, Mute1 Connettore 01x02 Connettore Molex_KK-254_AE-6410-02A
BAT1 Battery Battery Holder_Keystone_2468
C1 2200uF 16V P7.50mm
C2, C3 100nF P5.00mm
C4, C5 15pF P2.50mm
C6, C7, C8 220nF P5.00mm
C9 22uF 10V P2.50mm
D1, D2, D3, D4 1N4007 1N4007
D5, D6, D7, D8,Dt1, Dt2, Dt3, Dt4, Dt5, Dt6 1N4148 1N4148
DOWN1, LEFT1, MENU1, PLAY1, RIGHT1, UP1 SW_SPST pulsante tattile
Dt7 LED LED infrarossi
ENC1, ENC_C1, OUT1, TSOP1, TSOP2, Vol_IN1, Vol_IN2, Vol_OUT1, Vol_OUT2 Conn_01x03_Male Connettore Molex_KK-254_AE-6410-03A
ENC_1 Rotary_Encoder PEC11R-4220F-N0024
Ji1, Ji2, Ji3, Ji4, Ji5 Connettore RCA stereo PCB PJRAS1X2Sxx
K1, K2, K3, K4, K5 G5V-2 Relay_Omron_G5V-2
LD1, LD2, LD3, LD4, LD5, LDM1 LED LED
LEDS1, LEDS2 Conn_01x07_Male Connettore Molex_KK-254_AE-6410-07A
P1 potenziometro Alps 100k 4 vie stereo RK16814MGA0K
Q1, Q3 2N3904 2N3904
Q2, Q4 2N3906 2N3906
R1, R2, R3, R4, R5, R7 10k Ohm Marrone, nero, arancione
R6 150 Ohm Marrone, verde, marrone
RELAY1, RELAY2 Conn_01x06_Male Connettore Molex_KK-254_AE-6410-06A
RL1, RL2, RL3, RL4, RL5, RLM1, Rt1 Resitenza LED * valore che dipende dal LED usato
SW1 SW_DIP_x03 w_switch:dip_3-300
U1 LM7805_TO220 LM7805_TO220
U2 Microcontrollore Microcontrollore programmato e zoccolo
U3 ULN2003 ULN2003
U4 TSOP384xx TSOP53438 TSOP38438
UT1 PIC12F508-IP PIC12F508-IP
Y1 20MHz Cristallo 20 Mhz


e questo il layout della scheda.
layout comtrollo volume infrarossi
per una maggiore flessibiltà il connettore LEDS1 può essere un connettore a 6 poli se si desidera utilizzare solo i LED relativi al selettore di iningressi, oppure a 7 poli se si desidera avere anche il LED per il MUTE sulla scheda dei LED.
Nelle nostre realizzazioni abbiamo usato il connettore a 7 poli e poi con due fili dalla scheda LED abbiamo portato il LED relativo al comando MUTE dove più preferivamo, la scelta è comunque vostra.
Anche la scheda degli ingressi offre alcune possibilità:
si possono montare i connettori RCA direttamente sulla scheda e poi fissarla al pannello posteriore, oppure fissarla al pannello inferiore con le quattro viti e collegarvi con i fili i connettori RCA dal pannello.

Il connettore MUTE1 può pilotare un relè che userete per il comando MUTE ( normalmente va a cortocircuitare le uscite ).

ora veniamo al dip SWITCH.
Esso vi da tre possibilità:
con lo switch 1 si può scegliere se far tornare il potenziometro del volume alla posizione di zero.
con lo switch 2 si può scegliere un tempo iniziale durante il quale l'uscita MUTE1 resta attiva ( comoda per dare circa 30 second di tempo alle valvole di riscaldarsi )
con lo switch 3 si selezione la velocità di rotazione del potenziometro

la realizzazione non presenta difficoltà se non quella della saldatura dei cavi ai connettori che richiede molta pazienza e quella di porre attenzione ai componenti che vanno saldati dalla parte opposta della scheda.