Autor Tema: Problema interpretando tren de pulsos (16F84A)  (Leído 15215 veces)

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

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema interpretando tren de pulsos (16F84A)
« Respuesta #15 en: 15 de Febrero de 2009, 01:32:27 »
Si, efectivamente tiene un filtro centrado a una frecuencia de creo 38khz. Además es más sensible a los infrarojos que a la luz normal. Probalo con el osciloscopio así nos sacamos la duda de si funciona y luego conectalo a RA4 que es schmitt trigger.

Desconectado chacruna

  • PIC10
  • *
  • Mensajes: 41
Re: Problema interpretando tren de pulsos (16F84A)
« Respuesta #16 en: 15 de Febrero de 2009, 01:57:29 »
Resultados:

Midiendo con el osciloscopio sin el circuito conectado:

Esto me tira cuando no estoy presionando ningún botón. Parece 0V pero si conecto a 5V CC tambien me tira eso (raya de constante).




Esto tira cuando presiono un botón:




-----

Probé conectando el RB4 pero es lo mismo. Pongo el código por las dudas :P

Código: [Seleccionar]
#include <16F84A.h>

#fuses XT,NOWDT,NOPROTECT,PUT
#use delay (clock=4000000)
#use fast_io(a)
#use fast_io(b)

void main() {
      int i=0, bit[2];

      set_tris_a(0);
      set_tris_b(0x10);


      while(1) {
            if(input(PIN_B4)) {
               delay_us(1000);
               if(input(PIN_B4)) {
                  bit[i]=1;
                  while(input(PIN_B4)); //SE QUEDA CLAVADO ACÁ
               }else{
                  bit[i]=0;
               }
               i++;
            if(i==2) {
               output_bit(PIN_A2,bit[0]);
               output_bit(PIN_A3,bit[1]);
               delay_ms(1500);
               output_bit(PIN_A2,0);
               output_bit(PIN_A3,0);
               delay_ms(500);
               i=0;
            }
      }
}


Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema interpretando tren de pulsos (16F84A)
« Respuesta #17 en: 15 de Febrero de 2009, 02:12:11 »
Yo me refería al puerto A, el  pin RA4 es schmitt trigger.
La tarjeta de sonido no puede leer voltajes de continua porque tiene un ancho de banda de 20hz hasta 20Khz. por eso te muestra 0 cuando no presionas ningún botón.


Desconectado chacruna

  • PIC10
  • *
  • Mensajes: 41
Re: Problema interpretando tren de pulsos (16F84A)
« Respuesta #18 en: 15 de Febrero de 2009, 02:24:22 »
Yo creo que el problema es el receptor IR. Lo que me inquieta es que a los dos le suceda lo mismo y eso que nada que ver uno con el otro.

De todos modos quizas andan bien y necesito un integradito que me convierta lo que me tira a 0V y +5V. Existe algo como eso??
« Última modificación: 15 de Febrero de 2009, 02:30:01 por chacruna »

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema interpretando tren de pulsos (16F84A)
« Respuesta #19 en: 15 de Febrero de 2009, 02:39:27 »
El circuito para adaptar los niveles lo podés hacer con un comparador. Alguno que funcione con fuente simple solamente, para esto puedes usar también un operacional. En la entrada + del comparador pones la salida del sensor. luego haces un divisor resistivo para tener 2,5V y lo conectas a la pata -, La salida del comparador la pones al pin de entrada del pic.
O sino alguna compuerta con schmitt trigger.

Desconectado chacruna

  • PIC10
  • *
  • Mensajes: 41
Re: Problema interpretando tren de pulsos (16F84A)
« Respuesta #20 en: 15 de Febrero de 2009, 02:53:02 »
Uff, por algun motivo lei que el Schmitt Trigger era el pin B4.

---

Haciendo mejor las cosas probé con A4 como entrada pero lamentablemente es la misma historia.


El led que está en B0 se prende y no se apaga nunca. (ver comentarios en codigo).

Código: [Seleccionar]
#include <16F84A.h>

#fuses XT,NOWDT,NOPROTECT,PUT
#use delay (clock=4000000)
#use fast_io(a)
#use fast_io(b)

void main() {
      int i=0, bit[2];

      set_tris_b(0);
      set_tris_a(0x10);


      while(1) {
            if(input(PIN_A4)) {
               delay_us(1000);
               if(input(PIN_A4)) {
                  bit[i]=1;
                  while(input(PIN_A4)) {
                     output_high(PIN_B0); // LED CONTROL                     
                  }
                  output_low(PIN_B0); // SI NO SE APAGA ES QUE NO SALE DEL BUCLE
               }else{
                  bit[i]=0;
               }
               i++;
            }else {
               output_low(PIN_B0);
            }
            if(i==2) {
               output_bit(PIN_B2,bit[0]);
               output_bit(PIN_B3,bit[1]);
               delay_ms(1500);
               output_bit(PIN_B2,0);
               output_bit(PIN_B3,0);
               delay_ms(500);
               i=0;
            }
      }
}

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema interpretando tren de pulsos (16F84A)
« Respuesta #21 en: 15 de Febrero de 2009, 03:03:01 »
Debe ser un problema con los niveles de voltaje. sería ideal un osciloscopio de verdad para saber que es lo que hay a la salida del sensor. Con el osciloscopio de la placa de sonido se puede ver si hace algo pero no la amplitud de los pulsos ya que ésta está limitada a +-1V y lo que en teoría le está metiendo es de 0 a 5V, por lo que no podemos ver si llega esos valores. Va a ser mejor que te des un respiro y luego lo agarras con  mas paciencia. Suerte. Hasta pronto

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema interpretando tren de pulsos (16F84A)
« Respuesta #22 en: 15 de Febrero de 2009, 03:10:14 »
¿Estarás conectando bien el sensor, tenes el datasheet con la indicación de los pines?

Desconectado chacruna

  • PIC10
  • *
  • Mensajes: 41
Re: Problema interpretando tren de pulsos (16F84A)
« Respuesta #23 en: 15 de Febrero de 2009, 03:17:33 »
No encontre el datasheet de ninguno, pero era bastante intuitivo (aparte el osciloscopio algo concreto muestra).

Uno de los sensores era asi:

Cable rojo = +5V
Cable pelado = Gnd
Cable Blanco = Datos.

El otro:

Un cable violeta separado = Datos
De los dos cables unidos: Blanco = +5V y pelado = GND

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema interpretando tren de pulsos (16F84A)
« Respuesta #24 en: 15 de Febrero de 2009, 03:26:34 »
EL tema de que muestre algo en el osciloscopio no se si es indicio de que funcione correctamente. En que escala lo tenías porque si anduviese bien te tendría que haber recortado la onda en +-1V. ya que le estás metiendo de 0 a 5v que sería un valor medio de 2.5, por lo tanto la placa vería +-2.5V. Si vés valores menores en amplitud de +-1 vas a tener que tratar de medir bien con algún osciloscopio prestado. Y adaptar bien los niveles con un comparador.

El control remoto que usas tiene las pilas bien cargadas?

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema interpretando tren de pulsos (16F84A)
« Respuesta #25 en: 15 de Febrero de 2009, 03:28:59 »
Además cuando hiciste las primeras pruebas los conectaste al RB4 configurado como salida y no se que puede haber pasado. Si puedes, consigue otro sensor.

Desconectado chacruna

  • PIC10
  • *
  • Mensajes: 41
Re: Problema interpretando tren de pulsos (16F84A)
« Respuesta #26 en: 15 de Febrero de 2009, 03:32:21 »
Voy a comprar un sensor conocido y probar.

Hasta pronto pablo, gracias!!

Desconectado chacruna

  • PIC10
  • *
  • Mensajes: 41
Re: Problema interpretando tren de pulsos (16F84A)
« Respuesta #27 en: 15 de Febrero de 2009, 05:19:38 »
5:17am, la obsesion ganó de nuevo pablo!!

Soy un pelotu**, me puse a mirar imagenes en internet y decidí arriesgar un sensor. Puse a Vcc el que estaba en datos y viceversa. FUNCO!!! ajjajajaja

Mil gracias pablo!

Desconectado pablomanieri

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 639
Re: Problema interpretando tren de pulsos (16F84A) (SOLUCIONADO)
« Respuesta #28 en: 15 de Febrero de 2009, 08:43:56 »
Bien   :-/ . Es el problema de no contar con las hojas de datos. Y dar por sentado cosas que parecen evidentes pero no. Lo que es loco es que le chingaste en los dos sensores. Si algo tiene que salir mal va a salir mal. :).



