miércoles, 29 de noviembre de 2017

Contador de eventos con display 7seg


      La finalidad del prototipo es para contar cada vez que pasa un camión que tira material en el primario de una trituradora de materiales pétreos. También se puede utilizar para otras aplicaciones solo consiste en adecuar que sensor se va emplear.

Caracteristicas:

--Se emplea un sensor de presión mpx5700 con una manguera para que cada vez que pase el camión al aplastar la manguera mande la señal de conteo

--Tiene un display de 4 elementos de 7seg, para contar hasta 9999

--Se emplea la memoria interna del pic16f84a para que al desconectar y re conectar se mantenga la cuanta, tener en cuenta que la memoria interna tiene un tiempo de vida. (nota. Tengo dos asm, uno con la memoria y otro sin emplear memoria)

--Tiene un botón de reseteo, para poner la cuenta en cero. Para poner la cuenta en cero, se presiona el reseteo y se enciende el dispositivo, en automático se pone en cero, pero no se guarda el registro hasta que se lleve acabo una cuenta. Es decir si lo pones a cero y no hay cuenta al apagar y encender de nuevo va a mostrar la cuenta anterior al cero.

Diagrama electrónico



Datos para bajar, diagrama electrónico, layout de dos caras, pdfs datasheets y asm, hex

https://mega.nz/#!qE5S0bLT!ti9HzeY_pxXPJDvxxU5_EIoUNEzOUGv493XGmtaY37Q


Prototipo

         La tarjeta original le hice algunas correcciones que al momento de armar y probar, me di cuenta que había que modificar, dispuse componentes por arriba y por abajo para poder instalar en la caja de steren, pongo imágenes de como quedo el prototipo, como concejo los display durante el día casi no se ven, esto se debió a que los leds 7 seg que compre en steren son de baja iluminación de unas 6 candelas, lo adecuado sería comprar de 20 a 30 cd para que durante la luz del sol se pueda visualizar. la otra opción es emplear un lcd, próximamente lo voy a implementar.

Fotos.






Actualización 5 dic 2017

                    Al estar probando en campo el prototipo detecte el problema que al apagar y al encender se activa la interrupción del pic en algunas ocasiones generando una cuenta, así que actualice el programa, le agregue un temporizado de inicio antes de que habilite las interrupciones.

https://mega.nz/#!qE5S0bLT!ti9HzeY_pxXPJDvxxU5_EIoUNEzOUGv493XGmtaY37Q





jueves, 14 de septiembre de 2017

Medición de nivel por medio de un sensor de presión


       Este proyecto esta en proceso, voy a ir poniendo según vaya avanzando los circuitos electrónicos y las partes de que va a constar.
       Quiero que trabaje un display 16x2 para ver los resultados del sensor de presión, un teclado matricial para interactuar con el display y resultados obtenidos del sensor de presión, también estoy considerando dejar disponible un puerto de comunicación por si requiero extender o enviar la información a otro dispositivo y además dejar disponible algunos pines del pic para activar o desactivar relays. Todo lo voy a ir desarrollando paso a paso.

Partes.

1.- Fuente simétrica estable de 14.8,-14.8 y fuente de 5 volts
2.- Sensor y amplificador de instrumentación
3.- Acondicionamiento de la señal para tome lectura el pic16f877
4.- Microcontrolador pic 16f877 definición de puertos
5.-Display
6.-Teclado
7.- Indicadores y relays
8.- Comunicación


Diagrama de flujo

Pendiente de subir el diagrama de flujo, aun no defino bien lo último.



1.- Fuente simétrica estable +-14.8 volts y 5 volts

             La fuente de voltaje no me complique en desarrollar una conmutada, ya sería otro tema, es una fuente regulada simétrica estable con el lm337 y lm317 y para los 5 volts un regulador lm7805, lo importante es que es estable, el circuito lo tome de su hoja de datos y solo ajuste para que me entregue el voltaje que necesito. El voltaje que necesito lo definí en base al voltaje de alimentación del sensor de presión MPX2050 que trabaja en el rango de 10 a 16 volts y toma sensado de 0 a 50kPa (7.5psi).

        Primero arme el circuito electrónico en protoboard para ajustar y obtener el voltaje de +-14.8 volts y ya luego lo pase a placa, esto lo logre con el zener de 12volts y el arreglo de resistencias en paralelo que tiene.

