martes, 2 de agosto de 2016

Control de motores con Arduino.

En esta entrada vamos a comentar y aclarar la cuestión de si es posible controlar con Arduino motores más potentes, lejos de los típicos NEMA 17, y la respuesta es SI.

Podemos controlar desde motores en corriente alterna (CA) mediante relés, motores paso a paso, con el uso de drivers o bien motores de corriente continua(CC) con el uso de transistores.



Pero para controlar motores paso a paso con más potencia, debemos tener en cuenta adaptar nuestros driver de control, por ejemplo una CNC debe tener motores con más potencia que para la impresión 3D o el grabado láser.

Los típicos driver que utiliza Arduino son para impresoras 3D que no necesitan de mucha potencia, pero si queremos controlar potentes motores de CNC, podemos utilizar como microcontrolador Arduino, pero utilizaremos otros drivers que manejen más potencia para estos motores.


Antes de continuar, definiremos que es un “Driver”: cualquier equipo electrónico inteligente que proporcione un control ajustable de la velocidad para un motor. El driver para un motor paso a paso corresponde a un circuito electrónico, el cual tiene la característica de conmutar cada una de las bobinas del Stepper y a su vez, generar la secuencia en que debe alimentarse cada bobina para generar un paso. Junto con ello, permite invertir el giro del motor invirtiendo la secuencia en que las bobinas son conmutadas.

Los más utilizados en proyectos como la impresora 3D, son el A4988 y el DRV8825, pero como podemos ver en la siguiente tabla, presentan caracteristicas muy similares si lo comparamos con otros tipos en el mercado.



Los valores que debemos conocer para la elección de un motor son las siguientes:
-Escoger motores con un par o torque suficiente para la aplicación que vayan a tener (suficientemente “fuertes”).

-Elegir los drivers que puedan manejar suficiente corriente para que el motor ejerza el par motor necesario.
Además, el driver debe ser compatible con el resto de componentes electrónicos y con el resto de la circuitería de control.

El fabricante de los motores nos va a especificar una serie de datos y gráficos sobre su producto en las hojas técnicas o datasheet, como por ejemplo siguiente tabla:



Debemos fijarnos especialmente en dos datos:
-El par motor (o torque) de retención:
Aparecerá como “Holding Torque” o “Static moment”. Se mide en N·m o N·cm (Newtons·centímetro) y es uno de los parámetros que indica la “fuerza” del motor. Es el que más habitualmente ofrecen los fabricantes.
En la tabla anterior podemos observar que para el motor del ejemplo su valor es de 65 N·cm.
¿Qué significa este valor?
Es un indicativo de la fuerza con la que el motor puede mantenerse en un paso. Determinará el aguante del motor a que la inercia del eje que estamos moviendo le haga saltarse un paso al frenar dicho eje (que es el punto más común en el que puede saltarse un paso).

-La corriente o intensidad nominal:
Aparecerá como “Rated Current”, “Phase Current” o “Max Current”.
Se mide en amperios (A) y nos da el valor máximo de corriente que podemos hacer circular de manera continua por el motor sin quemarlo (recuerda que más corriente → más fuerza).
En la tabla podemos observar que para el motor del ejemplo su valor es de 1,8 A.
Por tanto si queremos utilizar este motor aprovechando toda su fuerza tenemos que controlarlo con un driver que sea capaz de entregar toda esa corriente.
Consejo: 
En caso de que sólo dispongamos de motores más ligeros a los recomendados: Disminuir el valor de aceleración máxima y limitar la velocidad máxima a un valor más pequeño, en el firmware de la máquina.
En caso de duda, entre dos motores del mismo par no siempre es mejor escoger el de menor corriente nominal. Cuanta mayor corriente nominal, más conserva su par el motor a altas velocidades, por lo que escogeremos el de mayor corriente que admitan los drivers de los que disponemos.
 
NOTA: Revisar la disposición del cableado de conexión, esta disposición puede variar entre distintos fabricantes.


