Autor Tema: No va el control IR ...  (Leído 2126 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
No va el control IR ...
« en: 30 de Abril de 2005, 04:41:00 »
Estoi trasteando con el protocolo RC5 de philips pero no consigo que ande. E probado con un compatible a los TSOP17xx, creo que se llama TFMS5300 - http://www.alldatasheet.com/datasheet-pdf/pdf/TEMIC/TFMS5300.html - (demodula a 30 khz pero ese no es el problema creo por que le llega la señal), y luego con un IS1U61 - http://www.alldatasheet.com/datasheet-pdf/view/SHARP/IS1U621.html - que este si es ya para 38khz (como los TV, creo ...). Y este código que encontre y modifique para ver en el LCD en vez de el terminal de Win por rs232:


//***************************************************
// CCS Compiler
// Receptor IR (código RC5 de Philips)
//
// Autor : HEILIG Yves ; Editado por RaDoN
//***************************************************

#include "16F877.h"
#fuses XT,NOWDT,NOPROTECT,PUT
#use delay(clock=4000000)
// #use rs232(baud=115200, xmit=PIN_B6, rcv=PIN_B7)


#define REC_IR PIN_B6 // Entrada TSOPxxxx

#include "Dani_LCD.h"

#ORG 0x1F00,0x1FFF {} //for the 8k 16F876/7


//**********************
// Programa Principal
//**********************

main() {

   int1 bit;
   int i, nbit, error;
   byte buffer[2];

   lcd_init();
   printf(lcd_putc,"fReceptor IR: PHILIPS
"Giño;

   while(TRUE)
   {

      buffer[0]=0;
      buffer[1]=0;
      error=0;
      nbit=0;
      i=0;

      while( i++ != 4)
      { // Test si REC_IR au repos prolongé
         if(REC_IR == 0) i=0;
         delay_us (889);
      }

      while(input(REC_IR)==1); // Atiende el el bit START
      delay_us(444); // se posiciona al medio

      while((nbit++ != 13) && (error == 0))
      {
         delay_us (889);

         if(input(REC_IR)==0)
         {
            delay_us (889);
            if(input(REC_IR) != 1) error=1;
            bit=0; // es un 0
         }

         else
         {
            delay_us(889);
            if (input(REC_IR) != 0) error=1;
            bit=1;
         }

         shift_left(buffer,2,bit); // et on le pousse dans le buffer
      }

      if(error) printf(lcd_putc,"fError
"Giño;
      else
      {
         printf(lcd_putc,"%x %x Pulso %d
",buffer[1],buffer[0],buffer[0]);
      }
   }
}

P.D: tb he probado con varios mandos a distancia

Enfurruñado
Si juegas contra el mejor, pierdes como los demás.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: No va el control IR ...
« Respuesta #1 en: 30 de Abril de 2005, 05:20:00 »
Dices que no va pero ¿sabes en qué parte del programa se queda parado?.
Sería importante saber si ha conseguido leer algunos bits y se queda parado esperando el resto, o si ni siquiera ha empezado.
Te recomiendo que pongas algunas líneas en medio del programa que vayan mostrando por el LCD el estado de la situación...

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: No va el control IR ...
« Respuesta #2 en: 30 de Abril de 2005, 06:59:00 »
Ok, voi a probar, pero esque son tantas cosas ... Solo dice "error" jeje. ¿Sera el soft? ¿Será el receptor IR? ¿Sera el mando a distancia? me voi a volver loco ahh!!!

Al menos aver si alguien tiene un soft que sepa que vaya pa descartarlo y fijarme o en el receptor o el mando Flash
Si juegas contra el mejor, pierdes como los demás.

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
RE: No va el control IR ...
« Respuesta #3 en: 30 de Abril de 2005, 10:49:00 »
Pues aprovechando que te aparece el mensaje "ERROR" podrías mostrar también en el LCD el valor de nbit, e incluso los bits leídos hasta ese momento.

Desconectado pocher

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 2568
RE: No va el control IR ...
« Respuesta #4 en: 01 de Mayo de 2005, 06:02:00 »
Comenta las líneas:

if(error)
     printf(lcd_putc,"fError
"
else

... y deja solo la línea:

printf(lcd_putc,"%x %x Pulso %dn",buffer[1],buffer[0],buffer[0]);

Ahora deben aparecer códigos, si estos códigos no varían de una tecla a otra es que el mando que usas no es RC5.

Si el mando no es RC5 verás siempre error, con el programa completo.

Un saludo

Desconectado RaDoN

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1498
RE: No va el control IR ...
« Respuesta #5 en: 01 de Mayo de 2005, 08:10:00 »
Aja pocher, gracias, no se me ocurrió probar eso. Ahora edito el post y digo que tal lo que paso. Y aver si me puedo hacer con un "mando universal" de esos ¿que si que tienen que ir por el código RC5 no? ò ¿como hacen para ser <<universales>>? RollEyes
Si juegas contra el mejor, pierdes como los demás.

Desconectado micro_pepe

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3206
Re: No va el control IR ...
« Respuesta #6 en: 15 de Diciembre de 2008, 19:49:51 »
Hola, estoy con este codigo que posteo Radon, y me ocurre una cosa curiosa, el RC5 es de PHILIPS no? pues con dos mandos de TV de esa marca no funciona, sin embargo con un mando de un TV BLUESKY si funciona :shock:

No me cuadra mucho que los propios inventores del codigo no lo usen.

Un saludo.
Se obtiene más en dos meses interesandose por los demás, que en dos años tratando de que los demás se interesen por ti.

新年快乐     的好奇心的猫死亡


 

anything