Circuito fuente de voltaje





Fuente de voltaje armada y funcionando


Archivos de la fuente de voltaje (circuito y layout)

https://mega.nz/#!vUhnVDKI!O_WaaPFv6X3c1B1HnicWD_PAqgs61TTEZFnGIQvvBjQ


2.- Sensor y amplificador de instrumentación

          Esta parte toma el voltaje del sensor MPX2050 y lo amplifica, rechazando las interferencias y ruido, esto es gracias al amplificador de instrumentación.
       El voltaje del sensor es de  40mvolts de su presión máxima medible, como es un amplificador diferencial puede darnos voltaje negativo o voltaje positivo dependiendo si la presión es negativa o positiva, según su manual tiene un rango de -40mvolts a 0 en succión y de 0 a 40mvolts cuando es presión positiva, esto es dentro de su rango de 50Kpa. Pero puede soportar hasta 200Kpa pico, así que da lecturas mayores a los 40mvolts pero pierde su linealidad en su respuesta y con posibilidad de dañar el sensor.
     Por que elegí este sensor hasta 50Kpa, esto se debio a que es el optimo para medir la presión de un tanque cilíndrico vertical de 5 mts de alto, esto es que requiero a lo mucho unos 45Kpa para tomar la lectura cuando el tanque este lleno en su totalidad.
     Esto se calcula con P = pgh donde, P es la presión de un fluido estático, p es la densidad del fluido en este caso el fluido tiene una densidad casi igual a la del agua, g es la constante de aceleración de la gravedad y h es la altura del nivel del líquido.

     Ya teniendo definido el sensor, amplifico la señal en el amplificador de instrumentación calculando que me entregue 14 volts cuando el sensor registre 40mvolts, y cuando de voltaje negativo el sensor no el amplificador me de 0 volts, esto lo logro con un diodo como medida de protección, para no tener voltajes de salida negativos.

Circuito electrónico


Por el momento solo tengo armado en protoboard la etapa de amplificación y el acondicionamiento de señal. Posterior mente comparto su layout y como quedaría armado.

3. Acondicionamiento de señal

      ¿Por que el acondicionamiento de señal? si con el amplificador de instrumentación puedo tener en su salida ya el voltaje adecuado para el pic. Se me presento un problema y le encontré una solución creativa. El problema es que el pic solo tiene una resolución de 10 bits, esto quiere decir que puede tomar 1024-1 lecturas, entonces si yo tengo un tanque vertical de 36000 litros de 5 metros de altura cada lectura leída por el microcontrolador va ser de 36000/1023=35.19 lts, esto quiere decir que va a tomar las medidas en múltiplos de 35 lts, es una resolución pobre. la única manera de solucionar esto es que el convertidor analógico a digital sea de más bits, pero para eso tendría que comprar otro microcontrolador que tenga la opción de más bits, hay de 12 y de 16 bits o conseguir un ADC aparte.
       La solución que se me ocurrió fue de emplear 4 adc del microncontrolador de 10 bits cada uno, en suma me darían 4092 lecturas, unos 12 bits. Ya con esa resolución tendría 36000lts/4092= 8.7lts, esto es un poco más de un milimetro de cambio de su nivel, ya que cada variación de un centimetro en el tanque equivale a 72lts, (36000lts/500cm=72lts por cm). Ya con esta resolución ofrece poderse emplear.
       La idea es que el voltaje de salida del amplificador de instrumentación se parta en cuatro (divide y vencerás), esto se logra mediante un divisor de voltaje con cuatro resistencias, como no podemos conectar directo al microcontrolador ya que sería mucho voltaje usamos 3 restadores con amplificadores operacionales, así tendríamos 4 voltajes no mayores a 4 volts que serían los voltajes que van a tomar lectura los adc del microcontrolador y ya por software trabajamos el valor de la señal adquirida del sensor.

