Autor Tema: El PIC me detecta un nivel logico bajo demasiado pronto  (Leído 3142 veces)

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

Desconectado alperez

  • PIC18
  • ****
  • Mensajes: 255
El PIC me detecta un nivel logico bajo demasiado pronto
« en: 08 de Abril de 2014, 06:27:40 »
Hola compañeros, necesito de vuestra ayuda con un problema que no sé ni como explicar.

Resulta que tengo una serie de módulos de entradas y salidas conectadas a un bus rs485 y este a su vez conectado a internet mediante otro PIC.

El problema está en la salida entrada, es un primer prototipo con una entrada optoacoplada que debo detectar 0V para enviar el mensaje a un smartphone android y resulta que me envía el mensaje sin ni siquiera tener esos 0V.

Yo creo que es por que la entrada aún no está "estabilizada" y no sé como solucionar esto.
Una posible solución podria ser poner un delay pero no me gusta.

Gracias por vuestra ayuda.
« Última modificación: 08 de Abril de 2014, 06:54:46 por alperez »

Desconectado MerLiNz

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2463
Re: El PIC me detecta un nivel logico bajo demasiado pronto
« Respuesta #1 en: 08 de Abril de 2014, 06:31:44 »
sin esquemas del circuito apenas te podemos ayudar...

Desconectado alperez

  • PIC18
  • ****
  • Mensajes: 255
Re: El PIC me detecta un nivel logico bajo demasiado pronto
« Respuesta #2 en: 08 de Abril de 2014, 06:53:55 »
Donde dije salida, queria decir entrada.

Siento la confusión.



Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: El PIC me detecta un nivel logico bajo demasiado pronto
« Respuesta #3 en: 08 de Abril de 2014, 09:20:27 »
  Supongo que un posible problema es que tienes un pin al aire en el opto, por lo tanto puede estar captando ruido. Podrías poner una resistencia (tal vez de 10K) de pulldown justo en la unión entre el pin 2 de JP2 y R8.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado alperez

  • PIC18
  • ****
  • Mensajes: 255
Re: El PIC me detecta un nivel logico bajo demasiado pronto
« Respuesta #4 en: 08 de Abril de 2014, 09:29:23 »
  Supongo que un posible problema es que tienes un pin al aire en el opto, por lo tanto puede estar captando ruido. Podrías poner una resistencia (tal vez de 10K) de pulldown justo en la unión entre el pin 2 de JP2 y R8.

El otro led (D3), se enciende cuando recibe datos por la uart (RS485) pero cambié temporalmente para encenderlo cuando se active el opto y funciona correctamente.

Probaré a ver que tal va

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: El PIC me detecta un nivel logico bajo demasiado pronto
« Respuesta #5 en: 08 de Abril de 2014, 09:35:39 »
  Supongo que un posible problema es que tienes un pin al aire en el opto, por lo tanto puede estar captando ruido. Podrías poner una resistencia (tal vez de 10K) de pulldown justo en la unión entre el pin 2 de JP2 y R8.

El otro led (D3), se enciende cuando recibe datos por la uart (RS485) pero cambié temporalmente para encenderlo cuando se active el opto y funciona correctamente.

Probaré a ver que tal va

  ¿O sea que ese led no se enciende pero el pic sigue interpretando como una llegada de datos? ¿Cuando monitoreaba el RS485, tampoco se encendía?

  En teoría, el opto necesita "mucha" corriente como para que se active y por lo tanto un pin al aire no debería encenderlo. Pero yo he tenido lamparás de led conectadas a la red y aún estando apagada la luz (desde la llave), la lámpara tenía una tenue luminosidad.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado alperez

  • PIC18
  • ****
  • Mensajes: 255
