TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: alperez 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.
-
sin esquemas del circuito apenas te podemos ayudar...
-
Donde dije salida, queria decir entrada.
Siento la confusión.
-
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.
-
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
-
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.
-
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
-
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.
-
Ahora te entendí AngelGris, sí, si que se enciende. En ese aspecto la programación es correcta.
if ( input(PIN_A4) == FALSE ) {
output_high( PIN_A5 );
flagEntradaActivada = TRUE;
}
-
Ya está solucionado... era un error de software :oops:
Gracias