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:
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.
/*
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