CONTROLE REMOTO USANDO TL1838

  Este sketch permite controlar as portas D2, D3 e D4 do arduino usando as teclas 1, 2, 3, 4, 5 e 6 de um controle remoto, da seguinte maneira:

tecla 1: leva a porta D2 para nível lógico HIGH.
tecla 2: leva a porta D3 para nível lógico HIGH.
tecla 3: leva a porta D4 para nível lógico HIGH.
tecla 4: leva as portas D2, D3 e D4 para nível lógico LOW.
tecla 5: leva as portas D2, D3 e D4 para nível lógico HIGH e LOW em sequencia.
tecla 6: leva as portas D2, D3 e D4 para nível lógico HIGH e LOW em sequencia invertida.

Ilustração da montagem do sensor:

Resultado de imagem para controle remoto arduino

  As portas lógicas controladas pelo sketch podem ser usadas para controlar led´s, pontes H, Relês, etc... Em nosso experimento usamos led´s de cores diferentes. Os anodos (perna mais longa) de cada led foram ligados cadaum em uma das portas lógicas. Em seus catodos (perna mais curta), conectamos um resistor de 220 Ohms para cada resistor, os quais conectamos no GND do arduino. Desta maneira foi possível verificar o funcionamento do circuito. 

Sketch usado no projeto:

/*
 Pinagem TL1838 (olhando o sensor de frente):

  1 - porta lógica D11
  2 - GND
  3 - 5v

Teclas do controle e código correspondente:

 tecla 1 = 4278198495
 tecla 2 = 4278231135
 tecla 3 = 4278214815
 tecla 4 = 4278194415
 tecla 5 = 4278227055
 tecla 6 = 4278210735
 */

#include <IRremote.h>

int RECV_PIN = 11;

IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
  Serial.begin(9600);
  // In case the interrupt driver crashes on setup, give a clue
  // to the user what's going on.
  Serial.println("Enabling IRin");
  irrecv.enableIRIn(); // Start the receiver
  Serial.println("Enabled IRin");

  pinMode(2,OUTPUT);
  pinMode(3,OUTPUT);
  pinMode(4,OUTPUT);

}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, DEC);
 
    if(results.value == 4278198495){
      digitalWrite(2,HIGH);
    }
    if(results.value == 4278231135){
      digitalWrite(3,HIGH);
    }
    if(results.value == 4278214815){
      digitalWrite(4,HIGH);
    }
    if(results.value == 4278194415){
      digitalWrite(2,LOW);
      digitalWrite(3,LOW);
      digitalWrite(4,LOW);
    }
    if(results.value == 4278227055){
      digitalWrite(2,HIGH);
      delay(100);
      digitalWrite(2,LOW);
      digitalWrite(3,HIGH);
      delay(100);
      digitalWrite(3,LOW);
      digitalWrite(4,HIGH);
      delay(100);
      digitalWrite(4,LOW);
    }
    if(results.value == 4278210735){
      digitalWrite(4,HIGH);
      delay(100);
      digitalWrite(4,LOW);
      digitalWrite(3,HIGH);
      delay(100);
      digitalWrite(3,LOW);
      digitalWrite(2,HIGH);
      delay(100);
      digitalWrite(2,LOW);
    }
    irrecv.resume(); // Receive the next value
  }
  delay(100);
}

Nenhum comentário:

Postar um comentário