viernes, 6 de junio de 2014

Construyendo mi fresadora CNC (Interfaz mini CNC V1.0 con PIC16F628)


Después de indagar por diferentes sitios de la red buscando información respecto a fresadoras CNC caseras por fin puede obtener el conocimiento necesario para fabricar mi fresadora CNC  empleando materiales comunes y en desuso con el fin de tener un mínimo costo de fabricación. Así que junté el material que me podría servir para construir la parte mecánica de la mini CNC, como por ejemplo: impresoras, placas de plástico, DVD, motores eléctricos de electrodomésticos, ángulos de aluminio, motores Brushlees, entre otros. Sin embargo, material electrónico como controladores de motores paso a paso (PAP) con señales de control paso y dirección es casi imposible encontrar en equipos electrónicos dañados, por lo que esta parte se tiene que comprar y  en mi caso será la más costosa.

Una solución para minimizar los gastos en la electrónica es emplear el software Txapuzas que emplea como interfaz una placa arduino (se comunica por el puerto USB) y utiliza driver paperSteppers, con señales de control D1 y D2, que son más económicos respecto a los que utilizan señales paso (step) y dirección (dir). En el siguiente enlace podremos encontrar información detallada respecto al tema:


Pese a la solución anterior, finalmente me incline por utilizar el software Match3 debido a que tiene muy buenas opiniones en la red y aunque tengo poco tiempo trabajando con él, puedo decir que es uno de los mejores programas para CNC, si no es que el mejor. Pero no todo es color de rosa, pues no es gratis, además de que la interfaz se realiza por puerto paralelo por lo que el problema del costo de los driver aún no está resuelto.

En esta página http://esteca55.com.ar se puede encontrar unos driver para motores PAP bipolares que emplea un PIC16F84A para convertir las señales paso y dirección en la secuencia correspondiente para hacer girar el eje del motor PAP. Al ver este proyecto me surgió la idea de utilizar un solo PIC para controlar por lo menos a tres motores PAP, pero al analizar la idea también surge la duda: ¿el microcontrolador será lo suficientemente rápido para poder procesar las tres señales de  paso simultáneamente y no perder pasos en los motores?

El microcontrolador elegido para hacer pruebas ha sido el PIC16F628, obviamente se programara en ensamblador para ejecutar el código lo más rápido posible, además el PIC funcionara overclock, a 24 Mhz. Partiendo del código utilizado para el driver “Driver Bipolar 16f84a-LB1845” de esteca, he realizado el código con las siguientes características

*Señales de entrada paso y dirección.
*Señales de salida a través de dos hilos D1 y D2 compatibles con driver paperSteppers.
*Una señal de salida para activar los tres Driver. Si después de 7.5 segundos no se recibe una señal de entrada, la salida cambia a nivel bajo, desactivando los driver.

Las pruebas las he realizado en Proteus, simulando tres señales de paso con la misma frecuencia que recibe simultáneamente el PIC16F628. En las salidas D1 que corresponden a los motores PAP e colocado tres contadores, de esta forma si alguna entrada pierde pasos se verá reflejada en el valor del contador con un valor menor que los demás, si no hay perdida de pasos los tres contadores tendrán el mismo valor. El diagrama es el siguiente:

Circuito de prueba para para conocer la duración de los pulsos “step”, que evita perder pasos en los motores.


De esta prueba he concluido que la mínima duración del pulso de entrada requerido para no perder pasos es de 11.5 µs (periodo de 23 µS), esa condición es para el caso de que las tres señales de paso ocurran al mismo tiempo, pero sino es así, el tiempo del pulso puede ser menor y no habrá perdida de pasos.

Ya sabiendo cual debe de ser el tiempo mínimo del pulso de la señal de paso, lo siguiente es averiguar si el programa de Match3 permite realizar esta configuración. Para esto vamos al menú Config y seleccionamos Motor Tuning, aparecerá la siguiente ventana.