Existen en el mercado multitud de drivers para motores paso a paso. Entre ellos hay una serie de diferencias, las cuales pueden dividirse en diferencias de control y de prestaciones.


Respecto al control:

-Drivers plug & play
Se controlan por USB. Son capaces de comunicarse con un software ejecutándose en un PC, que les envía las órdenes que el driver convertirá en movimiento de los motores que esté controlando. Pueden comunicarse en tiempo real o ser programados.
Pueden funcionar de forma independiente, sin necesidad de más electrónica excepto la alimentación.




-Drivers de bajo nivel
Son aquellos drivers que se controlan con señales electrónicas básicas, como voltajes y corrientes. Necesitan una electrónica de control aparte, ya que forman parte de un sistema y no se utilizan de manera independiente.



Respecto a sus prestaciones, los drivers pueden tener diferentes especificaciones, de las cuales podemos destacar las siguientes:

  • Rango de voltajes de operación (con los que alimentarán al motor)
  • Corriente que son capaces de suministrar de manera continua a cada bobina del motor
  • Modos de micropasos disponibles (1/8, 1/16, 1/32, full-step…)
  • Presencia de mecanismos de seguridad, como control contra sobretemperaturas, sobrecorrientes y cortocircuitos
  • Presencia de limitadores de corriente para poder utilizar motores con baja corriente nominal o bien a un mayor voltaje que el nominal


En el mercado existe una variedad amplia de motores según su torque, número de pasos, consumo, etc…



Cada tipo, tiene su propio tipo de driver de control adaptado a sus necesidades técnicas, sin embargo, se mantienen las señales de control de manera independiente al tamaño, torque, número de pasos… que tenga el motor. Esta característica, permite que mediante Arduino se puedan controlar una amplia variedad de motores sin necesidad de utilizar los pequeños drivers típicos para la mayoría de proyectos de Arduino con pequeños motores.

Por ejemplo, si necesitamos controlar un motor NEMA 34, utilizamos el driver ST-M5045, y en el código de programación de Arduino, hacemos uso de la biblioteca AccelStepper.


Las conexiones de control, serán las mismas que para otros motores paso a paso.
Por ejemplo:

>Pul+ se conecta a +5V
>Pul- se conecta a Arduino Pin 9
>Dir+ se conecta a +5V
>Dir- se conecta a Arduino Pin 8
>Enable+ sin conexión
>Enable- sin conexión 


En el siguiente enlace se puede ver un video explicativo en inglés que muestra un ejemplo:

Para saber si el driver que utilizamos es compatible con Arduino, debemos comprobar en la hoja de características del driver,que sus entradas de control funcionan a 5V (como el Arduino Mega) o 3.3V (como el Arduino Due) dependiendo del tipo Arduino, y están en un rango de intensidad de entre 10 a 15mA
Muchos nuevos driver de control tienen las entradas de control fotoacopladas, para aislar eléctricamente el circuito, y necesitan de un amplificador de señal para activar sus entradas de control a mas voltaje o intensidad de la que puede suministrar el microcontrolador.

Imagen cortesia de inventable.eu

Los drivers, internamente, suelen estar separados en dos circuitos integrados, uno para el manejo de la corriente (como el L298) y el otro para el control de la secuencia de conmutación y el control de la corriente de bobinado para el motor paso a paso (como el L297).
El control de la corriente de bobinado genera las secuencias de fase adecuadas. Integra toda la circuiteria de control necesaria para controlar motores paso a paso bipolares y unipolares. Usado con un driver de puente H doble como el L298N forma una completa interfaz entre un microprocesador y un motor paso a paso bipolar.
El  manejo de la corriente se consigue con un doble puente completo para controlar alto voltaje y alta corriente diseñado para aceptar estándares niveles lógicos TTL y manejar cargas inductivas tales como relés, solenoides, motores paso a paso y de corriente continua.