Desconectado chacruna

  • PIC10
  • *
  • Mensajes: 41
Re: Problema interpretando tren de pulsos (16F84A)
« Respuesta #29 en: 16 de Febrero de 2009, 21:54:57 »
Hola gente, vuelvo al tema. Ya solucionado el tema de la adquisicion de datos del sensor, paso a comentarles mi nuevo problemita :P

Arme un codigo que prende 7 leds segun la señal que reciba, el problema q tengo es que muchos botones reciben el mismo codigo y muchas veces el mismo boton genera codigos diferentes.

Dejo una imagen con dos señales de botones diferentes (osciloscopio / placa de sonido).



Mi idea sería que la señal de arriba sea:  00110001000 y la de abajo: 01010001000 (ya se que son mas bits que la cantidad de LEDs q tengo conectados, pero por el momento estoy probando.


Nota: el sensor invierte la señal.

Código: [Seleccionar]
#include <16F84A.h>

#fuses XT,NOWDT,NOPROTECT,PUT
#use delay (clock=4000000)
#use fast_io(a)
#use fast_io(b)

void main() {
      int i=0, bit[7];

      set_tris_a(0);
      set_tris_b(0x10);

      while(1) {
            do {
               while(input(PIN_B4));

               delay_us(900);
               if(!input(PIN_B4)) {
                  bit[i]=1;
               }else {
                  bit[i]=0;
               }
               i++;
            }while(i<7);

            if(i==7) {
               output_bit(PIN_A2,bit[0]);
               output_bit(PIN_A3,bit[1]);
               output_bit(PIN_B0,bit[2]);
               output_bit(PIN_B1,bit[3]);
               output_bit(PIN_B2,bit[4]);
               output_bit(PIN_A1,bit[5]);
               output_bit(PIN_A0,bit[6]);
               delay_ms(500);
               output_bit(PIN_A2,0);
               output_bit(PIN_A3,0);
               output_bit(PIN_B0,0);
               output_bit(PIN_B1,0);
               output_bit(PIN_B2,0);
               output_bit(PIN_A1,0);
               output_bit(PIN_A0,0);
               i=0;
            }
      }
}

« Última modificación: 17 de Febrero de 2009, 11:34:39 por chacruna »


 

anything