Вы находитесь на странице: 1из 7

27/2/2015

ARDUINO+SENSORIR+CTRLREMOTO|GeekAyuda

ARDUINO+SENSORIR+
CTRLREMOTO
arduino

controlremoto

Esteproyectonospermitircontrolardispositivosconectadosalatarjeta
Arduino a travs de una interfaz infrarroja y usando el control de
la televisin podremos encender las luces, ventiladores, o lo que se te
ocurra.
MATERIALES
1TarjetaArduino(Uno,NanooMega)
1DetectorInfrarrojoTSOP4838
1Capacitorde47uF
1ControlRemotoIR
4Leds
DESCRIPCIN
Arduino. Tarjeta de control programable que nos permitir moldear nuestro
proyecto para cada una de nuestras necesidades, para este caso solo usaremos
cuatrosalidasyunaentradadigital,enelesquemadeconexinpodremosverque
pines o puertos usaremos, recordemos que podemos usar cualquier puerto de la
tarjetasiempreycuandoseadigital.
TSOP4838.Esunreceptorinfrarrojode38kHz,nospermitirrecivirlasseales
delcontrolremoto,paraellopuedenusarcontrolesdeTV,DVDuotrosdelamarca
Sony,Samsung,LGoUniversales.

data:text/htmlcharset=utf8,%3Ch1%20class%3D%22posttitle%20entrytitle%22%20style%3D%22border%3A%200px%3B%20fontsize%3A%2050px%3B%

1/7

27/2/2015

ARDUINO+SENSORIR+CTRLREMOTO|GeekAyuda

ESQUEMADECONEXIN

Como

se

puede

ver

en

el

diagrama

estamos

usando

elPIN2pararecibirlainformacingeneradaporelreceptorIR.

BSQUEDADECDIGOSDELCONTROLREMOTO
Como primer paso tenemos que obtener los cdigos generados por los controles,
abrimos un nuevo Scketch en el Software de Arduino y escribimos el
siguientecdigo:
/******************************************/*
#include<IRremote.h>
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22posttitle%20entrytitle%22%20style%3D%22border%3A%200px%3B%20fontsize%3A%2050px%3B%

2/7

27/2/2015

ARDUINO+SENSORIR+CTRLREMOTO|GeekAyuda

intReceptorIR=2
IRrecvirrecv(ReceptorIR)
decode_resultsCodigo
voidsetup()
{
Serial.begin(9600)
irrecv.enableIRIn()
}
voidloop()
{
if(irrecv.decode(&Codigo))
{
Serial.print("0x")
Serial.println(Codigo.value,HEX)
delay(50)
irrecv.resume()
}
}
/******************************************/*
Para que el compilador pueda correr sin problemas este cdigo, debes tener
instalada la librera IRremote, una vez descargada debes descomprimirla y pegar
todoelcontenidodentrodelacarpetalibreriesdeArduino.
Cuandoelcompiladornoemitaningnerrorenelcdigo,seraenviadoalatarjeta
ArduinoydebersabrirelMonitorSerialquecontieneelcompilador,presionasun
botndetucontrolremotoypodrsverenelMonitorSerialelcdigohexadecimal
quegeneraelbotnalserpresionado.

data:text/htmlcharset=utf8,%3Ch1%20class%3D%22posttitle%20entrytitle%22%20style%3D%22border%3A%200px%3B%20fontsize%3A%2050px%3B%

3/7

27/2/2015

ARDUINO+SENSORIR+CTRLREMOTO|GeekAyuda

Enelmonitorserialaparecieronloscdigosalpresionarlosbotones1(0xFD609F),
2(0xFD906F)y3(0xFD807F).
Por el momento usaremos el control y al receptor infrarrojo como interfaz de
usuario, manipularemos el encendido de unos leds conectados a los puertos
digitalesdenuestratarjetaArduino.

Como pueden ver en el diagrama anterior los nodos (+) de los


ledsestnconectadosalospines8,9y10enlospuertosdigitalesylosctodos(
).

data:text/htmlcharset=utf8,%3Ch1%20class%3D%22posttitle%20entrytitle%22%20style%3D%22border%3A%200px%3B%20fontsize%3A%2050px%3B%

4/7

27/2/2015

ARDUINO+SENSORIR+CTRLREMOTO|GeekAyuda

AhoracrearemosuncdigoenelcompiladordeArduinoquenospermitaencender
yapagarlosledsdesdeelcontrolremoto,clarousandoloscdigosqueadquirimos
enelprogramaanterior.
Considerando que el control remoto es un men de opciones disearemos el
cdigodelprogramausandoSwitchCase.

/*********************************************************/*
#include<IRremote.h>
intReceptorIR=2
intLed1=8
intLed2=9
intLed3=10
IRrecvirrecv(ReceptorIR)
decode_resultsCodigos
voidsetup()
{
Serial.begin(9600)
irrecv.enableIRIn()
pinMode(Led1,OUTPUT)
pinMode(Led2,OUTPUT)
pinMode(Led3,OUTPUT)
}
voidloop()
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22posttitle%20entrytitle%22%20style%3D%22border%3A%200px%3B%20fontsize%3A%2050px%3B%

5/7

27/2/2015

ARDUINO+SENSORIR+CTRLREMOTO|GeekAyuda

{
if(irrecv.decode(&Codigos))
{
switch(Codigos.value)
{
case0xFD609F://codigoboton1
digitalWrite(Led1,HIGH)//EncenderLed1

break
case0xFD906F://codigoboton2
digitalWrite(Led2,HIGH)//EncenderLed2

break

case0xFD807F://codigoboton3
digitalWrite(Led3,HIGH)//EncenderLed3

break

case0xFD902F://codigoboton4
digitalWrite(Led1,LOW)//ApagarLed1
break
case0xFD912F://codigoboton5
digitalWrite(Led2,LOW)//ApagarLed2
break

case0xFD805F://codigoboton6
digitalWrite(Led3,LOW)//ApagarLed3
break
}
irrecv.resume()
}
}
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22posttitle%20entrytitle%22%20style%3D%22border%3A%200px%3B%20fontsize%3A%2050px%3B%

6/7

27/2/2015

ARDUINO+SENSORIR+CTRLREMOTO|GeekAyuda

/***********************************************************/*
Sisiguieronlospasosdeestetutorial,ahoritadebenestarprobandoelencendido
de sus leds e imaginando donde lo aplicaran, en la siguiente entrada publicare
comoutilizarestassalidasdigitalesparaactivarfocos,ventiladoresocualquierotro
elementodemayorpotencia.

data:text/htmlcharset=utf8,%3Ch1%20class%3D%22posttitle%20entrytitle%22%20style%3D%22border%3A%200px%3B%20fontsize%3A%2050px%3B%

7/7

Оценить