Circuito acondicionamiento de señal


      Por el momento hasta aquí he llegado, ya lo simule y lo arme en protoboard y funciona bien, tengo pendiente hacer su layout y armarlo ya formalmente para pasar a lo siguiente.
     Quiero ver si no es muy pesado el circuito en una sola tarjeta poner el sensor, amplificado operacional, el acondicionamiento de señal y el microcontrolador, y aparte poner el teclado, display y relays.
    Pienso que lo más complicado va ser la programación del microcontrolador, quiero programarlo todo en ensamblador para que sea rápida la toma de lecturas con el mínimo de memoria empleada.


Continuación del proyecto.

Ya arme todo el circuito en una tarjeta, y lo estoy probando directamente en un tanque contenedor de 20, 000 lts. Se me han presentado diversos problemas que e ido corrigiendo, en listo lo que ha pasado y como he solucionado.

1.- Falla en el pic
al hacer el layout no me di cuenta que los pines de alimentación del pic estaban configurados en el proteus como vcc y gnd, y yo emplee +5 y gnd como fuente de alimentación de los demás componentes, así que me considero como otra fuente, tuve que improvisar y hacer la conexión directa con un cable, en el layout lo corregí también.
2.-La resistencia que utilice en el amplificador de instrumentación para la ganancia, no fue la adecuada, ya que me entregaba más amplificación. Lo que sucede es que el amp de instrumentación lo alimente con 14.8 y - 14.8, pero al amplificar la señal en su salida como máximo solo me puede entregar 12.5 volts, yo no tenia considerado ese límite considere los 14.8 como máximo de salida, así que tuve que cambiar la resistencia de amplificación para adecuar el rango del sensor con respecto a la salida del amp de instrumentación.
3.- Como fue más baja la salida de amplificación tuve que cambiar igual la resistencia del diodo zener, de donde tomo el voltaje de referencia para el ADC, para poder ocupar el mayor rango posible del ADC.
4.- En un proyecto anterior se daño la entrada RA0 de mi pic, así que tuve que hacer un cambio en el programa para utilizar otra entrada de ADC, el layout no lo modifico aún, hice un puente físicamente en la placa que ya tenía hecha y modifique el programa.
5.- Funciono relativamente bien los primeros días, solo que variaba de 100 hasta 200 litros la respuesta que se observaba en el LCD, me di cuenta que empezó a bajar las lecturas al paso de los días con el mismo contenido en el tanque. Me di cuenta que el amplificador de instrumentación empezó agregar voltaje de milivolts al sensor, como que perdió el acoplamiento, verifique lo que pude para reparar pero no encontré el porque del comportamiento, así que como solución compre un ADC INA129 que viene en su placa, los que se emplean para arduino e instale cortando unas pistas y conectando lo. Actualmente esta trabajando y estoy monitoreando, bajo por mucho su variación y se ha vuelto más estable, esta en un rango de 20 lts de más y menos con un mismo contenido.
6.- De la programación puedo decir que no soy muy experto, así que hice muchas modificaciones y me apoye en diversas rutinas ya hechas. El problema que tenía que se perdía el programa, su secuencia, descubrí que mi programa fue mayor que la pagina uno, así que tuve que ver como hacer brincos entre paginas del pic para que todo mi programa funcione, también me pase de variables declaradas, así que busque la manera de reducirlas y re usar las que tenia para no pasarme del banco uno de variables.

Adelanto lo que he hecho, expongo que aun estoy desarrollando el proyecto, por lo que estoy haciendo modificaciones según voy necesitando.






En el menu, para el pass es presionar 2 y 5 para que entre a calibración, ya teniendo la calibración puesta a 16 mili volts en el sensor de presión, equivalente a 20,000pascales se presiona A y se graba ese valor como referencia. Ya calibrado podemos tomar lecturas muy cercanas a los valores de litros, kilogramos, presión y altura hidrostática, eso gracias a las fórmulas que utilice dentro del programa del pic.

