controle remoto ir no arduino

Upload: betting

Post on 06-Jul-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 Controle Remoto IR No Arduino

    1/4

    2/1/2016 Arduino e Cia: Controle remoto IR no Arduino

    http://www.arduinoecia.com.br/2013/09/controle-remoto-ir-no-arduino.html 1/4

    Controle remoto IR no Arduino

    Já vimos aqui no  Arduino e Cia como controlar remotamente o Arduino usando bluetooth (ainda não viu ? então

    veja o artigo Acionando portas do Arduino usando Android e bluetooth).

    Hoje vou apresentar um outro método para controle remoto das portas do Arduino Uno R3, desta vez usando

    um Kit Controle Remoto IR, mostrado na foto abaixo, que chegou hoje da FILIPEFLOP  :

    O kit é composto por 1 módulo receptor IR, 1 led infravermelho, 1 cabo de conexão e 1 controle remoto (com

    bateria CR2025).

    No exemplo de hoje, vou focar na recepção do sinal do controle remoto, acendendo e apagando leds, conforme

    a sequência abaixo :

    Tecla 1  : Acende led vermelho

    Tecla 2  : Apaga led vermelho

    Tecla 4  : Acende led verde

    Tecla 5  : Apaga led verde

    Tecla 9  : Apaga os 2 leds

    Entendendo o principio de funcionamento do receptor IR, fica fácil controlar qualquer porta do Arduino e partir 

    para o acionamento de relés, motores e outros dispositivos.

    Atualizado :  Veja também neste outro artigo  como utilizar o controle remoto IR para controlar um módulo relé

    4 canais.

     A ligação do módulo receptor IR segue o esquema mostrado na imagem abaixo, à esquerda, que consiste na

    ligação dos pinos do módulo à porta 11 do Arduino (sinal), 5v e GND. Na imagem da direita, podemos ver o

    módulo em funcionamento, com um led que pisca quando o módulo está recebendo sinais infravermelhos :

    Circuito Arduino e módulo IR infravermelho

    http://4.bp.blogspot.com/-90Sd2J-vaeI/UiqPNH-fvnI/AAAAAAAABJM/DZgJbgoKhBY/s1600/DSC01943+(C%C3%B3pia).JPGhttp://4.bp.blogspot.com/-90Sd2J-vaeI/UiqPNH-fvnI/AAAAAAAABJM/DZgJbgoKhBY/s1600/DSC01943+(C%C3%B3pia).JPGhttp://4.bp.blogspot.com/-90Sd2J-vaeI/UiqPNH-fvnI/AAAAAAAABJM/DZgJbgoKhBY/s1600/DSC01943+(C%C3%B3pia).JPGhttp://4.bp.blogspot.com/-90Sd2J-vaeI/UiqPNH-fvnI/AAAAAAAABJM/DZgJbgoKhBY/s1600/DSC01943+(C%C3%B3pia).JPGhttp://4.bp.blogspot.com/-90Sd2J-vaeI/UiqPNH-fvnI/AAAAAAAABJM/DZgJbgoKhBY/s1600/DSC01943+(C%C3%B3pia).JPGhttp://4.bp.blogspot.com/-90Sd2J-vaeI/UiqPNH-fvnI/AAAAAAAABJM/DZgJbgoKhBY/s1600/DSC01943+(C%C3%B3pia).JPGhttp://www.arduinoecia.com.br/2013/03/acionando-portas-do-arduino-usando.htmlhttp://www.arduinoecia.com.br/2013/03/acionando-portas-do-arduino-usando.htmlhttp://www.arduinoecia.com.br/2013/03/acionando-portas-do-arduino-usando.htmlhttp://www.arduinoecia.com.br/2013/10/modulo-rele-4-canais-e-controle-remoto.htmlhttp://4.bp.blogspot.com/-90Sd2J-vaeI/UiqPNH-fvnI/AAAAAAAABJM/DZgJbgoKhBY/s1600/DSC01943+(C%C3%B3pia).JPGhttp://www.filipeflop.com/http://www.filipeflop.com/pd-6b86d-kit-controle-remoto-ir.html?ct=&p=1&s=1http://www.filipeflop.com/pd-6b58d-arduino-uno-r3-cabo-usb.htmlhttp://www.arduinoecia.com.br/2013/03/acionando-portas-do-arduino-usando.html

  • 8/17/2019 Controle Remoto IR No Arduino

    2/4

    2/1/2016 Arduino e Cia: Controle remoto IR no Arduino

    http://www.arduinoecia.com.br/2013/09/controle-remoto-ir-no-arduino.html 2/4

    Para o circuito, vamos utilizar 2 leds, 2 resistores de 330 ohms e o receptor IR, tomando o cuidado de observar 

    a ligação correta dos pinos do módulo, evitando a queima do componente :

    Criei um programa que faz a leitura do sinal IR recebido, e com base no valor lido, aciona as portas 5 e 7, onde

    estão ligados os leds. Esse programa também apresenta no monitor serial os valores lidos pelo receptor IR :

    http://3.bp.blogspot.com/-2QhCQnwdt5o/UiqSXoMe8GI/AAAAAAAABJY/D-PbDylpPGo/s1600/modulo+-+pinagem.jpghttp://1.bp.blogspot.com/-Svce0iMo9FM/U36XFhVrfyI/AAAAAAAACPA/f7r2P4GvhFU/s1600/IR+Leds.jpg

  • 8/17/2019 Controle Remoto IR No Arduino

    3/4

    2/1/2016 Arduino e Cia: Controle remoto IR no Arduino

    http://www.arduinoecia.com.br/2013/09/controle-remoto-ir-no-arduino.html 3/4

    Desta forma consigo descobrir os valores, em hexadecimal, do sinal recebido por todas as teclas do controle

    remoto. No programa, usei os valores FF30CF (Tecla 1), FF18E7 (tecla 2), FF10EF (tecla 4), FF38C7 (tecla 5),

    e FF52AD (tecla 9).

    Finalmente, no loop, eu testo o valor recebido pelo receptor IR, e com alguns comandos IF  eu verifico qual tecla

    foi acionada, acendendo e apagando o led correspondente. Usei a tecla 9 para apagar os 2 leds de uma só vez.

    Para este programa, vamos utilizar a biblioteca IRremote, que voce pode baixar clicando aqui  :

      1

    2

    3

    4

    5

    6

    7

    8

    910

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    2122

    23

    24

    25

     // Programa : Teste Controle Remoto IR

     // Autor : Arduino e Cia

    #include

    int  RECV_PIN = 11;

    float  armazenavalor;

    int  pinoledvermelho = 5;

    int  pinoledverde = 7;

    IRrecv irrecv(RECV_PIN);

    decode_results results;

    void  setup()

    {

    pinMode(pinoledvermelho, OUTPUT);

    pinMode(pinoledverde, OUTPUT);

    Serial.begin(9600);

    irrecv.enableIRIn(); // Inicializa o receptor IR

    }

    void  loop()

    {

    if  (irrecv.decode(&results))

    {

    https://github.com/z3t0/Arduino-IRremotehttp://3.bp.blogspot.com/-EcI1l-JEoTE/UiqWP17aykI/AAAAAAAABJ0/Ynhkkth3Gw4/s1600/serial+monitor.jpg

  • 8/17/2019 Controle Remoto IR No Arduino

    4/4

    2/1/2016 Arduino e Cia: Controle remoto IR no Arduino

    http://www.arduinoecia.com.br/2013/09/controle-remoto-ir-no-arduino.html 4/4

    26

    27

    28

    29

    30

    31

    32

    33

    34

    3536

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

      Serial.print("Valor lido : ");

    Serial.println(results.value, HEX);

    armazenavalor = (results.value);

    if  (armazenavalor == 0xFF30CF) //Verifica se a tecla 1 foi acionada

    {

    digitalWrite(pinoledvermelho, HIGH);  //Acende o led vermelho

    }

    if  (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada

    {

    digitalWrite(pinoledvermelho, LOW); //Apaga o led vermelho}

    if  (armazenavalor == 0xFF10EF) //Verifica se a tecla 4 foi acionada

    {

    digitalWrite(pinoledverde, HIGH); //Acende o led verde

    }

    if  (armazenavalor == 0xFF38C7) //Verifica se a tecla 5 foi acionada

    {

    digitalWrite(pinoledverde, LOW); //Apaga o led verde

    }

    if  (armazenavalor == 0xFF52AD) //Verifica se a tecla 9 foi acionada

    {

    digitalWrite(pinoledvermelho, LOW); //Apaga todos os leds

    digitalWrite(pinoledverde, LOW);

    }

    irrecv.resume(); //Le o próximo valor

    }

    }