- Spiegazione di lavoro:
- Decodifica dei segnali del telecomando IR utilizzando Arduino:
- Descrizione del circuito:
- Codice Descrizione:
In precedenza abbiamo coperto molti tipi di automazioni domestiche utilizzando diverse tecnologie come automazione domestica basata su DTMF, automazione domestica controllata da PC utilizzando Arduino, automazione domestica controllata da Bluetooth. In questo progetto, utilizziamo la comunicazione wireless basata su IR per il controllo degli elettrodomestici. In questo progetto, Arduino viene utilizzato per controllare l'intero processo. Inviamo alcuni comandi al sistema di controllo utilizzando il telecomando IR TV / DVD / MP3 per controllare gli elettrodomestici AC. Dopo aver ricevuto il segnale dal telecomando IR, Arduino invia il relativo segnale ai relè che sono responsabili dell'accensione o dello spegnimento degli elettrodomestici tramite un driver relè.
Spiegazione di lavoro:
Il funzionamento di questo progetto è facilmente comprensibile. Quando premiamo un qualsiasi pulsante del telecomando IR, il telecomando invia un codice sotto forma di treno di impulsi codificati utilizzando una frequenza di modulazione di 38 Khz. Questi impulsi vengono ricevuti dal sensore TSOP1738 e letti da Arduino, quindi Arduino decodifica il treno di impulsi ricevuto in un valore esadecimale e confronta quel valore decodificato con il valore esadecimale predefinito del pulsante premuto. Se si verifica una corrispondenza, Arduino esegue l'operazione relativa e il risultato corrispondente viene visualizzato anche sul display LCD 16x2 utilizzando i comandi appropriati. Qui in questo progetto abbiamo utilizzato 3 lampadine di diversi colori, per dimostrazione che indicano Ventola, Luce e TV.
Ci sono molti tipi di telecomando IR disponibili per diversi dispositivi, ma la maggior parte di essi funziona su un segnale di frequenza di circa 38KHz. Qui in questo progetto controlliamo gli elettrodomestici utilizzando il telecomando IR TV. Per rilevare il segnale remoto IR, utilizziamo il ricevitore IR TSOP1738. Questo sensore TSOP1738 può rilevare il segnale di frequenza 38 Khz. Il funzionamento del telecomando IR e del TSOP1738 può essere trattato in dettaglio in questo articolo: Trasmettitore e ricevitore IR
Componenti:
- Arduino UNO
- TSOP1738
- Telecomando IR TV / DVD
- ULN2003
- Relè 5 volt
- Lampadina con supporto
- Cavi di collegamento
- Tagliere per il pane
- LCD 16x2
- Alimentazione elettrica
- PVT
- IC 7805
Qui in questo progetto abbiamo utilizzato i pulsanti numerici 7, 8 e 9 del telecomando IR, per controllare rispettivamente Ventilatore, Luce e TV e il pulsante ON / OFF (pulsante di accensione) viene utilizzato per accendere e spegnere tutti gli apparecchi contemporaneamente.
Qui abbiamo utilizzato il metodo di commutazione per ACCENDERE e SPEGNERE il singolo elettrodomestico. Metodo di commutazione non è altro che ottenerlo se il pulsante viene premuto anche il numero di volte o il numero dispari di volte. Questo si trova ottenendo il promemoria dopo averlo diviso per 2 (i% 2), se è presente un promemoria, il dispositivo verrà acceso e se il promemoria è 0 verrà spento. Supponiamo che il tasto 7 venga premuto sul telecomando, quindi il telecomando invia un segnale ad Arduino tramite il ricevitore IR TSOP. Quindi Arduino lo decodifica e memorizza il valore decodificato nella variabile dei risultati. Ora la variabile dei risultati ha un valore esadecimale 0x1FE00FF, dopo averlo abbinato al valore esadecimale predefinito della chiave 7 (vedi immagine sopra), Arduino accende la ventola. Ora quando premiamo di nuovo lo stesso tasto (tasto 7), IR invia lo stesso codice. Arduino ottiene lo stesso codice e abbinato allo stesso codice di prima, ma questa volta la ventola è stata disattivata a causa della commutazione del bit (i% 2).
Decodifica dei segnali del telecomando IR utilizzando Arduino:
Di seguito è riportato un elenco di codici di output decodificati remoti di tipo DVD NEC:
Se non conosci l'uscita Decoded per il tuo telecomando IR, puoi trovarla facilmente, segui questi passaggi:
- Scarica la libreria remota IR da qui
- Decomprimilo e posizionalo nella cartella "Librerie" di Arduino. Quindi rinomina la cartella estratta in IRremote.
- Esegui il programma seguente dal tuo Arduino e apri la finestra Serial Monitor nell'IDE di Arduino. Ora premi un pulsante qualsiasi del telecomando IR e vedi l'uscita esadecimale decodificata corrispondente nella finestra Monitor seriale.
* IRremote: IRrecvDemo - dimostra la ricezione di codici IR con IRrecv * Un rilevatore / demodulatore IR deve essere collegato all'ingresso RECV_PIN. * Versione 0.1 luglio 2009 * Copyright 2009 Ken Shirriff * http://arcfn.com * / #include
Il programma sopra è tratto dalla cartella "examples" della libreria IRremote, puoi controllare altri esempi per saperne di più sull'uso del telecomando IR. Ecco come abbiamo decodificato l'uscita del telecomando IR.
Descrizione del circuito:
I collegamenti di questo circuito sono molto semplici qui un display a cristalli liquidi viene utilizzato per visualizzare lo stato degli elettrodomestici che è direttamente collegato ad arduino in modalità 4 bit. I pin dati dell'LCD, ovvero RS, EN, D4, D5, D6, D7 sono collegati al pin digitale arduino numero 6, 7, 8, 9, 10, 11. E il pin di uscita di TSOP1738 è direttamente collegato al pin digitale numero 14 (A) di Arduino. E il pin Vcc è collegato a +5 volt e il pin GND è collegato al terminale di terra del circuito. Per pilotare i relè viene utilizzato anche un driver relè, ovvero ULN2003. I relè SPDT 3 da 5 volt sono usati per controllare LUCE, VENTOLA e TV. E i relè sono collegati al pin arduino numero 3, 4 e 5 tramite il driver del relè ULN2003 per il controllo rispettivamente di LUCE, VENTOLA e TV.
Codice Descrizione:
Nella programmazione parte di questo progetto Prima di tutto nella programmazione includiamo la libreria per telecomando IR che è facilmente reperibile su Google. E definire il pin e dichiarare le variabili.
#includere
Quindi includi un'intestazione per il display a cristalli liquidi e poi definiamo i dati e i pin di controllo per LCD e elettrodomestici.
#includere
Dopo di che dobbiamo inizializzare l'LCD e dare la direzione dei pin che vengono utilizzati per la ventola, la luce e la TV.
void setup () {Serial.begin (9600); lcd.begin (16,2); pinMode (Fan, OUTPUT); pinMode (Light, OUTPUT); pinMode (TV, OUTPUT);
Come già spiegato, sotto una parte del codice viene utilizzata per confrontare il valore esadecimale ricevuto con il codice esadecimale già definito di quel pulsante. Se corrisponde, viene eseguita un'operazione relativa utilizzando le funzioni appropriate fornite nel codice.
void loop () {if (irrecv.decode (& results)) {Serial.println (results.value, HEX); ritardo (100); lcd.setCursor (0,0); lcd.print ("Fan Light TV"); if (results.value == 0x1FE00FF) {i ++; int x = i% 2; digitalWrite (Fan, x);