Un truco para el manejo de motores bipolares con los driver de 2 A. como máximo es para el control de corrientes superiores a 2A por fase, los dos puentes H en el circuito integrado L298N se puede conectar en paralelo las entradas y las salidas correspondientes. Sin embargo, para una distribución más equitativa de la carga y de la temperatura en el chip, el controlador de la bobina 1 deberá conectarse en paralelo con el controlador de la bobina 4, y el controlador de la bobina 2 con el controlador de la bobina 3. Además, la corriente total del driver debe ser reducida en 0.5A para permitir el desequilibrio máximo posible de la corriente en cada puente H. Así, dos circuitos integrados L298 pueden manejar motores de hasta 3.5A nominal por fase.

Otra opción es construirnos nosotros mismos el Driver adaptado a nuestras necesidades, el problema será en que no todos disponemos del material necesario para construirlo con componentes electrónicos con soldadura SMD y debemos de aumentar el tamaño de los drivers.


Esto puede ser una dificultad si necesitamos conectar varios motores al mismo arduino y no disponemos de espacio suficiente para almacenarlos con seguridad y comodidad.




 Si lo que necesitamos es optimizar el espacio, y disponer de un sistema fiable, lo ideal será adquirir los driver adaptados a los motores, ya que Arduino es capaz de manerar exactamente el mismo número de drivers sin depender de la potencia que consuman.





Esperamos que esta entrada sirva apra aclarar las dudas sobre si Arduino es capaz de manejar motores de gran potencia incluso para un uso industrial con CNC.

Enlace a otras entradas relacionadas:

Arduino Industrial: el Open SOurce se abre camino a nuevas fronteras.

Diagrama de conexión de la impresora 3D basada en Arduino  

Elección de un transisotor: Calcular compatibilidad

Todo lo que necesitas saber sobre drones basados en Arduino 


Un saludo, 
Ingenio Triana.

sábado, 30 de julio de 2016

Arduino Industrial: el open Source avanza hacia nuevas fronteras

La creciente comunidad de usuarios de Arduino en todo el mundo, y la gran acogida y expansión por el movimiento Open Source, ha dejado de asociarse a "baja calidad" para introducirse en un nuevo mercado: las fábricas e industrias para pequeñas y medianas empresas o grupos, Arduino Industrial.

La versatilidad de arduino y sus múltiples variantes han permitido su adaptación en muchas aplicaciones de electrónica que de no ser tan accesibles, la mayor parte de los usuarios no habría optado por adquirirla y utilizarla.



 Entre algunos perifericos de Arduino encontramos: Sensores, medidores, relés, emisores, reguladores...

Sin embargo, la capacidad de aprendizaje, empoderamiento y versatilidad que ofrece el open Source a muchos usuarios que no tienen los recursos sufientes comienza a extenderse en la sociedad y es mejor aceptada que otras tecnologías.
 
  Cada vez, más usuarios utilizan Arduino para construir sus herramientas, instrumentos... como impresoras 3D, drones, osciloscopios y multímetros, domótica e incluso cafeteras o dispensadores inteligentes.








Sus módulos ampliables y el manejo y control de cada vez más potencia permiten su integración en muchos procesos de automatización industrial.



Su principal utilización se basa en los Módulos Lógicos Programables (PLC), como una solución accesible para la automatización industrial, y el control de entradas y salidas digitales y analógicas.




 

miércoles, 29 de junio de 2016

Elección de un transistor: calcular compatibilidad


En esta entrada intentaremos resolver una duda que tienen desde aficionados hasta avanzados en la electrónica, la elección adecuada de un transistor.



Comenzamos definiendo brevemente el concepto de transistor y repasaremos aspectos a tener en cuenta a la hora de elegir un transistor y los requisitos y margen de eficiencia donde podremos trabajar con seguridad sin dañar componentes de nuestro circuito. 

Concepto de transistor:
Los transistores se utilizan para manejar o amplificar una corriente, con una determinada ganancia (β o hFE).
Una pequeña corriente en la base puede regular otra corriente mucho mayor.
Pero existen diferentes tipos según su propósito o utilidad diferenciados por su correspondiente símbolo.


Tipos de transistor:
En la siguiente imagen ver un esquema de los diferentes tipos de transistores:

