He aprendido sobre el microcontrolador pic durante un período de tiempo y tengo una cantidad razonable de conocimiento sobre el manejo de la electrónica digital. He trabajado en proyectos electrónicos básicos y ahora necesito trabajar en algunas aplicaciones comerciales.
Mi pregunta es sobre cómo diseñar y construir circuitos confiables y duraderos. Construí un circuito controlador de luz automático que toma la entrada de un LDR y muestra el valor de la lectura analógica en un panel de siete segmentos. Luego hace algunos cálculos y controla una luz a través de un relé. Este circuito necesita estar encendido permanentemente (24 horas al día). Los primeros meses el circuito funcionó a la perfección, pero después de unos 6 meses comenzó a funcionar mal. Mostraba cosas sin sentido en la pantalla de 7 segmentos (mostraba solo partes de números), luego enciende la bombilla en el LED indicador pero no enciende el relé. Este no es el comportamiento esperado. La cosa es que no siempre funcionará de esa manera. A veces funciona perfectamente. Luego comienza nuevamente a funcionar mal. No hay un orden exacto en el que funcione.
Ahora mi pregunta es por qué estos circuitos se comportan de esta manera. Supongo que esto puede deberse a que funciona todo el día sin intervalos. Este tipo de aplicación debe funcionar todo el día. Yo uso PIC porque solo sé de imágenes. ¿Atmal es más confiable que la imagen? (Pregunté porque atmal se usa en la mayoría de las aplicaciones de automatización, con más frecuencia que la foto). Necesito algunos consejos de un experto en electrónica digital. ¿Cómo se construyen este tipo de aplicaciones industriales? ¿Hay alguna regla especial a seguir? ¿Cómo diseñar circuitos más confiables? Cualquier consejo u orientación de un experto será muy apreciado. Gracias...
EDITAR
Como se sugiere en las respuestas, editaré mi respuesta proporcionando recursos adicionales para ayudar a descubrir los errores en el diseño.
A continuación se muestra una imagen que describe cómo se ve el circuito después de su construcción. Es un transformador de 12 V con toma central que suministra energía al circuito. Se rectifica con un rectificador de media onda, luego se regula con un IC 7805.
A continuación se muestra el diseño esquemático.
Si se necesita información adicional, proporcionaré todo lo necesario. Si se necesita el programa, lo agregaré. El programa es algo largo. Utiliza interrupciones.
fuente
Respuestas:
Antes de comenzar a pensar en cambiar, asegúrese de tener un buen diseño sólido. Debe comenzar a pensar en todas las formas en que podría tener problemas en su diseño. Una buena manera de hacer esto es dejar de pensar en un microprocesador como una "caja mágica" en la que pone código y hace lo que le dice y comenzar a pensar en cómo funciona, a nivel de puerta y nivel de sistema. Necesita mantener feliz a su microprocesador.
Lo que realmente necesita hacer es encontrar el mecanismo de falla, necesita saber por qué está fallando. Una vez que sepa por qué está fallando, puede resolver el problema. Si no puede encontrarlo, tendrá que hacer que su diseño sea invencible para evitar que ocurran problemas. Si no lo hace, podría cambiar los microprocesadores y seguir teniendo los mismos problemas. Si desea cambiar, ST fabrica algunos microprocesadores excelentes que son más adecuados para aplicaciones industriales.
fuente
Como usted no dice, cuestiono cómo se construye físicamente el circuito con problemas, ya que esto suena EXACTAMENTE como el tipo de problema que generalmente se ve cuando alguien que no suelda construye un circuito en una placa temporal de "empuje para conectar" y se va por unos meses
Si esto se parece a su caso, ahí está su problema; si no, todavía sospecharía que hay conexiones deficientes, pero se convierte en un problema de "habilidad para soldar" más que en un problema de "falla al soldar cualquier cosa".
fuente
No tiene un condensador de desacoplamiento en el suministro PIC, pero en una placa pequeña como esta probablemente se saldrá con la suya. También es posible que desee agregar protección de caída de voltaje para que el PIC se restablezca si el voltaje cae por debajo de un umbral.
Pero estaría mirando tu código.
Para empezar, debe tener el watchdog habilitado en el micro. Si el código deja de funcionar correctamente, el perro guardián lo reiniciará.
Sin embargo, lo más probable es que tengas un error en alguna parte. Como ingeniero de software integrado de profesión, supongo que está relacionado con las interrupciones, porque allí es donde los principiantes suelen cometer errores. Sin embargo, como principiante, hay un conjunto masivo de errores que puede cometer en el código, por lo que ese es el primer lugar en el que miraría. (No se ofenda: cometí muchos de esos errores yo mismo, incluso cuando realmente debería haberlo sabido mejor ;-)
fuente
Estoy de acuerdo con los comentarios de que necesita un buen condensador de grasa a ambos lados del 7805. Especialmente con un relé allí. Espero que este sea el problema raíz. También agregaría un condensador de desacoplamiento a través de las líneas de suministro de energía del PIC.
También estaría buscando uniones secas.
También estaría revisando minuciosamente mi programa y utilizando cualquier instalación de vigilancia que esté allí.
Pero aquí hay un par de partes interesantes de su pregunta:
Intentaría resolver lo que sucedió. ¿Se ha bloqueado el PIC, por ejemplo?
Ahora, si leo su esquema correctamente, entonces para que cada una de las pantallas de 7 segmentos muestre algo , y algo diferente y constante en al menos dos de ellas, entonces cada una de Q1, Q2 y Q3 todavía debe haberse girado encendido en secuencia, y las salidas a los segmentos deben haber sido correctas. Esto me diría que su PIC todavía está ejecutando al menos parte de su código, pero de alguna manera la salida de dígitos ha sido codificada. Por ejemplo, tal vez no se le haya dado un dígito 0-9 para mostrar, sino un dígito 17 o similar (para el cual obtiene el diseño de dígitos de una ubicación de memoria aleatoria).
Tu dices:
Mirando el esquema, entonces, a menos que la salida PIC esté pulsando o algo así (no es imposible, ya que también es un puerto de salida del temporizador), esto tendría que ser una falla eléctrica (por ejemplo, una junta seca), un problema de PSU (ver arriba los condensadores) , o el transistor Q4 (quizás) no está completamente saturado. No he leído la hoja de datos PIC, pero un BC547 tiene un I C máximo de 100 mA (es de esperar que sea suficiente para controlar su relé y el LED) y un hFE de 120 en ese tipo de nivel, por lo que necesitará aproximadamente 1 mA en 10k por lo tanto, podría ser un poco demasiado. Podría probar 3k3.
Además, no tiene medios útiles de depuración. Como su pantalla está encendida todo el tiempo, quizás podría hacer que el punto del punto decimal final parpadee una vez por segundo (o similar) para indicar que todo está bien.
Si tuviera que dar una puñalada salvaje en la oscuridad, supongo que particularmente cuando el relé está encendido, el circuito está recibiendo una corriente significativa. Debido a la falta de un condensador grande en el lado de entrada del 7805, cuando el voltaje de CA cruza cero, el 7805 no proporcionará ninguna corriente de salida (y de hecho puede estar drenando el condensador), de la hoja de datos del 7805 . el voltaje de entrada debe permanecer típicamente 2.0 V por encima del voltaje de salida incluso durante el punto bajo en el voltaje de ondulación de entrada ' . Por lo tanto, el voltaje en el PIC se reducirá, tal vez lo suficiente como para bloquearlo. Coloque un alcance de la línea de 5V al lado del PIC y si no ve nada más que una buena línea sólida de 5V, sabe que tiene un problema.
fuente
Cada vez que tiene un comportamiento errático en un microprocesador, hay dos fuentes principales para el problema. 1) condensadores de "derivación" faltantes o insuficientes, 2) pines del microprocesador "flotante".
Cada "chip" debe tener una tapa de derivación, justo en el pin del chip conectado a Vcc (+ 5v).
Cualquier pin que no se use, debe estar atado alto o bajo, pero nunca debe dejarse "flotando".
Estoy de acuerdo en que no está conduciendo "lo suficientemente duro" Q4, le recomiendo 1K para R12.
fuente