Re: El PIC me detecta un nivel logico bajo demasiado pronto
« Respuesta #6 en: 08 de Abril de 2014, 10:33:42 »
  Supongo que un posible problema es que tienes un pin al aire en el opto, por lo tanto puede estar captando ruido. Podrías poner una resistencia (tal vez de 10K) de pulldown justo en la unión entre el pin 2 de JP2 y R8.

El otro led (D3), se enciende cuando recibe datos por la uart (RS485) pero cambié temporalmente para encenderlo cuando se active el opto y funciona correctamente.

Probaré a ver que tal va

  ¿O sea que ese led no se enciende pero el pic sigue interpretando como una llegada de datos? ¿Cuando monitoreaba el RS485, tampoco se encendía?

  En teoría, el opto necesita "mucha" corriente como para que se active y por lo tanto un pin al aire no debería encenderlo. Pero yo he tenido lamparás de led conectadas a la red y aún estando apagada la luz (desde la llave), la lámpara tenía una tenue luminosidad.

No AngelGris , el led D3 es un led de indicacion que enciendo mediante programacion cuando recibe datos para ver actividad en el bus, esto funciona perfectamente. Pero lo utilizo además para ver si se activa el opto viendo la entrada del PIN_A4 en el bucle principal, y esto tambien funciona.

Me da que "al principio" el estado de los pines es 0 y el estado del puerto no se "estabiliza" a tiempo para cuando el pic "lee" el estado de dicho pin.

Voy a poner un largo delay para probar a ver que pasa

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: El PIC me detecta un nivel logico bajo demasiado pronto
« Respuesta #7 en: 08 de Abril de 2014, 15:54:39 »
  Supongo que un posible problema es que tienes un pin al aire en el opto, por lo tanto puede estar captando ruido. Podrías poner una resistencia (tal vez de 10K) de pulldown justo en la unión entre el pin 2 de JP2 y R8.

El otro led (D3), se enciende cuando recibe datos por la uart (RS485) pero cambié temporalmente para encenderlo cuando se active el opto y funciona correctamente.

Probaré a ver que tal va

  ¿O sea que ese led no se enciende pero el pic sigue interpretando como una llegada de datos? ¿Cuando monitoreaba el RS485, tampoco se encendía?

  En teoría, el opto necesita "mucha" corriente como para que se active y por lo tanto un pin al aire no debería encenderlo. Pero yo he tenido lamparás de led conectadas a la red y aún estando apagada la luz (desde la llave), la lámpara tenía una tenue luminosidad.

No AngelGris , el led D3 es un led de indicacion que enciendo mediante programacion cuando recibe datos para ver actividad en el bus, esto funciona perfectamente. Pero lo utilizo además para ver si se activa el opto viendo la entrada del PIN_A4 en el bucle principal, y esto tambien funciona.

Me da que "al principio" el estado de los pines es 0 y el estado del puerto no se "estabiliza" a tiempo para cuando el pic "lee" el estado de dicho pin.

Voy a poner un largo delay para probar a ver que pasa

  Entiendo el funcionamiento que le has programado al led. Mi pregunta iba a lo siguiente, cuando tú lo utilizas para monitorear la entrada del pin A4, ¿Qué ocurre con el led?
  Tal vez sea un problema de firmware.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado alperez

  • PIC18
  • ****
  • Mensajes: 255
Re: El PIC me detecta un nivel logico bajo demasiado pronto
« Respuesta #8 en: 08 de Abril de 2014, 16:23:03 »
Ahora te entendí AngelGris, sí, si que se enciende. En ese aspecto la programación es correcta.

Código: [Seleccionar]

if ( input(PIN_A4) == FALSE ) {
     output_high( PIN_A5 );
     flagEntradaActivada = TRUE;
}

Desconectado alperez

  • PIC18
  • ****
  • Mensajes: 255
Re: El PIC me detecta un nivel logico bajo demasiado pronto
« Respuesta #9 en: 09 de Abril de 2014, 14:00:44 »
Ya está solucionado... era un error de software  :oops:

Gracias


 

anything