Además en cada grupo, podemos encontrar sub-grupos como en el caso de los transistores de efecto campo:




Encapsulado:
Dependiendo de la potencia que queramos manejar, debemos escoger un tipo de encapsulado u otro.



Por ejemplo, si necesitamos manejar voltajes de hasta 50V y 1A, necesitaremos utilizar un disipador, por tanto, elegiremos el tipo TO-3 o TO-220.

Nomenclatura:
Su nomenclatura para designarlos consiste en un código según las letras de su nombre:

-Código que comienza por B o A (por ejemplo, BC547):

La primera letra designa la composición, A es para germanio y B para silicio.

La segunda letra designa las condiciones de funcionamiento habitual, por ejemplo, C significa baja potencia, D significa alta potencia, F significa baja frecuencia, G significa alta potencia.

También pueden designarse modelos específicos añadiendo una última letra final, por ejemplo, si queremos resaltar un modelo con más ganancia que el resto de su clase, puede diferenciarse el BC180C del BC180 que es genérico.

-Código que comienzan por TIP:

TIP:Transistor de Potencia Texas Instruments. La letra al final identifica los diferentes rasgos de voltaje, por ejemplo, TIP31C.



-Código que comienza por 2N:

2N: Designa al componente utilizado como transistor, el resto de nomenclatura se utiliza para designar los diferentes modelos.



Tipo de conexión:



En el siguiente enlace podéis ver las ecuaciones que se utilizan para calcular los parámetros de funcionamiento.




Especificaciones:

