Autor Tema: Nivel para líquidos.  (Leído 9024 veces)

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

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3439
Re:Nivel para líquidos.
« Respuesta #60 en: 23 de Enero de 2019, 15:22:55 »
Hola, mira he comprobado a compilar el fichero nº6 que adjunté ayer y a mi me funciona perfectamente. Puedes verlo en el fichero Word en negrita que también adjunto. Es el fichero que da Flowcode del resultado de la compilación. Es mas la capacidad de memoria usada es solo aproximadamente la mitad del total.

Por otra parte adjunto otro fichero, compilado perfectamente también, en este solo he borrado todos los accesos al puerto E que pusimos como testigos y he pasado el pic del 16F887 al 882 y no hay problema.

Puedes adjuntar el fichero que tu has compilado para revisarlo?

Respecto a los fuses si tienes dudas necesito que me digas exactamente cuales son.

Desconectado manuel gómez

  • PIC16
  • ***
  • Mensajes: 109
Re:Nivel para líquidos.
« Respuesta #61 en: 23 de Enero de 2019, 15:51:57 »
He vuelto a revisarlo y a modificar algo, pero me sigue dando error, te paso el fichero a ver si hay algo que no esté bien.
« Última modificación: 23 de Enero de 2019, 16:01:49 por manuel gómez »

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3439
Re:Nivel para líquidos.
« Respuesta #62 en: 23 de Enero de 2019, 16:00:37 »
A mi me compila bien.
Ver Word.

F.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3439
Re:Nivel para líquidos.
« Respuesta #63 en: 23 de Enero de 2019, 16:06:12 »
Ojo con el tema de los fuses si vas a pasar el programa al micro.

Actualmente tienes seleccionado un oscilador externo realizado con una Resistencia y un condensador; la velocidad del micro esta a 19260MHz y además tienes activado el Watcgdog.

C.

Desconectado manuel gómez

  • PIC16
  • ***
  • Mensajes: 109
Re:Nivel para líquidos.
« Respuesta #64 en: 23 de Enero de 2019, 16:13:34 »
El mismo archivo que me has reenviado lo he vuelto a compilar y sigue dando error, ¿puede ser la version de Flowcode?

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3439
Re:Nivel para líquidos.
« Respuesta #65 en: 23 de Enero de 2019, 16:15:38 »
Puede ser, yo también tuve una versión 6 que me daba problemas.

Desconectado manuel gómez

  • PIC16
  • ***
  • Mensajes: 109
Re:Nivel para líquidos.
« Respuesta #66 en: 23 de Enero de 2019, 16:22:28 »
Pruebo lo comentado y te digo.....
Gracias.

Desconectado manuel gómez

  • PIC16
  • ***
  • Mensajes: 109
Re:Nivel para líquidos.
« Respuesta #67 en: 23 de Enero de 2019, 17:10:29 »
Correcto Fer_TACA, he probado lo comentado y ha compilado perfectamente. Mañana hago pruebas y te comento, sobre tema de los fuses y velocidad del micro lo tengo claro.

De nuevo mil gracias, me cuesta mucho enterarme de flowcode pero con esta ayuda que me brindas empiezo a entender muchas cosas. Te agradezco infinitamente tu colaboración.


Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3439
Re:Nivel para líquidos.
« Respuesta #68 en: 23 de Enero de 2019, 17:27:11 »
  :mrgreen: :mrgreen: :mrgreen:
 :) :) :)

Desconectado manuel gómez

  • PIC16
  • ***
  • Mensajes: 109
Re:Nivel para líquidos.
« Respuesta #69 en: 24 de Enero de 2019, 13:48:17 »
Hola Fer_TACA, ahora creo que empieza lo complicado, que es afinar el programa, por el momento no va bien, hace cosas raras, pero antes de decirte los síntomas que presenta me gustaría que revisaras el archivo y me digas si pudiera haber algún problema con los fuses.

Estoy utilizando el 16F882, velocidad 4Mhz, oscilador y reset internos.... miralo y dime si hay algo raro.



Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3439
Re:Nivel para líquidos.
« Respuesta #70 en: 24 de Enero de 2019, 18:09:07 »
He revisado los fuses y no veo nada que pueda estar afectando al programa.

Si veo que vas a usar el oscilador interno con salida de la frecuencia de oscilación por uno de los pines y que tienes declarado el pin 1 como digital en vez de usar dicho pin como entrada de reset. Me imagino que lo has declarado así.

Respecto al oscilador como interno de fabrica sale calibrado a 8Mhz mientras que en la configuración de la velocidad de oscilación esta a 4MHz.

Pero solo eso. Espero que me vayas comentando el funcionamiento erróneo.
¿Dónde lo estas probando sobre un pcb o una protoboard? Me supongo que tendrás colocados los condensadores de desacoplo en la alimentación y que esta será estable y sin rizado.


F.

Desconectado manuel gómez

  • PIC16
  • ***
  • Mensajes: 109
Re:Nivel para líquidos.
« Respuesta #71 en: 24 de Enero de 2019, 18:53:29 »
Para una primera prueba lo tengo en protoboard, pero mañana haré la pcb, en cuanto a la alimentación es correcta, es la que suelo utilizar para otros montajes.

