4 votos

Generar corriente mediante microcontrolador

Tengo que generar valores de corriente entre 0mA y 110mA. ¿Puedo generar la corriente automáticamente utilizando un microcontrolador? (Por ejemplo: 20mA , 30mA...) Necesito mantener la corriente estable por ms en frecuencia entre 1Hz-100Hz.

En caso afirmativo, ¿cómo?

0 votos

¿Quieres generar una corriente constante, o son sólo los valores máximos que necesitas suministrar en algún lugar?

1 votos

Por lo general, los micros sólo tienen salidas digitales, pero algunos llevan incorporado un convertidor de digital a analógico (como la familia PIC24FJ128GC010 de microchip). En cuanto al control sobre la corriente, puede ser muy sencillo si la carga es conocida y simple (como una resistencia constante), pero será algo más complicado si es desconocida o variable. Creo que obtendrás respuestas mucho más útiles si puedes hablarnos de la carga :)

0 votos

Me gustaría añadir que, si bien la primera pregunta de esta cuestión podría ser beneficiosa, la segunda pregunta relativa a los microcontroladores recomendados está fuera del tema de este sitio stackexchange, ya que esa información quedaría obsoleta con bastante rapidez y la respuesta muchos no sería útil para la mayoría de la gente.

5voto

manish Puntos 117

Un microcontrolador puede generar una corriente constante utilizando la realimentación y diseñando un sistema de control que pueda supervisar la corriente de salida y ajustarla en consecuencia. La mayoría de los microcontroladores no podrán generar 110 mA en ninguna de las E/S, por lo que necesitarás al menos un amplificador o un elemento de conmutación (como un FET).

Una solución común sería utilizar una de las salidas PWM del microcontrolador para conmutar un NFET a alta frecuencia con la carga conectada entre la alimentación positiva y el drenaje del NFET. Se conecta una resistencia de derivación entre el terminal de fuente del NFET y tierra.

schematic

simular este circuito - Esquema creado con CircuitLab

El sistema de control que se ejecuta en el microcontrolador modularía entonces el ciclo de trabajo PWM en función de la lectura de corriente (medida como la tensión a través de la resistencia de derivación). El ejemplo anterior es un esquema rudimentario de este diseño. El diseño del software del sistema de control no es trivial y requerirá algo de lectura y experimentación si no tienes experiencia previa.

1 votos

Este circuito no funcionará sin algún filtrado en alguna parte del bucle para convertir la salida PWM en una señal analógica.

0voto

rdtsc Puntos 1915

Busqué un DAC de modo de corriente de alta potencia que pudiera hacerlo, pero no lo encontré; la mayoría de los DAC auténticos sólo funcionan hasta unos pocos milivatios.

Editar: Lo que podría ser una solución mejor que la siguiente es un Linear Tech LT3092 200mA, fuente de corriente programable de 2 terminales. Sin embargo, tiene un límite mínimo de corriente de 0,5mA. Utiliza una escalera R2R de salidas de colector abierto para generar el valor de la resistencia "Set", o envía el pin "Set" 0-1v directamente.


Si la tensión máxima deseada es de 5v y el microcontrolador (o incluso la lógica discreta) es de 5v, y si cada pin puede generar una corriente máxima conocida (digamos 20mA)... entonces emite 8 o 16 bits de datos binarios, basados en un punto de consigna que introduzcas. (Con "salida" me refiero a "alta" y "triestado", no a "baja") Dirige la salida binaria a través de una serie de resistencias límite, donde cada valor es el doble del primero: (MSB 250Ω, 500Ω, 1kΩ, 2k, 4k, 8k, 16k, 32k LSB), etc. Ate todos ellos (con un casquillo cerámico de 100nF a masa) y alimente la carga con él directamente. Utiliza diodos schottky de protección si es necesario.

Un lógico alto en cualquier pin contribuye (20mA - esa resistencia límite) de corriente. Puesto que suman, la salida total es la suma binaria de cada corriente /2. Para un puerto de 8 bits, sería 20mA + 10 + 5 + 2.5 + 1.25 + 0.625 + 0.3125 + 0.15625mA = 39.84375mA. Utilice 4 bits de otro puerto con resistencias de 250Ω para el ajuste de "rumbo" de 0-80mA (en pasos de 20mA), y luego la palabra de 8 bits para el ajuste fino.

Ahora, donde esto no funcionará bien, es en una carga que cae el voltaje, como un LED. La caída de tensión se manifestará como una corriente inferior a la esperada. En ese caso, una resistencia sensora de corriente puede ser una mejor idea que un valor de palabra fijado estáticamente, y la corriente muestreada y la salida binaria ajustada (aumentada) en consecuencia. Pero ten cuidado con la oscilación.

La ventaja de este enfoque es que la salida se puede ajustar linealmente en todo el rango (la resolución sólo está limitada por el número de bits), y hay mucha menos corriente de rizado en la carga. El único rizado presente es en la transición del estado binario. Si la carga es estática, el rizado es nulo. En el peor de los casos, si un LSB de 8 bits conmuta, se produce un cambio del orden de 5v/32k = 156uA. Si fuera de 16 bits, serían 5v/8,192MΩ = ¡610nA!

El inconveniente de este enfoque es que es bastante ineficiente en términos de potencia (lineal) y utiliza muchos componentes. También supone que la lógica puede generar/disipar 110 mA de corriente, lo que sin duda supera los límites de algunos microcontroladores y muchos dispositivos discretos. El PIC16F722A por ejemplo, afirma:

Total Power Disspation = 800mW . (110mA + 15mA para el uC) * 5v = 625mW, por lo que se acerca al límite pero debería estar bien para aplicaciones a 25°C. Utiliza un plano de tierra u otro medio para disipar el calor. Establece los pines no utilizados como entradas y conéctalos a tierra.

Maximum current sourced by all ports es un poco más complicado, a 140 mA para Industrial y 65 mA para Extended dispositivos. Así que el Industrial variante sería necesaria. Yo intentaría repartir los pines de 20mA en un intento de equilibrar la carga térmica.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X