Todos los archivos con los que estoy trabajando, enlace.

https://mega.nz/#!LZw3UBaS!QOBSxHh1Q7qmYDNL0OWTwKN204QDqzl4fNpAGmSmaSs

Voy a modificar el proyecto para hacerlo más simple, ya vi que el calor, las interferencias hacen que no se estabilice hasta el punto donde yo quiero, quiero tener una precisión y estabilidad de unos pocos litros en mi display. Compre el ADC MAX1416 y estoy empleando el INA128 como amp de instrumentación, junto con el pic, con su display y teclado. Por el momento voy a dejar lo que hice aun principio para trabajar en el proyecto simplificado. Al menos el primer proyecto me dio muchas experiencias y vi que el adc a 12 bits si trabaja.



miércoles, 19 de julio de 2017

Micromaster Falla F0001


    Me a pasado que con el paso del tiempo el variador de frecuencia, a pesar de darle mantenimiento y los cuidados adecuados marca en ocaciones la falla F0001, no con todos pero si hay sus casos.

        Esta falla nos dice que hay un corto a tierra y el consumo de corriente sobre pasa el límite permitido del micromaster y se protege deshabilitandose.

      Lo primero es verificar si el motor esta bien, la línea de cableado de alimentación y que toda la instalación y bornes estén adecuadamente conectados. Ya luego se procede hacer un reseteo de fabrica al micromaster, como indica el manual. Como punto extra, por experiencia e observado que el cable del micromaster al motor, al paso de bastante tiempo se pone gris oscuro, como si le saliera carbón, si eso te sucede y te marca la falla, sería bueno hacer la prueba con otro cable en mejor condición para descartar el cableado como posible falla.


      Me voy a concentrar en la falla electrónica del dispositivo, considerando que ya se checo voltajes, que el motor funciona adecuadamente con otro micromaster, empleando la misma instalación. Quedando como única opción la falla electrónica del micromaster.



     Primero hay que desarmar el micromaster y verificar que ninguna conexión este dañada, que todo se vea bien conectado.
     Luego hay que checar los igbt con el multimétro en continuidad te debe dar aproximadamente igual a los valores siguientes.


    Si te arroja los valores similares a los que muestro, significa que están bien los transistores. entonces procedemos a checar la parte critica del sensor de corriente y su circuito.

       En la siguiente imagen en dos círculos rojos muestro las resistencias que fungen como sensor y la parte del circuito que las gobierna. Estas resistencias son muy pequeñas del orden de 0.009ohms, en el multimétro se ve como si estuvieran en corto.



    Si las resistencias te marcan con el multimétro corto circuito, vamos bien.
      Nos concentramos al circuito de la siguiente imagen, es el  encargado de mandar la señal a través del opto acoplador al chip principal si hay problemas de consumo de corriente eléctrica.
     Podemos hacer una prueba simple, desconectamos una de las patitas del optoacoplador, se indica en el círculo amarillo de la imagen. Armamos y conectamos el micromaster, probamos si nos envía la falla f0001. Ya que esta desconectado el optoacoplador nunca va arrojar la falla.
    El problema radica que se desvalorizan las resistencias de montaje superficial de esa parte del circuito, con que cambien un poco su valor ideal en unos pocos kilohms hacen pensar al equipo que esta consumiendo más corriente de la debida y marca la falla.
   Lo que procede es complicado, hay que checar las resistencias, algunas se pueden verificar ahí mismo, pero hay otras que hay que quitarlas para poder checar. Por lo que he visto las de 100K son las que desvalorizan mayormente.


Hice un bosquejo del circuito, como esta constituido para entender un poco más a fondo como trabaja esta parte del micromaster.


Agrego su archivo de Proteus 

https://mega.nz/#!mMA3gT7L!DXbQ3LVuBErGpCDM8txcL62eBxc1Js0xZnkexpL-gZg


Espero haya servido la información, me llevo un tiempo localizar este tipo de fallas. 

Suerte en sus proyectos y reparaciones.

Saludos.