Como vemos dentro del círculo rojo aparece el valor de la duración del pulso paso en la cual aparentemente no dice que el valor puede estar dentro del rango de 1 a 5 µS; por lo que no será suficiente para evitar perder pasos, no obstante si colocamos un valor superior a 25 y seleccionamos SAVE AXIS SETTINGS automáticamente lo corregirá a 25, entonces este es el valor máximo permitido y por lo tanto más que suficiente para evitar que nuestro driver pierda señales de paso incluso con una cristal de 20 Mhz. Cabe mencionar que he comprobado la máxima duración del pulso de 25 µS con el analizador lógico que incorpora el programador Pickit 2.

Con la seguridad de que nuestro driver funcionara correctamente lo que sigue es diseñar la interfaz para el puerto paralelo, para esto me he guiado nuevamente del proyecto Interfaz CNC v 1.4 de la página de esteca55.com.ar (¡qué buena página!); resultando el siguiente esquema y PCB.



Esquema eléctrico de la interfaz  mini CNC V1.0





PCB de la interfaz  “mini CNC V1.0




Distribución de entradas y salidas

Como se observar es una interfaz muy sencilla pero a la vez cumple con la mayoría de los requerimientos de una fresadora CNC de tamaño mediano ya que presenta las siguientes características:

·      Cinco entradas aisladas en las cuales se conectan los límites de cada eje, los interruptores de Home y el botón de paro,
·         Una salida a relé para activar el huesillo (taladro)
·         Dos salidas complementarias para activar los drivers de motores PAP. Como ya se mencionó los desactiva si en 7.5 segundos no se recibe alguna señal.
·          Tres salidas para drivers con señales de control D1 y D2

Una duda que podría surgir del esquema es ¿por qué a partir de la salida para activar los drivers se generó otra negada? La razón es que si utilizamos circuitos integrados (CI) diferentes a los clásicos L298 y L293 como por ejemplo el LB1845, será muy útil la salida negada pues estos CI necesitan un nivel bajo para activarse. En mi caso utilice dos CI LB1845 y un L298N.

En cuento a la configuración del puerto paralelo he optado por la misma que la del proyecto Interfaz CNC v 1.4  la cual es:

N° Pin
E/S
FUNCION
2
S
X PASO
3
S
X DIR
4
S
Y PASO
5
S
Y DIR
6
S
Z PASO
7
S
Z DIR
10
E
LIM X
11
E
LIM Y
12
E
LIM Z
13
E
HOME
14
S
RELE
15
E
STOP




Construcción de los driver  de potencia

Como anteriormente te comente, los controladores de potencia que implemente fue un L298N y dos LB1845.Para el LB298 la conexión fue tipo paperSteppers:



