Publicidad

sábado, 3 de diciembre de 2016

PLC con USB usando PIC16F876A

Este es un circuito que se desarrolla en función a varios proyectos del site, primero el PLC - uPLCCS - PIC el cual detalla un PLC de programación ICSP (donde uno debe contar con su programador propio), pero este proyecto muestra que se puede programar tanto en ASM, como C, como LADDER, gracias a un IDE para LADDER llamado LDmicro que se encuentra disponible de forma gratuita en la Web de su autor (http://cq.cx/ladder.pl) también van a encontrar los tutoriales, también es posible programar en C con el compilador que deseen (para Microchip), o bien el viejo conocido ASM.

Otro proyecto que se amalgama con este nuevo PLC USB es el transceptor USB/UART, el cual podemos encontrar en el blog como Conversor USB UART TTL, este en base al transceptorMCP2200 cumple la función de crear un puerto serial virtual vía la conexión USB, el cual con sus drivers (proporcionados gratuitamente por Microchip), encontraremos en nuestro administrador de dispositivos del OS, un nuevo puerto Serial.

Como la mayoría de los microcontroladores que utilizan programación en circuito requieren una señal serial de dos hilos por ejemplo el Clock y el Data, para la programación del mismo, también requieren de una tensión elevada para acceder al modo programación (actualmente existen microcontroladores que utilizan bajo voltaje para esta programación LVP), La mayoría de los microcontroladores utilizan de 10 a 13V para entrar en modo programación lo cual como sabrán excede nuestros 5V del USB, la solución de los programadores en circuito del tipo serial, es aprovechar la norma RS232 que establece unos +/-10V en su norma lo cual aprovechado y canalizado de forma tal provee de esa tensión de programación a los microcontroladores.

Hasta aquí seguimos igual, ya que no usaremos puerto Serial sino USB, aquí el problema de los transceptores comerciales, la mayoría (el 99%) poseen una salida serial a nivel TTL, es decir en 0 y 5V lo que no nos permite programar el microcontrolador ya que requerimos mas de 10V para ello, Claramente es posible realizar una pequeña fuente del tipo SMPS Step-Up para elevar esa tensión en el pin de grabación pero aquí tenemos otra solución tan antigua como la anterior.

Los llamados Bootloader, estos son Cargadores de Arranque cumplen la función de canalizar el programa que programamos en un sector preestablecido de la memoria interna sin necesidad de programar a nivel hardware (con el acceso a programación que mencionaba anteriormente con los 10 a 13V) sino que el programa se aloja mediante otros pines que no son los de programación Data y Clock, es decir.

El microcontrolador debe programarse a nivel hardware una sola vez, donde se grabara el Bootloader, una vez grabado este ya no se requiere grabar nuevamente el microcontrolador.

Esto posee pros y contras: 
Pros, es que es mas sencilla la programación, no se requiere de placas especiales de programación y facilita la transferencia del archivo.

Contras, se requiere el microcontrolador con el Bootloader grabado previamente y este mismo consume una pequeña parte de la memoria del micro la cual se restara al programa que realicemos.

En el caso del Bootloader también se puede descargar gratuitamente desde la Web de Microchip (debe ser el que soporta el microcontrolador que vamos a utilizar y también debe detallar el clock que utilizamos).

En el caso de este PLC se utiliza un PIC16F876A el cual cumple su función correctamente pero siempre se pueden utilizar otros diferentes, por razones de costos este viene bien, pero claramente hay otros con puerto USB embebido mediante HID lo cual nos ahorra el MCP2200.

El software debe ser cualquiera que envíe el archivo vía serie que el puerto serial será el virtual creado por el driver del MCP2200 mencionado anteriormente. 

En mi caso he desarrollado un programa cargador para este fin en lenguaje Delphi, pero pueden realizarlo ustedes en el lenguaje que quieran solamente tienen que tener en cuenta que la velocidad de transferencia serial es 9600bps, pero en realidad pueden usar cualquier cargador de Internet.

En la nota de aplicación 851 pueden encontrar una versión del Bootloader de Micrcochip. http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en012031

Especificaciones:

8 Entradas Digitales de 12/24V asiladas con opto-acoplador.

5 Entradas analógicas hasta 5V auto-reguladas.

4 Salidas a contacto de 12V a 250Vac 5A.

Puerto de alimentación de 12V con protección de cambio de polaridad.

Puerto USB, para la carga del programa y para comunicaciones seriales.

Botón de Reset, para reiniciar el sistema y para cargar el programa.

Microcontrolador a utilizar PIC16F876A

            Tipo de memoria de programa: Flash
            Memoria de programa: 14KB
            Velocidad del CPU: 5 MIPS
            Memoria RAM: 368 bytes
            Memoria EEPROM: 256 bytes
            ADC: 5 canales de 10bit de resolución
            Temperatura de trabajo: -40 a 125°C

A continuación se detalla el hardware como también su PCB.









viernes, 2 de diciembre de 2016

Conectar un relevador con un microcontrolador o arduino

Este post es parte de la serie “Circuitos de entrada/salida para microcontroladores y sistemas digitales”. En esta entrada explicaremos con cierto nivel de detalle como conectar un relevador con un microcontrolador o arduino mediante un transistor Mosfet canal N o BJT tipo NPN. Los circuitos aquí mostrados deberían funcionar con cualquier microcontrolador y circuito digital… El límite es la imaginación.
Para conectar un relevador o cualquier otra carga inductiva (bobina) es necesario tomar ciertas precauciones si deseamos un funcionamiento óptimo del circuito a lo largo de su tiempo de vida. Los factores más importantes a considerar son:
  • Voltaje de operación del relé, solenoide, electro valvula, etc.
  • Corriente de operación de la bobina.
  • Voltaje de operación del microcontrolador.
  • Fuerza contraelectromotriz generada por la bobina del relevador.
En esta entrada hablaremos sobre todos los factores involucrados en conectar cargas de mediana potencia a un microcontrolador. Esperamos que la información te sirva mucho a la hora de diseñar tus propios circuitos.

Conectar un relevador con un microcontrolador mediante transistor Bipolar o BJT

Probablemente la pregunta más elemental es ¿Por qué utilizar un relevador y transistores?. Bueno, pues los pines de un microcontrolador están limitados en la corriente que pueden proveer a una carga externa, en la mayoría de los casos, la corriente que se puede obtener de un pin esta limitada a unos 10 a 30 mA en el mejor de los casos. Corrientes superiores pueden dañar la estructura interna del PIN. Para controlar cargas mayores se requiere utilizar transistores y/o relevadores. En el caso de los relevadores, también nos ayudan a proveer aislamiento eléctrico entre el circuito de control y el circuito a controlar.
Como un pin del microcontrolador normalmente no alcanzará a manejar correctamente la bobina de un relevador, requerimos una etapa intermediaria basada en un transistor BJT o Mosfet que a su vez activará la bobina. Un transistor BJT es un dispositivo controlado por corriente, es decir, requiere una corriente de base para comenzar a conducir. Dicha corriente es muy pequeña a comparación de la corriente que controla en sus otras dos terminales. Para conectarlo a nuestro microcontrolador hace falta una resistencia que limite la corriente de base y sin embargo, proporcione la corriente justa para llevar el transistor a un estado de “saturación”. Como en esta aplicación en concreto estamos conectando una carga inductiva, también debemos colocar un diodo que protege al transistor de los picos de voltaje generados por la bobina del relé.
La figura muestra los componentes básicos para conectar un relevador con un microcontrolador.
La figura muestra los componentes básicos para conectar un relevador con un microcontrolador.
No hablaremos mucho sobre la razón para colocar este diodo, ya que no es la intención principal de este artículo, pero aclararemos un hecho importante: Los inductores se oponen a los cambios en la corriente y por lo tanto, una desconexión súbita de la alimentación de la bobina del relé va a generar un pico de voltaje en las terminales del bobinado. El diodo esta ahí para disipar de manera segura la energía acumulada en la bobina del relevador y mientras más rápida sea la respuesta del diodo, mejor. Es por esto que se prefieren los diodos de tipo schottky. Para comprender mejor este fenómeno, es necesario estudiar la ley de inducción magnética (ley de Faraday) y la ley de Lenz, pero como ya dijimos, queda de tarea.
Vamos ahora a concentrarnos en los componentes a elegir, utilizaremos como ejemplo un relevador G5-LE de Omron con bobina de 5V:
  1. Además de que el relevador debe tener capacidad en sus contactos para manejar la carga a controlar, nos interesa la corriente máxima que demandará la bobina para activar los contactos. Si no disponemos de una hoja de datos podemos medir su resistencia en DC con un multímetro y obtener la corriente usando la ley de ohm: I=V/R. En nuestro ejemplo la resistencia es de unos 60 Ohms. Entonces la corriente es I=5/0.06=0.083A
  2. Conociendo la corriente debemos elegir un transistor. Opciones válidas para relevadores pequeños son los clásicos BC547 o 2N2222. Ambos deberían funcionar correctamente para 83 mA. En caso de que nuestro relé requiera corrientes más grandes, posiblemente debamos usar transistores Darlington de mayor potencia.
  3. Otro parámetro importante para elegir el transistor es el voltaje de la bobina del relevador. Podemos utilizar relevadores con voltajes de alimentación mayores que el de la fuente de alimentación del microcontrolador, siempre que el transistor de conmutación lo permita. El Vce (voltaje colector emisor) del transistor elegido debe superar ampliamente el voltaje de alimentación de la bobina del relevador.
  4. Para calcular R1 se debe tomar en cuenta la ganancia del transistor. Calcularemos un valor que permita llevar el componente a saturación. Sabemos que la corriente máxima que puede fluir por el transistor es de 83 mA y de las características de un transitor bipolar se sabe que  Hfe = Ic / Ib  (Hfe es la ganancia en corriente o beta del transistor).
  5. Calculamos la corriente mínima que requerimos en la base del transistor: Ib = Ic / Hfe = 0.083/120 = 0.6 mA.
  6. Como podemos ver del paso anterior hace falta una corriente muy pequeña para activar el relevador utilizando el transistor. Ahora calculamos una resistencia que limite la corriente de base, pero que asegure que al menos se entreguen 0.6 mA. De la ley de ohm R = V / I = 4.3 / 0.0006 = 7166 Ohms. Debemos entonces usar una resistencia menor a 7.1 KOhms.

Conexión con un transistor Mosfet canal N

A diferencia del BJT, un MOSFET se activa debido a un voltaje en su terminal de compuerta.  Un MOSFET requiere una corriente insignificante (lo decimos literalmente) en el terminal Gate, pero requiere que garanticemos un voltaje mínimo para su activación. Dicho voltaje viene especificado en la hoja de datos como “Threshold Voltage”. Además, debemos tener en cuenta que la alta impedancia de entrada del Mosfet hace que se requiera una resistencia que mantenga el terminal Gate con un potencial bajo cuando el microcontrolador se encuentra en reset o con el pin esta configurado en estado de alta impedancia. La conexión es bastante similar a como se realizaría con un un transistor bipolar:
Conectar un relevador con un microcontrolador utilizando un Mosfet Canal N.
Conectar un relevador con un microcontrolador utilizando un Mosfet Canal N.
La resistencia en el Gate del Mosfet no debe permitir que se exceda la corriente máxima admisible del pin, generalmente un valor de 10 a 100 K funciona bien y nos permite mantener el MOSFET en estado de corte aunque el Gate este desconectado o el microcontrolador este en reset.

Conclusión

En este artículo aprendimos las bases para conectar un relevador con un microcontrolador y controlar dispositivos de potencia. Principalmente nos enfocamos en los detalles del funcionamiento de cada componente así como los valores que deben tener. Con esto pretendemos lograr que todos ustedes puedan aplicar estas “reglas” a otros diseños y así tener los conocimientos y reglas generales a la mano cuando se requieran

Chipquik: Aleación especial para desoldar componentes SMD.


Acabo de recibir un paquete de 4.5 pies de una aleación especial para desoldar, junto con una jeringa de flux de la marca americana chipquik. Este producto es simplemente una aleación con la característica de poseer un punto de fusión muy bajo.
Cuando hablamos de desoldar componentes de montaje superficial, existen muchos métodos posibles; algunos de ellos implican herramientas algo costosas, como estaciones de aire caliente y hornos infrarrojos. Sin embargo, el método propuesto por los fabricantes de chipquik destaca por la sencillez de la herramienta requerida: solo se requiere un cautín (soldador) estándar para electrónica, aunque uno con temperatura controlada se desempeñará mejor.
Si estas dudando si vale la pena comprar este producto continúa leyendo mi experiencia al utilizarlo y mi opinión al respecto.
El método de chipquik consiste en aplicar una aleación de metales sobre los pines del componente SMD. La formula secreta de esta seguramente la conocen muy pocas personas, pero tiene un efecto casi mágico al mezclarse con la soldadura existente en el circuito impreso, ya que disminuye considerablemente la temperatura necesaria para fundir el metal. El punto de fusión de la aleación resultante es de al rededor de 58 grados centígrados. El resultado de bajar el punto de fusión del metal es que la unión permanecerá derretida más tiempo, permitiéndonos desoldar y maniobrar integrados con cientos de pines, con tan solo aplicar calor con el cautín.
El siguiente vídeo, muestra el proceso para remover un circuito integrado.

El funcionamiento del producto que recibí es idéntico al que se ve en el vídeo, la verdad resulta demasiado fácil remover un circuito integrado con varias decenas de pines.

Conclusión

Mi conclusión personal sobre el producto es que es algo caro para utilizarse cotidianamente. El bote con 4.5 pies de aleación cuesta 32 USD, poniéndolo muy por encima del costo de la propia soldadura. Además hay que considerar que existen muchos otros métodos caseros para desoldar componentes con cientos de pines que resultan mucho más baratos, como el alambre por debajo de los pines.
Realmente el área de aplicación del producto se reduce a trabajo de campo, donde no podamos disponer de herramientas de aire caliente, o bien para trabajos muy delicados, en los cuales debemos recuperar integro el componente  que estamos removiendo (no podemos arriesgarnos a dañar o arrancar pines) o que por los componentes que rodean el área de trabajo, no podemos utilizar otras técnicas para desoldar.
Aunque se trata de un producto innovador, creo que el principal impedimento para su comercialización masiva es su costo. Aún así, para trabajos delicados o para aplicaciones aún no descubiertas y documentadas, puede ser un verdadero alivio contar con un poco de este producto en nuestro taller. Desde mi perspectiva, sería mi método favorito para desoldar componentes SMD si fuera un poco más barato.
Si te gusta lo que ves en el video, puedes ordenar un poco para probarlo. Existe un kit muy barato con todo lo necesario para probar este producto.

Como soldar correctamente (Tutorial soldadura cautín y estaño)

Navegando en Tinkerlog, una de las páginas que acostumbro frecuentar, me encontré con un manual sobre soldadura realizado en forma de cómic que describe el proceso de soldadura con cautín y estaño en tarjetas electrónicas. Muchos pueden pensar que es fácil y de hecho lo es, pero esta guía realizada en forma de historieta nos mostrará algunas sugerencias para mejorar nuestra técnica. En el cómic veremos las herramientas y técnicas para realizar la soldadura de componentes electrónicos, es incluso apto para aquellas personas que nunca han soldado.
En un principio encontré el cómic en inglés y me disponía a traducirlo al español cuando me di cuenta de que  este documento ya esta disponible en varios idiomas desde su página oficial. Además tiene la ventaja de que se publica bajo licencia Creative Commons. Continúa leyendo para ver el documento completo o para descargarlo.
Para descargar el documento desde nuestro servidor, puedes utilizar el siguiente enlace:

Desoldar componentes SMD (SMT)

Quiero compartir con los lectores esta técnica que encontré para desoldar circuitos electrónicos de montaje superficial. Este método me pareció bastante ingenioso y sencillo de realizar y posiblemente las “herramientas” necesarias para realizarlo podrían usarse multitud de veces antes de que necesiten reemplazarse. En este video podemos ver como desoldar circuitos integrados utilizando un cautín (soldador) común y un alambre de cobre doblado, podemos doblar varios trozos de alambres de forma que puedan servirnos para distintos encapsulados.

Después de ver el video, ¿Que opinas, te animas a intentarlo?

Como Instalar una Librería de Arduino

Si ya llevamos un rato jugando con nuestro arduino y poco a poco nos convencemos para enfrentar proyectos cada vez más ambiciosos, seguramente nos encontraremos muy pronto en el siguiente escenario: Acabamos de adquirir un shield de arduino  o un flamante nuevo sensor que requiere una librería especial para poder acceder a sus funciones y no sabemos como instalar el software necesario para hacerlo funcionar. En este tutorial te explicamos como instalar una librería de Arduino tanto en Windows  como en Mac para que puedas seguir con tu proyecto lo más rápido posible.
En este ejemplo estaremos viendo la instalación de la librería NewPing para sensores ultrasónicos.

¿Que es una librería de arduino?

Las librerías son colecciones de código que facilitan la interconexión de sensores, pantallas, módulos electrónicos, etc. El entorno de arduino ya incluye algunas librerías de manera que se facilite, por ejemplo, mostrar texto en pantallas LCD. Existen cientos de librerías desarrolladas por terceros en internet, que nos ayudarán a conectar prácticamente cualquier dispositivo a nuestras tarjetas con arduino. Para saber como utilizar una librería, es necesario consultar la referencia oficial de arduino o el sitio web desde el cual descargamos la librería, también podemos consultar los ejemplos que vienen con las librerías si es que no encontramos más documentación.
Las librerías normalmente incluyen los siguientes archivos comprimidos en un archivo ZIP:
  • Un archivo .cpp (código de C++)
  • Un archivo .h o encabezado de C
  • Un archivo Keywords.txt
  • Muy posiblemente la librería incluye un archivo readme con información adicional  sobre la librería para el desarrollador.
  • Directorio de sketch de ejemplo (opcional).
En la siguiente imagen vemos el contenido de la librería NewPing (que maneja varios sensores ultrasónicos) y como están organizados sus archivos.
Directorio de una librería de arduino

¿Como instalar una librería de Arduino?

1.- Ubicar y descargar la librería de arduino que requerimos. Normalmente nos encontraremos con archivos en formato ZIP.
2.- Abrir el IDE de Arduino y hacer click en Sketch > Import Library… > Add Library en la barra de menu

Importar una librería de Arduino en MAC

3.- Se mostrará la pantalla donde debemos indicar la ruta del archivo .ZIP que contiene la librería de arduino. Elegimos el archivo ZIP que acabamos de bajar y damos click en “Select” o “Seleccionar”.

Seleccionar el archivo ZIP de la librería

4.- Nuvamente hacemos click en Sketch > Import Library y deberíamos ver la librería nueva en la parte baja del menú.

Importar la librería de arduino al sketch actual

Después de completar estos pasos la librería será descomprimida en nuestro directorio de sketches y podremos utilizarla en todos nuestros programas. Sin embargo, los ejemplos contenidos con la librería NO serán visibles dentro del menú File > Examples hasta que reiniciemos el entorno de desarrollo.
Visualizar los ejemplos de la librería que acabamos de instalar

Instalación Manual de una librería

Si el método anterior para instalar una librería de arduino no funciona o queremos instalar manualmente la librería para “un mayor control”. Podemos hacerlo de la siguiente forma:
  • Descomprimimos el archivo .ZIP
  • En Windows copiamos la carpeta de la librería a la siguiente ruta: My Documents\Arduino\libraries
  • En MAC copiamos la carpeta de la librería a la siguiente ruta: Documents/Arduino/libraries
Al final deberíamos tener en nuestro directorio los siguientes archivos (Windows):
En MAC quedaría algo así:
Llegamos al final de este tutorial para instalar una librería de arduino. Ahora solo queda aprender a usar las nuevas funciones que hemos agregado a nuestro Arduino. Si tienes alguna sugerencia con respecto a este texto, por favor usa los comentarios para compartirla con nosotros.

Publicidad