Autor Tema: Problemas con Sensor IR - PIC, solo Puedo usar una entrada de 6  (Leído 3490 veces)

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

Desconectado Mushoi

  • PIC10
  • *
  • Mensajes: 11
Problemas con Sensor IR - PIC, solo Puedo usar una entrada de 6
« en: 06 de Agosto de 2018, 13:02:23 »
Actualmente me encuentro realizando un proyecto el cual consiste en detectar personas u objetos y en base a su presencia se realizara una determinada acción, el problema al que me enfrento es físico al momento de conectar los sensores a sus determinadas entradas en el PIC solamente la entrada RB0 me permite conectarla normalmente, es decir, solamente puedo conectar esa entrada para que funcione, si conecto cualquier otra o si la cambio entre las demás entradas del puertoB se crea una especie de cortocircuito o algo que obliga al sensor a desactivarse, ya revise usando un Multimetro para revisar el voltaje que manda y en la entrada en RB0 es normal, en las demas el voltaje oscila entre 0,400 a 0,300 mv, al usar botones con un arreglo pull-down los cambios programados si son efectuados, Cual creen que podria ser la causa?,

Materiales:
PIC16F887
Receptor Infrarojo TSOP1838 metal case
Transistor 2n3906
resistencia de 1k
capacitor 470 uF
led IR383
resistencia de 330

Programador:
MikroC Pro for PIC
« Última modificación: 06 de Agosto de 2018, 13:38:17 por Mushoi »

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Problemas con Sensor IR - PIC, solo Puedo usar una entrada de 6
« Respuesta #1 en: 06 de Agosto de 2018, 14:24:32 »
Que tal Mushoi,

Observando tu código, veo que el problema radica en que solamente estas declarando el puerto RB0 como entrada y RB1 al RB7 como salida.
En tu código tienes:
TRISB = 1;

Pero debería ser:
TRISB = 0xFF;   'Define todo el puerto B como entrada

También tienes que eliminar:
PORTB = 0;

Ya que el puerto es de entrada y no puedes escribir en el puerto para sacar un dato.

Saludos

elreypic.


Desconectado Mushoi

  • PIC10
  • *
  • Mensajes: 11
Re:Problemas con Sensor IR - PIC, solo Puedo usar una entrada de 6
« Respuesta #2 en: 06 de Agosto de 2018, 16:04:55 »
Muchas gracias elreydelpic2 por responder a mi aporte soy algo relativamente nuevo en esto pero según tengo entendido el apartado que me comentas que debo eliminar se utiliza para inicializar el puerto, es decir, todas las entradas en el Puerto B a 0, en otras palabras, que se encuentren apagadas, para que reciban el cambio de 1 a 0, no se si este del todo en lo correcto

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Problemas con Sensor IR - PIC, solo Puedo usar una entrada de 6
« Respuesta #3 en: 06 de Agosto de 2018, 17:10:58 »
Muchas gracias elreydelpic2 por responder a mi aporte soy algo relativamente nuevo en esto pero según tengo entendido el apartado que me comentas que debo eliminar se utiliza para inicializar el puerto, es decir, todas las entradas en el Puerto B a 0, en otras palabras, que se encuentren apagadas, para que reciban el cambio de 1 a 0, no se si este del todo en lo correcto

El registro que define los puertos ocmo entrada o salida es el TRIS, o sea que una vez que pones el TRISB = 0xFF, el puerto se define como entrada, por lo tanto el PORTB ya no tiene efecto. Puedes dejar el PORTB = 0, pero este no tiene ningun efecto. Lo importante es colocar el TRISB = 0xFF.

elreypic.

Desconectado Mushoi

  • PIC10
  • *
  • Mensajes: 11
Re:Problemas con Sensor IR - PIC, solo Puedo usar una entrada de 6
« Respuesta #4 en: 06 de Agosto de 2018, 18:00:34 »
Muchas gracias reydelpic2 hice lo que me comentaste y las entradas ya las puedo usar con normalidad, ese consejo en realidad fue de ayuda, solamente que ahora presento un problema con las salidas, si analizas el programa que esta adjunto veras que se trata de accionar solamente cuando el sensor detecte una presencia, bueno ahora lo que sucede es que se encienden con normalidad dos estados y después se quedan en un estado alto para siempre no solamente los primeros 2 estados sino tambien el 3, 4, 5, (6 y 7 no encendiende aun cuando reciben señal) tienes alguna idea de por que este comportamiento?

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Problemas con Sensor IR - PIC, solo Puedo usar una entrada de 6
« Respuesta #5 en: 06 de Agosto de 2018, 22:06:23 »
Una cosa que pudiera estar pasasando es un posible daño en los puertos ya que previamente los tenias como salida y al mismo tiempo estabas introduciendo datos, pero lo mejor es probarlos.
Otra cosa que puedes hacer es reducir tu código a una sola línea en lugar de estar preguntando por cada puerto y eso se logra simplemente haciendo esto:

PORTD = PORTB;

Así cada vez que algún pin del puerto B cambie de estado, este se reflejará en el puerto D.  Y así eliminas todos los IF-ELSE.
Algo que no mencionas es como estás detectando los niveles en los sensores infrarojos, ya que estos en su estado normal siempre están en alto y cuando detectan la frecuencia de 38KHz es que bajan su estado. No es simplemente on-off.

elreypic.

Desconectado Mushoi

  • PIC10
  • *
  • Mensajes: 11
Re:Problemas con Sensor IR - PIC, solo Puedo usar una entrada de 6
« Respuesta #6 en: 07 de Agosto de 2018, 10:54:05 »
Gracias nuevamente elreydelpic2 por ayudarme, los sensores permanecen en un estado bajo cuando estan recibiendo la señal infrarroja del led, y cambian a un estado alto cuando no lo hacen, adicionalmente ya realize el cambio como me lo sugeriste de colocar el PORTD = PORTB; y el comportamiento en las salidas es el siguiente, la salida RD1 se enciende por un tiempo y luego se apaga, cuando se apaga RD0 se enciende RD1 y permanece encendido indefinidamente, todo esto ocurre sin que ningun sensor haya sido conectado al pic

saludos y muchas gracias por tu aporte
Mushoi

Desconectado elreypic2

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1297
Re:Problemas con Sensor IR - PIC, solo Puedo usar una entrada de 6
« Respuesta #7 en: 07 de Agosto de 2018, 12:02:42 »
Si eso sucede sin que este conectado ningún sensor es porque las entradas del puerto B están flotadas, y no hay un nivel definido en estas. Para evitar eso necesitas agregar resistencias de pull-up en el puerto B, las cuales pueden ser externas o las internas del propio microcontrolador.
Para activar las resitencias internas del microcontrolador simplemente enciendes el bit 7 del registro OPTION_REG:

OPTION_REG = 0;

elreypic.

Desconectado Mushoi

  • PIC10
  • *
  • Mensajes: 11
Re:Problemas con Sensor IR - PIC, solo Puedo usar una entrada de 6
« Respuesta #8 en: 07 de Agosto de 2018, 13:44:30 »
muchas gracias elreypic2 tus comentarios han sido de gran ayuda y si ya realice lo de la resistencias pero de manera externa y ya todo funciona adecuadamente todo gracias a ti. :lol: :lol: :lol: :lol: :lol:
« Última modificación: 08 de Agosto de 2018, 16:20:43 por Mushoi »