Generar corriente por microcontrolador [cerrado]

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

¿Si es así, cómo?

¿Desea generar corriente constante, o estos son solo los valores máximos que necesita suministrar en alguna parte?
Generalmente, los micros solo tienen salidas digitales, pero algunos tienen un convertidor digital a analógico incorporado (como la familia de microchips PIC24FJ128GC010). En cuanto al control de la corriente, este puede ser muy fácil 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á respuestas mucho más útiles si puede informarnos sobre la carga :)
Me gustaría agregar que, si bien la primera consulta de esta pregunta podría ser beneficiosa, la segunda consulta sobre los microcontroladores recomendados está fuera de tema para este sitio de intercambio de pila, ya que esa información quedaría obsoleta con bastante rapidez y la respuesta podría no ser útil para la mayoría. gente.
@Sensors En realidad, no lo discutiría para ser honesto. Como señaló MikeP, los controladores capaces de esto serían los que tienen DAC, por lo que se necesitaría muy poco o ningún hardware adicional y el razonamiento de por qué está fuera de tema sigue en pie. Si OP estuviera preguntando sobre soluciones discretas de tipo analógico, entonces vería que está en el tema, pero dado que toda la electrónica se haría por él dentro de un microcontrolador, no hay nada que sea útil a largo plazo para otros.
@Funkyguy - ¡Ahí! Se eliminó la solicitud de MCU de la pregunta.
@Ricardo Gracias! No trato de ser anal al respecto, solo respalda la longevidad del sitio. Si lo desea, podemos discutir la parte del microcontrolador en la sala de chat y podemos ayudarlo más específicamente allí.
@Funkyguy - No hay necesidad de discutirlo. ¡Estás haciendo un gran trabajo, sigue así! Simplemente me entristeció que la pregunta se desperdiciara solo por esa línea. Como dijiste, la parte de diseño de la pregunta es interesante. Entonces, solo quería ver qué surge como respuestas, antes de que se cierre como demasiado amplio: D
@Golaž Quiero generar corriente constante. @MikeP La carga es desconocida (la resistencia puede cambiar).
@mak ¿Qué precisión necesita para controlar la corriente (por ejemplo, 1 mA, 10 mA, ...)? Además, ¿qué tan cerca debe estar la corriente de salida de lo que está configurado (por ejemplo, 1%, 5%, ...)?

Respuestas (2)

Un microcontrolador puede generar corriente constante mediante el uso de retroalimentación y el diseño de un sistema de control que puede monitorear la corriente de salida y ajustar la salida en consecuencia. La mayoría de los microcontroladores no podrán generar 110 mA en ninguna de las E/S, por lo que al menos necesitará un amplificador o un elemento de conmutación (como un FET).

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

esquemático

simular este circuito : esquema creado con CircuitLab

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

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

Busqué un DAC de modo actual de alta potencia que pudiera hacer esto, pero no pude encontrar ninguno; la mayoría de los DAC verdaderos solo funcionan con unos pocos milivatios.

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


Si el voltaje máximo objetivo 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 genera 8 o 16 bits de datos binarios, según un punto de ajuste usted ingresa (Por "salida" me refiero a "alta" y "tri-estado", no "baja".) Dirija la salida binaria a través de una serie de resistencias de límite, donde cada valor es el doble del primero: (MSB 250Ω, 500Ω, 1kΩ, 2k, 4k, 8k, 16k, 32k LSB), etc. Ate todos estos juntos (con una tapa de cerámica de 100 nF a tierra) y alimente la carga directamente. Use diodos de protección Schottky si es necesario.

Una lógica alta en cualquier pin contribuye (20 mA, esa resistencia límite) de corriente. Como se suman, la salida total es la suma binaria de cada corriente /2. Para un puerto de 8 bits, serían 20 mA + 10 + 5 + 2,5 + 1,25 + 0,625 + 0,3125 + 0,15625 mA = 39,84375 mA. Use 4 bits de otro puerto con resistencias de 250 Ω para un ajuste de "curso" de 0-80 mA (en pasos de 20 mA), luego la palabra de 8 bits para un ajuste fino.

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

El beneficio de este enfoque es que la salida se puede ajustar linealmente en todo el rango (resolución limitada solo por el número de bits) y hay mucha menos corriente de ondulación en la carga. La única ondulación presente está en la transición del estado binario. Si la carga es estática, no hay ondulación. En el peor de los casos, si un LSB de 8 bits estuviera alternando, eso hace un cambio del orden de 5v/32k = 156uA. ¡Si fuera de 16 bits, sería 5v/8.192MΩ = 610nA!

La desventaja 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 algunos límites de microcontroladores y muchos dispositivos discretos. El PIC16F722A, por ejemplo, establece:

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

Maximum current sourced by all portses un poco más complicado, a 140 mA Industrialy 65 mA para Extendeddispositivos. Entonces la Industrialvariante sería requerida. Intentaría extender los pines de 20 mA en un intento de equilibrar la carga térmica.