Mañana modificaré la velocidad del oscilador y comprobaré la entrada de reset.

Ya te iré diciendo lo que vaya surgiendo.

Saludos.

Desconectado manuel gómez

  • PIC16
  • ***
  • Mensajes: 109
Re:Nivel para líquidos.
« Respuesta #72 en: 25 de Enero de 2019, 08:20:19 »
Te comento Fer_TACA, he realizado una pequeña PCB para el montaje del nivel, por supuesto he colocado las resistencias pull_down de 10k tanto para el interruptor de calibarción como para los pulsadores de minimo y maximo. La alimentacion es de 5V totalmente limpios de impurezas y he colocado un condensador de 1uF lo mas cercano al micro.

Pues bien, inserto el pic con la velocidad programada a 8Mh y con el master clear interno y no va bien, te explico lo que hace con pruebas que he ido realizando:

. activo el interruptor de calibración
. conecto la alimentacion de los +5V
. regulo la tensión del sensor y la coloco en 1V
. pulso sobre la tecla de minimo RA3
. se enciende el led RC0
. subo la tension del sensor a 4V
. pulso sobre la tecla de maximo y solo se enciende el led RC1
. y es solo lo que hace
 
ahora bien me dio por seguir tocando y te explico:
. al pulsar nuevamente en la tecla de minimo RA3
. el led RC1 se apaga
. si pulso nuevamente en la tecla de maximo RA4
. se encienden todos los leds RC0 RC1 RC2 (el led RC3 no lo he utilizado porque me faltaron leds) y todos los de la barra del nivel
. desactivo el interruptor de calibracion RA5
. bajo el nivel de tension del sensor y sigue todo encendido
. desconecto y vuelvo a conectar la alimentacion de +5V
. y todo aparece apagado.

Esto es todo lo que hace.

He probado con cristal de 8Mhz y condensadores de 27pF, por supuesto declarandolos
He probado con master clear interno y externo colocando 4K7 a +5V

y nada, no va...

Te garantizo que la pcb está correcta, la he revisado varias veces.
« Última modificación: 25 de Enero de 2019, 08:23:23 por manuel gómez »

Desconectado Robert76

  • PIC18
  • ****
  • Mensajes: 260
Re:Nivel para líquidos.
« Respuesta #73 en: 25 de Enero de 2019, 12:06:28 »
No sé que modelo de PIC usas pero si hablamos de gama baja, por ejem. 16FXXXX. La velocidad que siempre usé es de 4Mhz, por encima de ese valor no tuve credibilidad de correcto funcionamiento.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3439
Re:Nivel para líquidos.
« Respuesta #74 en: 25 de Enero de 2019, 15:19:37 »
Hola Manuel,

Mira según lo veo la secuencia de prueba debería ser la siguiente:
Conectar la alimentación de +5V.
Activar antes de 5sg el interruptor de calibración. Si no lo pasas antes de 5sg se salta el proceso de calibración ya que se lo que va a realizar es el leer el valor de la EEPROM que estuviera almacenado, en este saco sería FF si no lo he has grabado antes nada a mano y se debe de encender el led de C0. Una vez activado el interruptor y pasar 1-2 sg. lo puedes desactivar.

Debes de mover un poco (si lo pruebas con un potenciómetro) la entrada analógica del sensor de nivel.
Accionar el pulsador de validar el valor mínimo conectado A3, el valor se guarda en el registro correspondiente y se debe de encender el led de A2.

A continuación, mueves el potenciómetro del sensor a un nivel cercano al máximo, deja algo de margen para poder realizar la prueba correctamente.

Ahora accionas el interruptor de validación del nivel máximo conectado en A4, el valor se guarda en el correspondiente registro y se debe de encender el led de C1.

IMPORTANTE: Debes bajar rápidamente el potenciómetro del sensor a 0, ya que el tanque inicialmente estará vacío. Con esto los leds de C2 y C3 deben de parpadear. Si no te da tiempo a bajar el valor, el micro va muy rápido, prueba a insertar un bloque de retraso de algún segundo justo al final de la macro de validar el máximo para que te dé tiempo a realizarlo.
A partir de ahí debes de ir subiendo lentamente el valor del potenciómetro para pasar por todos lo niveles. Al pasar el primer nivel se iluminará B7 y se apagará C3. Así hasta llegar a pasar el nivel máximo que estarán todos los leds de la columna iluminados y se apagará C2 (apagar bomba).

El siguiente paso es ir bajando el nivel lentamente y comprobando que pasas por todos los niveles y que justo al bajar del nivel mínimo parpadearán de nuevo C2 y c3.

Por otra parte, si eliges la frecuencia de 8MHz entonces en la macro de interrupción del TMR0 que va a contar segundos debes de aumentar el valor de la comparación ya que al ir al doble de velocidad se tiene menos tiempo para actuar sobre el interruptor de calibración. Puedes poner el valor a 30.

Otra cosa que puedes hacer es aumentar un poco los valores de los retrasos que hay después de la comprobación de activación de cada uno de los pulsadores. Por ejemplo = 50milisegundos.

F..