Esquema del driver de potencia para motor PAP bipolar (http://txapuzas.blogspot.com.ar)


Mientras que los driver de potencia LB1845 los recupere, tal cual, de la placa de control de una impresora EPSON STYLUS COLOR480, solamente modifique algunas entradas para que trabajen a dos hilos como se especifica en su hoja de datos



Tabla de verdad del driver LB1845 


Del diagrama de la siguiente figura los pines nombrados I01, I11, I02, I12 se conectan a tierra, ENABLE1 y ENABLE2 se juntan y los pines de entrada PHASE1 y PHASE2 son equivalentes a las entradas D1 y D2. El valor de Vref se ha fijado a 2.5 Volts para obtener una corriente de salida de 0.5 Amp con RE=0.51 ohm.





Circuito propuesto para el driver LB1845

Presento las siguientes imágenes para que observen como obtuve los driver LB1845 y como quedo la controladora CNC de bajo costo.



Aquí se observa la fuente de poder y la placa de control en el chasis de la impresora EPSON





Nuevamente vemos la placa de control más de cerca, las líneas rojas indican la zona que debemos de cortar para obtener el circuito útil de los dos LB1845. Observen como el encapsulado de los circuitos es diferente al que indica la hoja de datos, tal vez estos soportan menos corriente, aun así solamente los configuramos para una corriente máxima de 1 Amp. De esta placa también hemos recuperado el conector hembra para puerto paralelo además de una memoria RAM, dos transistores, algunos capacitores y otras cositas ¡no hay que desperdiciar nada! J.

Finalmente,  la controladora CNC terminada con la “mini CNC V1.0” los driver de potencia, los reguladores de tensión, y una terminal de conexiones montados en el mismo chasis de la EPSON. ¡No quedo muy prolijo pero lo importante es que funciona!







Instalamos dos reguladores de tensión un 7812 seguido de un 7805. EL de 5 V no hace falta decir que es para alimentar la interfaz  y la parte de control de los driver (ya lo dijeJ); y el de 12 V es para los ventiladores de los motores y de los drivers de potencia; estos se activan junto con los motores por medio de un transistor que recibe la seña ENABLE de la interfaz.

Por el momento, la controladora se alimenta con una fuente de poder de 15 volts aunque es recomendado alimentar los driver LB1845, que tienen un control de corriente por PWM, con una tensión de por lo menos el doble ya que así obtendremos mayor velocidad y torque en los motores, no obstante la fuerza que generan los motores con esta tensión al parecer es suficiente para mis propósitos.

Supongo que no ha pasado desapercibida la forma en que soldé los elementos en la placa mini CNC V1.0 (por el lado donde está el cobre), esto es porque la he realizado con la misma fresadora recién construida y al tener poca experiencia generando el código G en Eagle me ha sucedido que genere el código invertido (o reflejado, como se entienda mejor) y no me di cuenta hasta el momento en que quise colocar las piezas que obviamente no coincidían con el PCB esperado, casi me da un infarto del coraje J. En fin para no repetir el proceso tuve que castigarme armando la placa de esta forma, que al final no tuvo más problemas.

Bueno, si ya terminaste de reír con mi gran error J te menciono que en la siguiente entrada estaré presentando la descripción de la mini CNC y los métodos utilizados para su construcción, pero por el momento es todo. Me olvidaba, el proyecto completo lo puedes descargas más abajo el cual incluye el código en ensamblador, el archivo hex, el circuito de prueba en Proteus 7.9, el esquema y PCB en Eagle 6.3.


 Recuerda preguntas o comentarios son bien recibidos, hasta la próxima...


Descarga:




miércoles, 14 de mayo de 2014

Actualización del Firmware de “Mega-Herramienta”


A pesar de haber incorporado 15 funciones al instrumento en cuestión, la programación involucrada ocupo alrededor del 88 % de la memoria  Flash del PIC18F2550 y para no desaprovechar la valiosa memoria disponible he incorporado las últimas dos funciones que considero que valen la pena estar en el instrumento, además se realizaron algunas mejoras a las ya programadas funciones. Las mejoras que se realizaron están dirigidas principalmente al Firmware, sin embargo debido a estas fue necesario hacer una pequeña modificación en el circuito. A continuación describo los cambios realizados y las nuevas funciones agregadas.


Frecuencímetro

Esta función, además de desplegar el valor de la frecuencia ahora también indica en la misma pantalla el valor del ciclo de trabajo en por ciento para el rango de frecuencia de  0.7 Hz a 110 kHz, suficiente para muchas aplicaciones relacionadas a circuitos conmutables.
La mayor precisión del valor del ciclo de trabajo se encuentra en el rango de 0.7 Hz hasta alrededor de 40 kHz, pues rebasando este valor la precisión comienza a disminuir alcanzando un error máximo del 2% para frecuencias superiores a 95 kHz pero además el valor del rango del ciclo de trabajo que puede registrar el instrumento comienza a disminuir gradualmente a partir de 25 kHz, es decir una señal con frecuencia en torno a 95 kHz y con ciclo de trabajo cercano a 99 % o al 1% será registrada por el instrumento como una señal con ciclo de trabajo de  9 % o 91% según sea el caso. Sin embargo, esta desventaja no es un gran problema pues en el peor de los casos con frecuencias cercanas al límite del rango medible tendremos un error del 2% con un rango de medición del ciclo de trabajo de 10 % a 90 %.
Con el valor del capacitor (22 pF) que funciona como filtro de cd para la entrada de frecuencia, de la versión anterior no se consigue leer correctamente el ciclo de trabajo de frecuencias menores de 70 Hz, por lo tanto es necesario cambiarlo por uno de mayor valor. Con un capacitor de 1 nF se logran medir correctamente ciclos de trabajo de hasta 1 Hz.

Frecuencia y ciclo de trabajo mostrados simultáneamente en el LCD.



VOLT-AMP- PWM-°C

Tanto la magnitud del voltímetro,  amperímetro y salida PWM se muestran simultáneamente en el LCD, la razón es porque al utilizar la salida PWM para manejar cargas como por ejemplo motores o focos incandescentes, es conveniente conocer el valor de la corriente suministrada.


Medición de tensión, corriente y salida de PWM con frecuencia de 32.29 kHz al 50 % del ciclo de trabajo. La flecha indica que variable se modifica con los botones C7 (-) y B1 (+). La misma se desplaza con los botones C6 y B2.

Esta disposición también se encuentra en la primera versión, la novedad es que se agregó la función de termómetro en la que se puede programar la máxima temperatura a la que operara el PWM, superando el valor programado, la salida del PWM permanece en nivel bajo. Esta característica es muy útil si se utiliza el instrumento como monitor de un cargador de baterías, ya que si se configura el módulo PWM con ciclo de trabajo del 100 % la salida permanecerá en nivel alto por lo que se puede emplear para controlar un interruptor (por ejemplo un relé o un triac), que cortara el suministro de energía cuando el sensor utilizado como sonda adherida a la batería alcance cierta temperatura que puede dañar a la misma.



Configuración de la máxima temperatura de operación del PWM.



En fin estos son solo dos ejemplos de aplicaciones en las que puede ser útil la disposición de las funciones en el instrumento.
Cabe mencionar que el valor del ciclo de trabajo y frecuencia del PWM configurada ahora se almacena en la EEPROM del micro tras salir de la función, así al volver a utilizarla, la configuración será la misma que la última ocupada.
Para lograr esta actualización se cambió la conexión del interruptor rotatorio de la siguiente manera.


Nueva conexión del interruptor rotativo
Básicamente, solo se invirtió el orden de conexión del polo que corresponde a la etiqueta TEMP


Control de servomotores

Tal función genera una señal PWM de 50 Hz con ciclo de trabajo ajustable de 2.5 % a 12.5% con paso de 1.666… %  lo que se traduce (para los servos que funcionas con estas señal, por ejemplo el HITEC HS-311)  en un avance del eje del servo de 0° a 180 ° con pasos de 30°.


Con los botones C6 (-) y C7 (+) se controla la posición del eje del servomotor.



Decodificador IR de protocolo Philips RC-5 y Sony SIRC 12 bits

Nos muestra en el LCD el valor de la dirección y los datos en formato decimal del protocolo seleccionado.En las revistas  UCONTROL número 8 y 10 se encuentra información relacionada a los protocolos mencionados.
  

Presionando C6 o C7 se elige el protocolo IR a decodificar.



Para utilizar esta función adecuadamente se necesita que los datos de entrada no se encuentren invertidos para ello recomiendo el siguiente circuito que utilice para realizar las pruebas.

Circuito receptor de señales IR



Placa receptora de señales IR junto al Pickit 2.



Parte trasera de la placa IR.

El receptor IR utilizado es desconocido ya que lo obtuve de un proyector de video y la única nomenclatura que le encontré fue V2138 pero haciendo pruebas registre que el rango de la frecuencia portadora  que detecta es de 35 kHz a 43 kHz lo que es ideal para trabajar con dos protocolos distintos pues la onda portadora del protocolo RC-5 y Sony SIRC es de 36 kHz  y 40 kHz respectivamente.


Conclusión

Entre otras actualizaciones que se realizaron al instrumento involucran una mejor lectura de los botones y una adecuada visualización de valores del inductometro.
Con las anteriores actualizaciones, la memoria Flash ocupada del PIC18F2550 llega al 98 %  lo que indica que ya no se podrán programar nuevas funciones, a no ser que se remplace alguna existente, pero esta solución no es muy conveniente pues se pierde una función acosta de una nueva.
Como di a entender en la entrada anterior correspondiente al probador de semiconductores pretendo hacer una fusión de ambos instrumentos, por supuesto empleando un microcontrolador con más memoria y más E/S, pero antes de elegir el nuevo micro es importante terminar el analizador de semiconductores, que por el momento no he avanzado como quisiera debido a que se e abordado un nuevo proyecto, el cual tratare en la próxima entrada, sin embargo completar el probador de semiconductores es una prioridad ya que lo he necesitado más de una vez y como lo tengo armado en protoboard aún no es cómodo su uso. En lo que respecta al código fuente de Mega-Herramienta escrito en C de CCS C Compiler lo liberare al terminar el analizador de semiconductores, a quienes lo requieran les pido paciencia J.

Para finalizar dejo el nuevo Firmware, que se carga al instrumento por medio del Bootloader siguiendo el procedimiento ya explicado anteriormente, y tanto el diagrama como el PCB actualizado en ISIS y ARES de Proteus  v7.9. Ya saben que cualquier duda o comentario es muy bien recibido, gracias por su atención y nos vemos en la próxima entrada con un nuevo proyecto interesante J J J.






viernes, 21 de marzo de 2014

Probador de semiconductores con el microcontrolador PIC18f2550 (Parte I)



El actual proyecto que abordaremos, no puede faltar en la mesa de trabajo de un técnico, profesionista o aficionado a la electrónica. Se trata de un probador automático de semiconductores que nos facilitara el análisis para conocer si un semiconductor (por ejemplo un transistor) se encuentra en buenas condiciones, además nos ahorrara tiempo valioso al no tener que averiguar las principales características de algún transistor desconocido ya sea en internet o utilizando un método practico; pues como bien sabemos resulta molesto tener que llevar a cabo aquel proceso constantemente.

La idea surgió ya desde hace algún tiempo pero no fue hasta que encontré en la red el “ESR Meter / Transistor Tester” (siguiente figura) que me inspiro a construir un instrumento mejorado, pese a que esta versión ya cuenta con  muchas funciones. 


Figura 1 ESR Meter / Transistor Tester de Electronics-DIY.com


Tras analizar el diagrama y comprender el funcionamiento comenzamos a realizar el código desde cero para el microcontrolador PIC18F2550, pero después de lograr reconocer transistores bipolares, resistencias, diodos y capacitores nos dimos cuenta que nos llevaría mucho tiempo lograr alcanzar nuestro objetivo ya que es necesario programar muchas condiciones para la correcta detección del dispositivo bajo prueba. Así que investigando un poco más para facilitar la detección del semiconductor y realizar el instrumento lo más pronto posible localizamos la página del autor (en Alemán) en donde hay mucha información acerca del tema y por supuesto el código en lenguaje C del microcontrolador AVR. Al parecer el proyecto original surgió de una revista de Elektor llamada “SC Analyser2005”. También nos sorprendimos al darnos cuenta de que las nuevas versiones del instrumento ya contaba con más funciones, tales como medición de inductancias y frecuencia, aun así el objetivo es lograr reproducir el instrumento con el microcontrolador PIC18F2550 empleando parte del algoritmo del autor Karl-Heinz Kübbeler y agregando más funciones (pasar algunas del Mega-tool). Aunque ciertas partes del código en C para AVR no son compatibles con el lenguaje del compilador CCS, no será mucho problema adaptarlo para que logre la misma función. Sin duda nos ahorra mucho tiempo el trabajar con un código preexisten.

Por el momento el circuito que utilizamos para realizar las pruebas se presenta en la figura 2, en el cual se han seleccionado cuidadosamente los pines que se utilizaran para las pruebas de reconocimiento del semiconductor y también para nuevas funciones. Como se darán cuenta no se está usando un LCD para mostrar los resultados, en cambio se optó por utilizar el puerto serie (configurado a 115200 baudios) para desplegar los datos en la PC (terminal serie del compilador CCS)  y también se utiliza el bootloader serial así es más cómodo realizar las pruebas. Posteriormente con forme avancemos en el proyecto se ira modificando el esquema para acomodar el LCD y los botones que sean necesarios, mientras tanto el botón 1 se encarga de comenzar la prueba de identificación de componente y el botón 2 es para activar el bootloader si se presiona durante la conexión de la fuente de alimentación.

La técnica de identificación consiste en seguir una serie de pruebas con 6 combinaciones posibles de estados lógicos (tierra positiva o flotante) en las terminales de salida. Una combinación comienza estableciendo una terminal de entrega un nivel alto (RA0, RA1 o RA2), otra un nivel bajo con la resistencia de 680 Ω (RC0, RC1 o RC2) y la última terminal se pone a nivel flotante (RB2, RB3 o RB4). A partir de esta configuración comienzan la prueba para identificar el componente desconocido, donde cada pin puede estar en nivel alto, bajo o flotante. Cabe señalar que aunque cada terminal se forma con tres pines del microcontrolador de ningún modo pueden tener niveles de tensión contrarios, es decir, que un pin se encuentre en estado alto y otro en bajo.

Figura 2 Esquema del probador de semiconductores con PIC18f2550.

Antes de mostrar los resultados logrados con el código traducido de C para micros AVR a C de CCS, es recomendable hablar de los métodos que se emplean para la detección de los diferentes tipos de semiconductores; los cuales ya se han traducido al lenguaje C de CCS. No pretendo llenar esta entrada con los métodos detallados que se utilizan pues estos se encuentran en la página del autor de la versión del SC-Tester en que nos basaremos, simplemente será un resumen que nos permitirá comprender rápidamente el funcionamiento. ¡Comenzemos!



Procedimiento de prueba de transistores bipolares y transistores MOSFET de acumulación.

Con este mismo examen se pueden diferenciar transistores bipolares y MOSFET de acumulación (también conocidos como MOSFET de enriquecimiento) debido a que presentan similitudes, respecto a la tensión en la resistencia de carga, cuando se activar la base y puerta de los respectivos transistores.
Para poder realizar esta prueba es necesario que se cumpla la condición V1 < 1.0 volt con resistencia infinita, es decir, entrada flotante en la base o puerta. V1 se puede identificar en la figura 3 como la tensión en la resistencia R1.

Identificación de transistores bipolares PNP y  MOSFET canal P
El primer paso consiste de colocar la llave (puerta o base) del transistor a nivel bajo a través de la resistencia R2 (680 Ω) de la figura 3. Entonces si V1 >  3.4 volts; se trata de un transistor PNP o un MOSFET-P, para diferenciarlos ahora la llave se pone a tierra por medio de R3 (470 kΩ) y si V2 > 1.0 volts es un transistor PNP de lo contrario es un MOSFET-P.

Figura 3 Configuración para la prueba de transistor bipolar PNP y MOSFET-P.

 Si el dispositivo se ha identificado como un transistor PNP, esta prueba se repite con el colector y emisor intercambiados. Posteriormente se comparan los resultados obtenidos en V1 para identificar el patillaje, pues con una conexión invertida la ganancia es bastante menor. La ganancia (hFE o B) es: (V1/R1) / (V2/R3). Y Uf es: 5 – V2.
Por otra parte, si se ha identificado un MOSFET-P se realiza una prueba más para confirmar que se trata de dicho tipo de transistor, la cual consiste de poner la supuesta puerta a alta impedancia (flotante)  y si V1 < 0.1 volts, efectivamente, es un MOSFET-P.
El siguiente paso es calcular la tensión de umbral (Vt); para ello se coloca brevemente la puerta a nivel alto con la resistencia de 680 Ω, posteriormente la puerta se posiciona a nivel bajo solo con la resistencia de 470 kΩ y se espera hasta que en V1 presente un nivel lógico de 1, al suceder inmediatamente se registra el valor en V2, después restando V2 de 5 se consigue Vt. En el caso de un MOSFET, solo baste una prueba para conocer el patillaje correcto.

Identificación de transistores bipolares NPN y  MOSFET canal N
El proceso es similar al anterior, solo cambian el valor de las condiciones. Por lo tanto el algoritmo es el siguiente.
Con R2 de la figura 4 a positivo, si se cumple V1 < 2.4 volts entonces: es un transistor NPN o MOSFET-N.
Para diferenciarlos ahora la llave del transistor se conecta a positivo por medio de R3, si V2 < 2.4 volts se trata de un transistor NPN, si la condición no se cumple tenemos un MOSFET-N.
El siguiente paso para el transistor NPN es el mismo que en el caso anterior pero ahora la ganancia es: ((5-V1)/R1) / ((5-V2)/R3). Y Uf es: V2.
Para esta situación, también se realiza la misma prueba para confirmar que se trata de un MOSFET-N de acumulación. En cuanto a la obtención de la tensión de umbral solo se invierte la lógica aplicada del procedimiento anterior, resultando Vt igual al valor obtenido en V2.

Figura 4 Configuración para la prueba de transistor bipolar NPN y MOSFET-N.


Procedimiento de prueba de transistores JFET y  transistores MOSFET de deplexión.

Los dos tipos de transistores presentas ciertas similitudes, en consecuencia es conveniente realizar la misma prueba para ambos.
En este caso, para realizar la prueba de identificación de transistores JFET y MOSFET  de deplexión (también conocidos como MOSFET de empobrecimiento) debe existir una mínima continuidad entre el drenador y la fuente con la configuración 1 de la figura 5, por supuesto con entrada flotante en la puerta. Es decir, tiene que ser positiva la condición: V1 > 92 mV

Identificación de transistores bipolares JFET canal N y  MOSFET de deplexión canal N
Ya que se cumplió la condición anterior el siguiente paso radica en conectar a tierra la sospechada puerta, con la configuración 1 (figura 5) y almacenar el valor de V1 en V1[0] -por ejemplo-, a continuación la puerta se coloca a positivo y nuevamente se almacena el valor de V1 en V1[1]. Ahora si la relación V1[1] > V1[0] es cierta, entonces se trata de un MOSFET de empobrecimiento o JFET canal N.
Para diferenciarlos se registra la tensión en la puerta con la configuración 2 de la figura 5. En el caso que V2 > 3.9 volts se trata de un MOSFET-N de empobrecimiento de lo contrario es un JFET-N.


Figura 5 Configuración para la prueba de JFET-N y MOSFET-N de deplexión.

Identificación de transistores bipolares JFET canal P y  MOSFET de deplexión canal P
El procedimiento es casi idéntico, diferenciándose por el arreglo mostrado en la figura 6 y la lógica invertida, ya que ahora la puerta se coloca a positivo a través de la 470 kΩ y se almacenar el valor de V1 en V1[0] a continuación la puerta se coloca a tierra almacenándose el valor de V1 en V1[1]. Ahora si V1[0] > V1[1] se cumple, entonces se trata de un MOSFET o JFET canal N.
Para distinguirlos se mide la tensión en la puerta con la configuración 2 de la figura 6. En el caso que V2 < 1 volts se trata de un MOSFET-P de empobrecimiento de lo contrario es un JFET-P.

Figura 6 Configuración para la prueba de JFET-P y MOSFET-P de deplexión.



Procedimiento de prueba de tiristores

Con esta prueba se identifica un triac de un SCR. Al igual que en la prueba de identificación de  transistores NPN y MOSFET-N, también debe de satisfacerse la condición V1 < 2.4, con la configuración 1 de la figura 7, para iniciar el examen.
Si se cumple el requisito anterior el pin que se sospecha que es la puerta se manda a tierra y casi inmediatamente de desconecta para permanecer flotante, a su vez se registra la tensión en V1-1. Lo siguiente es conectar el probable A2 (ánodo 2) a tierra por un corto periodo para luego regresarlo a nivel alto y leer el valor en V1-2. Y sí; V1-1<2.4 volt  y  V1-2>4.4 volt se confirma la presencia de un SCR o triac.
La identificación del semiconductor involucra 4 pruebas más considerando la configuración 2 en la figura 7.
La primera se realiza tal cual la configuración 2, si V1> 0.2 volts es un SCR (ya no es necesario las siguientes pruebas).
Para la segunda prueba la posible puerta se conecta a tierra, si se trata de un SCR este no debe de conducir, por lo que debe de cumplirse las siguientes relaciones: V1<0.7 y V2<1 (ya no es necesario las siguientes pruebas).
En la tercer prueba la puerta se pone en estado flotante y si V1<0.7 es un SCR (ya no es necesario las siguientes pruebas).
Por ultimo si ninguna condición se ha cumplido al posible A2 se conecta a positivo brevemente y se regresa a tierra. Si V1 > 0.2 el dispositivo es un SCR de lo contrario es un triac.
Si bien el método empleado es correcto, debido a que la máxima corriente que se puede suministrar a la puerta de 7.3 mA (con resistencia de 680 Ω ), esta puede ser insuficiente para activar el tiristor, en consecuencia el instrumento no podrá detectar tiristores cuya corriente de disparo sea superior.

Figura 7 Configuración para la prueba de tiristores.




Procedimiento de prueba de diodos y resistencias

Estas pruebas se realizan al final del algoritmo. En el caso de los diodos el método es relativamente sencillo ya que si se presenta una caída de tensión de entre 0.15 y 4.64 con el arreglo de la figura 8 y si aún no se ha encontrado algún elemento es muy posible que se trate de un diodo. Cuando existen 2 o más diodos los resultados se almacenan en arreglos para posteriormente mostrar los resultados ordenadamente.
La medición de resistencias se realiza por dos divisores de tensión con 680 Ω y 470 kΩ, los valores resultantes se comparan respecto a 2.5 volts, el que se encuentre más cerca será el que se utilizara para obtener el valor más preciso posible de la resistencia desconocida. Debido a que puede haber falsas detecciones con la presencia de un diodo el procedimiento se repite con la polaridad invertida del componente si los resultados son bastante parecidos es bastante probable que sea una resistencia.

Figura 8 Configuración para la prueba de diodos y resistencias.




Resultado conseguidos hasta el momento

Debido a  que por el momento no contamos con tiristores, JFET y MOSFET de empobrecimiento no hemos podido realizar las respectivas pruebas con estos elementos, sin embargo el código actual en CCS ya puede identificarlos. A continuación los resultados de varias pruebas a transistores y resistencias.

BC548:
NPN B=2 C=1 E=3 hFE=266 Uf=888 mV
BC549:
NPN B=2 C=1 E=3 hFE=241 Uf=824 mV
BC547:
NPN B=2 C=1 E=3 hFE=534 Uf=814 mV
TIP41C:
NPN B=1 C=2 E=3 hFE=37 Uf=721 mV
B857:
PNP B=1 C=2 E=3 hFE=191 Uf=682 mV
STC733:
PNP B=3 C=2 E=1 hFE=318 Uf=839 mV
IRF9610:
P-E-MOS C= GDS=123 D Vt=3690 mV
IRF730A:
N-E-MOS C= GDS=123 D Vt=3508 mV
FDS6961A:
N-E-MOS C= GDS=321 D Vt=1897 mV
SBL2040CT:
Diodos: 1->|-2-|<-3
Uf=191 mV 191 mV
LED ROJO:
Diodo: 2-|<-3                                                                                                                                     
Uf=1821 mV 
1N4148:
Diodo: 2-|<-3                                                                                                                                       
Uf=726 mV
R-98.8Ω:
Res: 3-1 R=100 ohm
R-9.83KΩ:
Res: 2-1 R=1001 ohm
R-9.88KΩ:
Res: 3-2 R=9802 ohm
R-99.7KΩ:
Res: 3-1 R=99.5 kohm
R-978KΩ:
Res: 3-1 R=905.9 kohm

Como se habrán percatado aun no aparece el valor de la capacitancia de la puerta de los MOSFET, pues aún no se ha realizado el código para leer capacitancia debido a que el método empleado en el código original no es compatible con las características del micro controlador PIC18F2550 , por lo tanto el código lo realizaremos por nuestra cuenta.
Para terminar esta entrada, dejo a su disposición el código original en C para AVR y el código C de CCS que he traducido además del archivo SC-TEST.hex para programar directamente el micro, que incluye el Bootloader serie para CCS. Cabe mencionar que solo se ha ocupado el 42 % de la memoria del PIC18F2550 a pesar de no ser cuidadoso en el gasto de la memoria.  Lo anterior es buena señal, pues así podremos incorporar más funciones al instrumento. En la próxima entrada, si todo va bien, espero reportar los resultados del código para leer capacitancia e inductancia.


DESCARGAS: