Diseñar circuitos con una vida útil más larga

11

He aprendido sobre el microcontrolador pic durante un período de tiempo y tengo una cantidad razonable de conocimientos 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 debe estar encendido permanentemente (24 horas al día). Los primeros meses el circuito funcionó perfectamente, pero después de unos 6 meses comenzó a funcionar mal. Mostró cosas sin sentido en la pantalla de 7 segmentos (mostró solo partes de números), luego enciende la bombilla en el indicador LED 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. Entonces vuelve a empezar a funcionar mal. No hay un orden exacto en el que funciona.

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. Uso el PIC porque solo conozco la foto. ¿Es atmal más confiable que la foto? (Pregunté porque atmal se usa en la mayoría de las aplicaciones de automatización, más frecuentemente que la imagen utilizada)    Necesito el consejo de un experto en electrónica digital. ¿Cómo se construye este tipo de aplicaciones industriales? ¿Hay alguna regla especial a seguir? ¿Cómo diseñar circuitos más fiables?    Cualquier consejo u orientación de un experto será altamente apreciado. Gracias ...

EDIT

Como se sugiere en las respuestas, editaré mi respuesta proporcionando recursos adicionales para ayudar a resolver los errores en el diseño.

Abajo hay una imagen que describe cómo se ve el circuito después de que fue construido. Es un transformador de 12 V centrado que suministra energía al circuito. Se rectifica con un rectificador de media onda y luego se regula con un IC 7805.

Acontinuaciónsemuestraeldiseñoesquemático.

Si se necesita información adicional, proporcionaré todo lo necesario. Si el programa es necesario lo añadiré. El programa es algo largo. Utiliza interrupciones.

    
pregunta danial weaber

6 respuestas

17

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 coloca el código y hace lo que le dice y comenzar a pensar cómo funciona, a nivel de puerta y nivel de sistema. Necesitas mantener feliz a tu microprocesador.

  1. Alimentación: si la potencia de los microprocesadores no está limpia, no funcionará correctamente. Eso significa mirar el diseño de la PCB y asegurarse de que tiene una buena vía de baja inductancia desde su fuente de alimentación y asegurarse de que tiene suficientes límites de energía cerca del chip. Monitoree y mida la potencia en un diseño que sepa que no funciona con un osciloscopio y un voltímetro, ¿es la potencia? ¿Ves que el problema ocurre cuando hay un pico o una caída en el poder? ¿Ves picos o saltos en tu línea Vcc?
  2. Código \ Reloj: ¿hay un error en el código que está causando que no funcione correctamente? ¿Has mirado el código en una unidad intermitente? ¿Verifica (coincide) el código que tienes ahora? ¿Está recibiendo la degradación de flash? ¿Qué pasa con el reloj? El poder puede degradar el reloj con el tiempo . ¿Es tu reloj lo que necesita ser? Si reduce la velocidad del reloj, ¿su código deja de funcionar?
  3. Protección del medio ambiente. ¿Está utilizando el microprocesador en las especificaciones para las que fue diseñado? ¿Es la temperatura constante en las unidades que fallan? ¿Se encuentran en un área con factores ambientales como polvo, EMI, ESD o temperatura que podrían causar que falle? ¿Están sus entradas protegidas para el mundo exterior? ¿Podrían las personas estar usando la unidad? El calor hará cosas malas para la electrónica con el tiempo. Consiga una cámara térmica para ver si todo es normal.

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 encontrar eso, entonces 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.

    
respondido por el laptop2d
7

Como no dice, me pregunto cómo se construye físicamente el circuito con problemas, ya que esto suena EXACTAMENTE al tipo de problema que se suele ver cuando alguien que no suelda construye un circuito en un "impulso de conexión" temporal. Pizarra y lo deja por unos meses.

Si esto se parece a tu caso, ahí está tu problema; de no ser así, aún sospecharía que las conexiones son malas, pero se convierte en un problema de "habilidad para soldar" más que en un problema de "no soldar nada".

    
respondido por el Ecnerwal
5

