Controllo da telecomando

SOMMARIO

Si propone di realizzare un controllo remoto per piccoli elettrodomestici (luci, ventilatori da soffitto, TV, ecc.) con un assorbimento massimo di circa 5A (cioè circa 1kWatt), utilizzando un telecomando ad Infrarossi, di cui si memorizza un comando (per esempio il POWER ON/OFF). La soluzione si caratterizza per i minimi ingombri e per costi e consumi irrisori.

PRINCIPALI MATERIALI UTILIZZATI

PIC16F684-I/P Microchip - MCU 8 Bit, Flash, 20 MHz, 3.5 KB, 256 EEPROM
MOC3020 Fotoaccoppiatore, Uscita Triac, DIP, Non Zero Crossing, 400 V
PE014F24 Relè di Alimentazione, 24 VDC, 5A, PE Series, Bistabile
IR Receiver Infrared Radiation Module 38KHz

Con riferimento alla Fig.2 del il post Alimentazione e controllo senza trasformatore di tensione, opportunamente modificato, si propone lo schema del Ricevitore ad Infrarossi di Fig.1.

Fig.1

A partire dallo schema di Fig.1, si è cercato di realizzare un layout di ingombri particolarmente contenuti, giungendo a due soluzioni che possono essere integrate in una presa Schuko (vedere Fig.2) o in modulo di una presa elettrica generica (vedere Fig.3 formata da due semi-circuiti da alloggiare uno sull'altro).

Fig.2 Fig.3

Il circuito di Fig.2 ha un diametro di circa 41mm, mentre il circuito di Fig.3 è formato da due sottocircuiti di misure 41 x 20,5 mm. Il circuito di Fig.3 è particolarmente interessante, perchè può avere la realizzazione di Fig.4 o di Fig.5,   integrandosi quest'ultima negli ingombri di un frutto di una presa elettrica.

Fig.4


Fig.5

DISCUSSIONE

Il microcontrollore possiede una memoria EEPROM nella quale memorizzare la sequenza del comando infrarosso di un telecomando generico con portante a 38kHz. Il ricevitore mantiene la sua uscita nello stato HIGH in assenza di segnale. Quando viene illuminato da un telecomando con portante a 38kHz (frequenza comune, per esempio i telecomandi di un TV Samsung, di un lettore DVD United e di una lampada ventilatore di design lo pilotano tranquillamente) registra un segnale binario, in cui l'informazione è memorizzata nella durata temporale del segnale (generalmente nello stato LOW). Quando la sequenza è inviata, continuando a premere il pulsante del telecomando, il segnale viene ripetuto o viene ripetuta una sequenza non significativa.
Il software riconosce la partenza del segnale da acquisire quando il sensore riceve la prima transizione da HIGH a LOW (per minimizzare i consumi il microcontrollore è posto nella condizione di stand-by con l'istruzione sleep e il piedino di lettura del sensore Infrarosso è collegato all'ingresso RA2 su cui è abilitato la funzione di interrupt).
Con la transizione HIGH-LOW che "sveglia" il Ricevitore, parte una sequenza di LOW e HIGH (che nel seguito chiameremo impropriamente Bit), nella cui durata è codificato il codice del tasto del telecomando, differente per ogni tasto. Ad ogni Bit è assegnata una locazione di memoria nella RAM del microcontrollore da h'22' a h'7F' per un totale di 94 Bit (dovrebbero essere sufficienti per discriminare il tasto di un qualunque telecomando). Il Microcontrollore conta per quanto tempo dura il Bit (nelle locazioni di indirizzo pari nello stato LOW, nelle locazioni di indirizo dispari nello stato HIGH); alcuni conteggi (generalmente i fine sequenza) possono genrare un overflow , cioè un conteggio maggiore di 255. Di solito, ciò non pregiudica il riconoscimento del tasto. Per telecomandi con Bit di durata lunga può essere necessario di ridefinire il contatore della routine PAUSE, per aumentare il tempo di campionamento del conteggio temporale.

MODALITA' DI FUNZIONAMENTO

Se si alimenta il circuito con il tasto di programmazione (Butt sul pin RA0 di Fig.1) premuto, il microcontrollore entra nella modalità di programmazione e attende di leggere il tasto del telecomando da memorizzare (per esempio il POWER ON/OFF del televisore), facendo lampeggiare il led di programmazione. A questo punto si può rilasciare il tasto di programmazione e si deve illuminare il sensore Infrarosso con il segnale del tasto da memorizzare. Alla ricezione del segnale, il led si spegne per riaccendersi una volta in modo prolungato al completamento della procedura di acquisizione del tasto di comando. Il relay è posto nella condizione di contatto aperto e il microcontrollore va nello stato di stand-by, attendendo comandi dal telecomando. Se la memorizzazione del comando è corretta, solo premendo il tasto memorizzato si ha una breve accensione del led e una commutazione del relay alternativamente aperto/chiuso, mentre tutti gli altri tasti non danno luogo ad alcuna azione.

APPLICAZIONI

Un'applicazione classica di questo dispositivo è l'alimentazione/disalimentazione del televisore (ed altri accessori multimediali, come decoder, lettori DVD, ecc. collegati alla stessa presa) con il comando POWER ON/OFF del telecomando del televisore, eliminando i consumi di stand-by di questi elettrodomestici (in stand-by il dispositivo consuma poco più di 1 milliWatt).
Un'altra applicazione è quella, per esempio, di accendere luci, ventilatori da soffitto o qualunque altro elettrodomentico che singolarmente assorbano meno di 1kWatt, con lo stesso telecomando del televisore, adibendo a tale scopo dei tasti altrimenti non usati (ce n'è sempre qualcuno che è non mai usato per comandare il televisore).

PROGRAMMAZIONE E TEST

A partire dal codice proposto nel post  Alimentazione e controllo senza trasformatore di tensione, opportunamente modificato, si ottiene una versione funzionante, per lo schema di Fig.1, qui di seguito mostrata.

Nessun codice disponibile