-Dependiendo de su utilidad:
Utilizar el transistor como amplificado o como interruptor(switch).
Circuitos basados en transistores pueden funcionar como amplificadores de audio, reguladores de tensión, inversores, interruptor de sensores(temperatura, campo magnético, presión, humedad...  actuadores(motores, luces, servo motores, relés...)



-Dependiendo del circuito:
La potencia a controlar y la intensidad en la base para poder conducir el transistor desde corte a saturación(si fuera necesario).

La frecuencia de conmutación que puede trabajar el transistor.

Los picos máximos de intensidad que puede soportar y su duración.

-Dependiendo de su funcionamiento:
Nesitaremos disipar potencia en forma de calor utilizando dispositivos térmicos, ventiladores, etc.



La potencia disipada determina el tipo de encapsulado, además de sus dimensiones y conexión.

Considerar siempre los parámetros de su hoja de características o datasheet en el proceso de diseño de nuestros circuitos.





Utilizar circuitos de protección para alargar la vida del transistor y evitar daños, como circuitos de amortiguamiento o snubbers, diodos de protección, reguladores de tensión e intensidad, limitadores basados en diodos zener, entre otros...

Cuando tengamos estas consideraciones en cuenta, a la hora de adquirir el transistor puede que el modelo en concreto no este disponible, para estos casos, debemos buscar otro modelo compatible.




Elección del transistor:
Los pasos para reducir la búsqueda de una larga lista a pocos modelos serán los siguientes:

1.-Saber el tipo de transistor necesario, por ejemplo:BJT,MOSFET; IGBT...

2.-Una vez conocemos el tipo, concretamos un modelo de funcionamiento, por ejemplo: Los BJT, pueden ser NPN o PNP.

3.-Su utilidad desde el circuito, por ejemplo: Para alta frecuencia de conmutación, utilizar un MOSFET en lugar de un BJT, para circuito amplificador utilizar un tipo Darlinton.

4.-El rango de trabajo habitual, por ejemplo: necesitaremos un transistor que pueda manejar 50V y 0.9A, una posible elección es el 2N3055 que puede manejar esos valores entre colector y emisor.

5.-Al conocer las condiciones de trabajo, utilizar un tipo de encapsulado u otro.

6.-Comprobar las especificaciones en su hoja de características o datasheet para verificar que los valores máximos de corriente y voltaje son admisibles.

7.-Si tenemos la posibilidad y los conocimientos necesarios, simular el circuito  previamente para verificar el correcto funcionamiento.

8.-Montar en una protoboard de los componentes del circuito y realizar las primeras pruebas, sobre todo de refrigeración, comportamiento en alta frecuencia...


Una vez, tenemos nuestro propósito específico fijado, y conocemos algunos parámetros no siempre tenemos toda la información que necesitamos...
Para estos casos, debemos de disponer de ciertos conocimientos para realizar algunos cálculos sencillos, que nos ofrecen la información necesaria.
 

Circuito de polarización en emisor común:

Por ejemplo, si necesitamos controlar un tipo de carga (Rc) mediante un transistor conectado en emisor común, para calcular la resistencia necesaría en la base podemos utilizar un programa de simulación de circuitos y comparar los resultados obtenidos.

Por ejemplo, si queremos estudiar los parámetros del transistor 2N2222, colocamos amperímetros y voltímetros y realizamos las siguientes pruebas:

Colocamos una resistencia variable en la base del transistor (Rb) y estudiamos los valores de la intensidad en la base, y la intensidad en el colector, y la tensión Base-Emisor y la tensión Colector-Emisor.  

En este caso, la Resistencia del colector es baja(Rc=50Ω) y aumenta la intensidad del colector(Ic=235,124mA) conforme Rc tiende a 0.

En este caso, La resistencia en el colector aumenta (Rc=300Ω) y la intensidad en el colector disminuye(Ic=39,826mA).

Cuando tenemos fijada la resistencia del colector, que será equivalente a la carga que pongamos, por ejemplo un motor, o una bombilla, ajustamos la resistencia en la base(Rb).
Como podemos observar, a menor resistencia en la base(Rb=5% de 2KΩ), aumenta la intensidad en la base(Ib=107,456mA) 

Si no utilizamos resistencia en la base del transistor podemos quemar el componente y dañarlo de manera irreparable. Si colocamos a 0 el valor de la resistencia en la base (Rb=0), observamos que el valor de intensidad en la base aumenta(Ib=14,294A) a valores que el componente no soporta.
 Cuando tenemos nuestro transistor en valores adecuados, debemos tener en cuenta que también existen rangos mínimos de funcionamiento, por ejemplo, si tenemos una intensidad en la base baja como para que no excite el transistor, este no conducirá corriente.

Los valores de referencia para cada componente se encuentran en su hoja de caracteristicas o datasheet que nos ofrece el fabricante.
En la imagen se puede comprobar los parámetros de funcionamiento del transistor 2N2222 y comprobamos que las pruebas realizadas no exceden los valores establecidos.


 Como no todos los usuarios disponen de la posibilidad de utilizar un programa de simulación de circuitos en cualquier momento y situación, se puede recurrir de otra manera a la información que necesitamos mediante el uso de ecuaciones.

Para el uso de ecuaciones, debemos conocer también algunos aspectos del circuito.

-Circuito de polarización fija:
Determinamos el punto Q de trabajo del transistor.

Utilizamos la ecuación de la Recta de carga, que relaciona la intensidad en el colector con la tensión entre colector y emisor.

Ecuación recta de carga para Ic: Vcc = Vce + (Ic x Rc)

Ecuación recta de carga para Ie  : Vcc = Vbe + (Re x Ie)

El transistor en base-emisor de comporta como un diodo, por eso la tensión base-emisor suele estar próxima a 0.7V

Ic = B x Ib
Ib = (Vcc - 0.7) / Rb

Para aplicar estas expresiones, se explica un caso a modo de ejemplo:

Ejemplo: Circuito de 12VDC, una Rc=220Ω, Rb=68kΩ y necesitamos conocer los valores de Ib y Vce.
 

Realizamos una primera valoración, donde se debe cumplir de forma aproximada:

Para Ic=0, Vce= Vcc=12V. Para Vce=0, Ic= Vcc/ Rc = 12/220=54,54mA.

Si  tenemos Ib=165,534uA, Ic= 45,631mA y necesitamos hallar la tensión entre el coleector y emisor: 
 Vce = Vcc - (Ic x Rc) = 12V - (0,045631A x 220Ω)= 1,96118V

Como podemos comprobar, los datos calculados y obtenidos en la simulación son compatibles.

Para verificar nuestros calculos, realizaremos otra demostración:

Si no tenemos de la Intensidad en la base, podemos calcular un valor muy aproximado mediante la siguiente expresión:

Ib=(Vcc-0,7V) / Rb = 12V - 0,7V / 68k
Ω = 0,16617mA = 166,17uA

La recta de carga y el Punto Q de trabajo se representan en la siguiente gráfica:

 Una de las aplicaciones que más importacnia tiene el cálculo de transistores en electrónica y programación de circuitos es adecuar la señal de activación de un microcontrolador a otro circuito de más potencia, por ejemplo muchos circuitos de Arduino que encontramos por internet para controlar buzzer o motores.


 








 Como Arduino tiene unos valores de tensión de 5V e intensidad unos 20mA en sus salidas, podemos elegir un transistor que trabaje con esos valores y adecuar una resistencia en la base para no dañar el transistor.

Otro método para controlar los estados de la salida de Arduino es la utilización de resistencias tipo pull-up y pull-down, que sirven para mantener un estado lógico en las salidas digitales sin que el ruido eléctrico pueda causar falsos estados, siendo pull-up un estado lógico alto(1) y pull-down un estado logico bajo(0).
El valor típico de estas resistencia suele ser elevado, en torno a 10k, y permiten mantener el estado lógico a 5V o 0V.

Para el caso concreto de Arduino, podemos programar una resistencia tipo pull-up a nivel de software. Es tan sencillo como escribir el siguiente código, ahorrando cableado en nuestro circuito:


 

Esperamos que con esta entrada, tengais en cuenta toda la información necesaria que necesitamos para adecuar un tipo de transistor u otro, y además proteger su funcionamiento regulando la intensidad que circula por la base mediante resistencias.


Un saludo a todos,
Ingenio Triana.


viernes, 10 de junio de 2016

Utilizar malla de sombra para la temporada de verano en invernadero

Con la llegada del calor, la temperatura en el invernadero comienza a subir y no es suficiente con dejar pasar el aire o tener una buena ventilación, debemos recubrir con malla de sombra o de "sombreo".

 Este tipo de malla, protegen las plantas de la exposición directa del sol, reflejando parte de la luz y dejando pasar un porcentaje dependiendo del grosor.





 Además del porcentaje de luz que dejan pasar, las diferentes tonalidades también absorben o reflejan mayor o menor luz.
Por ejemplo, el negro, absorbe toda la luz y se calienta más, pero su precio es mucho más barato y existe en muchos más formatos y tamaños.



 Cuando tenemos nuestra malla lista, debemos elegir un día nublado, para no causar un extrés lumínico excesivo los primeros días a las plantas, ya que existe diferencia entre los lúmenes que deja pasar el plástico y la malla de sombra.



Después cubrimos con la malla de sombreo la parte superior y mantenemos los laterales de plástico para combatir el viento lateral y prevenga el gasto excesivo de agua por la transpiración en las plantas.



La parte posterior del invernadero, permanece abierta, por donde ahora circula mucha más cantidad de aire fresco y se mantiene una temperatura agradable.



En la entrada, el primer arco se mantiene con plástico, donde tenemos una protección completa haciendo de pantalla por donde provienen vientos calurosos y mantiene un pequeño refugio para la lluvia, además de mantener humedad en esa zona.



En el interior, se aprecia una temperatura agradable, con el paso de aire fresco y una sombra adecuada dependiendo de la zona de cultivo, donde la mitad del invernadero tiene colocada una malla al 50%, y una zona con plantas de sombra y más sensibles a la luz, mantienen el plástico y además doble capa de malla de sombra.




La zona de las tomateras, sandías, berenjas, pimientos, té, estevia... necesitan de más luz que otras plantas como el sisho, valeriana, hipérico... por eso es importante distinguir ambas partes.





Con esto tenemos nuestras plantas a la temperatura adecuada y protegidas del intenso sol durante el verano.


Un saludo desde nuestro huerto,
Ingenio Triana.