No tiene un condensador de desacoplamiento en el suministro de PIC, pero en una tabla pequeña como esta probablemente saldrá con la suya. También es posible que desee agregar protección contra caídas de tensión para que el PIC se restablezca si el voltaje cae por debajo de un umbral.

Pero estaría mirando tu código.

Para empezar, debes tener el watchdog habilitado en el micro. Si el código deja de funcionar correctamente, el watchdog lo reiniciará.

Lo más probable es que hay un error en algún lugar. Como ingeniero de software integrado por profesión, supongo que está relacionado con las interrupciones, porque es allí donde los principiantes suelen cometer errores. Sin embargo, como principiante, hay un conjunto masivo de errores que puedes cometer en el código, así que ese es el primer lugar que buscaría. (No se ofenda: yo mismo cometí muchos de esos errores, incluso cuando realmente debería haberlo sabido mejor ;-)

    
respondido por el Graham
3

Estoy de acuerdo con los comentarios en que necesita un buen capacitor grueso a ambos lados del 7805. Especialmente con un relé allí. Espero que este es el problema de la raíz. También agregaría un condensador de desacoplamiento a través de las líneas de alimentación del PIC.

También estaría buscando juntas secas.

También estaría revisando minuciosamente mi programa y usando cualquier instalación de vigilancia que esté allí.

Pero aquí hay un par de partes interesantes de tu pregunta:

  

Mostró cosas sin sentido en la pantalla de 7 segmentos (mostró solo partes de números)

Estaría tratando de averiguar lo que ha sucedido. ¿Se ha bloqueado el PIC, por ejemplo?

Ahora, si leo su esquema correctamente, entonces para que cada pantalla de 7 segmentos muestre algo , y algo diferente y constante en al menos dos de ellos, entonces cada uno de Q1 , Q2 y Q3 deben estar encendidos 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 ha dado un dígito 0-9 para mostrar, sino un dígito 17 o similar (para el que obtiene el diseño del dígito desde una ubicación de memoria aleatoria).

Usted dice:

  

enciende la bombilla en el indicador LED pero no enciende el relé

Mirando el esquema, entonces, a menos que la salida del PIC esté pulsando o algo (no imposible, ya que también es un puerto de salida del temporizador), esto debería ser una falla eléctrica (por ejemplo, una junta seca), un problema de PSU (ver más arriba) recondensadores), o el transistor Q4 (quizás) no está completamente saturado. No he leído la hoja de datos del PIC, pero un BC547 tiene un máximo de I C de 100 mA (con suerte eso es suficiente para controlar su relé y el LED), y un hFE de 120 en ese nivel. así que necesitarás aproximadamente 1mA en pulg. 10k por lo tanto puede ser un poco demasiado. Podría intentar 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 destelle una vez por segundo (o similar) para indicar que todo está bien.

Si tuviera que realizar una puñalada salvaje en la oscuridad, supongo que, particularmente cuando el relé está activado, el circuito está generando una corriente significativa. Debido a la falta de un capacitor grande en el lado de entrada del 7805, cuando el voltaje de CA pasa a cero, el 7805 no proporcionará ninguna corriente de salida (y de hecho puede estar drenando el capacitor) - 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 estrellarlo. Coloque un alcance de la línea de 5V junto al PIC y si no ve nada más que una buena línea de 5V sólida, sabe que tiene un problema.

    
respondido por el abligh
2

Cada vez que tenga un comportamiento errático en un microprocesador, hay dos fuentes principales para el problema. 1) Condensadores de "bypass" faltantes o insuficientes, 2) pines del microprocesador "flotantes".
Cada "chip" debe tener una tapa de derivación, justo en el pin del chip conectado a Vcc (+ 5v).
Cualquier pin no utilizado, debe estar atado alto o bajo, pero nunca debe dejarse "flotando".

Estoy de acuerdo en que no estás manejando "lo suficientemente fuerte" Q4, recomiendo 1K para R12.

    
respondido por el Guill
0

¿Alguno de los semiconductores que no se supone que sean sensibles a la luz pierden parte de sus carcasas? Esto podría hacerlos sensibles a la luz y, por lo tanto, hacer que se comporten mal en la luz solar.

    
respondido por el user6030

Lea otras preguntas en las etiquetas