Upload
stiva-darcy
View
221
Download
0
Embed Size (px)
DESCRIPTION
Arduino
Citation preview
27/2/2015 ARDUINO+SENSORIR+CTRLREMOTO|GeekAyuda
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22posttitle%20entrytitle%22%20style%3D%22border%3A%200px%3B%20fontsize%3A%2050px%3B% 1/7
arduino controlremoto
ARDUINO+SENSORIR+CTRLREMOTO
EsteproyectonospermitircontrolardispositivosconectadosalatarjetaArduino a travs de una interfaz infrarroja y usando el control dela televisin podremos encender las luces, ventiladores, o lo que se teocurra.
MATERIALES
1TarjetaArduino(Uno,NanooMega)1DetectorInfrarrojoTSOP48381Capacitorde47uF1ControlRemotoIR4Leds
DESCRIPCIN
Arduino. Tarjeta de control programable que nos permitir moldear nuestroproyecto para cada una de nuestras necesidades, para este caso solo usaremoscuatrosalidasyunaentradadigital,enelesquemadeconexinpodremosverquepinesopuertosusaremos, recordemosquepodemosusar cualquierpuertode latarjetasiempreycuandoseadigital.
TSOP4838.Esunreceptorinfrarrojode38kHz,nospermitirrecivirlassealesdelcontrolremoto,paraellopuedenusarcontrolesdeTV,DVDuotrosdelamarcaSony,Samsung,LGoUniversales.
27/2/2015 ARDUINO+SENSORIR+CTRLREMOTO|GeekAyuda
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22posttitle%20entrytitle%22%20style%3D%22border%3A%200px%3B%20fontsize%3A%2050px%3B% 2/7
ESQUEMADECONEXIN
Como se puede ver en el diagrama estamos usandoelPIN2pararecibirlainformacingeneradaporelreceptorIR.
BSQUEDADECDIGOSDELCONTROLREMOTO
Comoprimerpaso tenemosqueobtener loscdigosgeneradospor loscontroles,abrimos un nuevo Scketch en el Software de Arduino y escribimos elsiguientecdigo:
/******************************************/*
#include
27/2/2015 ARDUINO+SENSORIR+CTRLREMOTO|GeekAyuda
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22posttitle%20entrytitle%22%20style%3D%22border%3A%200px%3B%20fontsize%3A%2050px%3B% 3/7
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 tenerinstalada la libreraIRremote,unavezdescargadadebesdescomprimirlaypegartodoelcontenidodentrodelacarpetalibreriesdeArduino.
Cuandoelcompiladornoemitaningnerrorenelcdigo,seraenviadoalatarjetaArduinoydebersabrirelMonitorSerialquecontieneelcompilador,presionasunbotndetucontrolremotoypodrsverenelMonitorSerialelcdigohexadecimalquegeneraelbotnalserpresionado.
27/2/2015 ARDUINO+SENSORIR+CTRLREMOTO|GeekAyuda
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22posttitle%20entrytitle%22%20style%3D%22border%3A%200px%3B%20fontsize%3A%2050px%3B% 4/7
Enelmonitorserialaparecieronloscdigosalpresionarlosbotones1(0xFD609F),2(0xFD906F)y3(0xFD807F).
Por el momento usaremos el control y al receptor infrarrojo como interfaz deusuario, manipularemos el encendido de unos leds conectados a los puertosdigitalesdenuestratarjetaArduino.
Como pueden ver en el diagrama anterior los nodos (+) de losledsestnconectadosalospines8,9y10enlospuertosdigitalesylosctodos().
27/2/2015 ARDUINO+SENSORIR+CTRLREMOTO|GeekAyuda
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22posttitle%20entrytitle%22%20style%3D%22border%3A%200px%3B%20fontsize%3A%2050px%3B% 5/7
AhoracrearemosuncdigoenelcompiladordeArduinoquenospermitaencenderyapagarlosledsdesdeelcontrolremoto,clarousandoloscdigosqueadquirimosenelprogramaanterior.
Considerando que el control remoto es un men de opciones disearemos elcdigodelprogramausandoSwitchCase.
/*********************************************************/*
#include
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()
27/2/2015 ARDUINO+SENSORIR+CTRLREMOTO|GeekAyuda
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22posttitle%20entrytitle%22%20style%3D%22border%3A%200px%3B%20fontsize%3A%2050px%3B% 6/7
{
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()
}
}
27/2/2015 ARDUINO+SENSORIR+CTRLREMOTO|GeekAyuda
data:text/htmlcharset=utf8,%3Ch1%20class%3D%22posttitle%20entrytitle%22%20style%3D%22border%3A%200px%3B%20fontsize%3A%2050px%3B% 7/7
/***********************************************************/*
Sisiguieronlospasosdeestetutorial,ahoritadebenestarprobandoelencendidode sus leds e imaginando donde lo aplicaran, en la siguiente entrada publicarecomoutilizarestassalidasdigitalesparaactivarfocos,ventiladoresocualquierotroelementodemayorpotencia.