arduino + sensor ir + ctrl remoto _ geek ayuda

Upload: stiva-darcy

Post on 07-Oct-2015

221 views

Category:

Documents


0 download

DESCRIPTION

Arduino

TRANSCRIPT

  • 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.