Inicio > Electrónica, Teensy > IR Reader 1.0 (Teensy & Arduino)

IR Reader 1.0 (Teensy & Arduino)

Martes, 14 de diciembre de 2010

Un sencillo lector de códigos IR en Hexadecimal con una placa Teensy 2.0 y programado mediante Arduino. Se puede modificar de manera que añadiendo un LED IR y un botón, guardar el código recibido y emitirlo de nuevo pudiendo hacer asta un mando programable para controlar todos los aparatos con un solo mando.

Código fuente

#include <LiquidCrystal.h>
#include <IRremote.h>
int RECV_PIN = 10;
IRrecv irrecv(RECV_PIN);
decode_results results;
LiquidCrystal lcd(12, 13, 14, 15, 16, 17);
byte ico1[8] = {B00000,B00001,B10001,B01001,B00101,B00000,B00011,B00111};
byte ico2[8] = {B00000,B00000,B00000,B00000,B00000,B00000,B00011,B00111};
byte ico3[8] = {B00000,B10000,B10001,B10010,B10100,B00000,B11000,B11100};
byte ico4[8] = {B00000,B00000,B00000,B00000,B00000,B00000,B11000,B11100};

void setup() {
  lcd.createChar(0, ico1);
  lcd.createChar(1, ico2);
  lcd.createChar(2, ico3);
  lcd.createChar(3, ico4);
  lcd.begin(16, 2);
  lcd.print("IR Reader 1.0");
  lcd.setCursor(0, 1);
  lcd.print("www.curitec.com");
  delay(1500);
  lcd.clear();
  lcd.print("IR Reader 1.0");
  Serial.begin(9600);
  irrecv.enableIRIn();
}

void loop() {
  lcd.setCursor(14, 0);
  lcd.write(0);
  lcd.write(2);
  delay(500);
  lcd.setCursor(14, 0);
  lcd.write(1);
  lcd.write(3);
  delay(500);
if (irrecv.decode(&results)) {
  lcd.setCursor(0, 1);
  if (results.decode_type == NEC) {
      lcd.print("NEC: ");
    } else if (results.decode_type == SONY) {
      lcd.print("SONY: ");
    } else if (results.decode_type == RC5) {
      lcd.print("RC5: ");
    } else if (results.decode_type == RC6) {
      lcd.print("RC6: ");
    } else if (results.decode_type == UNKNOWN) {
      lcd.print("?: "); // Desconocido (UNKNOWN)
    }
  lcd.print(results.value, HEX);
  lcd.print("               "); // Para limpiar
  irrecv.resume();
  }
}

Libraries

IRremote.h (29 KB)

Electrónica, Teensy , , , , ,