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.
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.
1 votos
@Sensores En realidad no lo discutiría para ser honesto. Como MikeP señaló, los controladores capaces de esto serían los que tienen DAC, como tal, habría muy poco o ningún hardware adicional necesario y el razonamiento de por qué es off-topic sigue en pie. Si OP estaba preguntando acerca de las soluciones de tipo analógico discreto, entonces yo lo vería estar en el tema, pero desde toda la electrónica se haría por él dentro de un microcontrolador, no hay nada para ser útil en el largo plazo para los demás.
0 votos
@Funkyguy - ¡Ahí! Eliminada la petición de MCUs de la pregunta.
0 votos
@Ricardo ¡Gracias! No es por ser analógico, es sólo para apoyar la longevidad del sitio. Si quieres, podemos discutir la parte del microcontrolador en la sala de chat y podemos ayudarte más específicamente allí.
1 votos
@Funkyguy - No hace falta discutirlo. Estás haciendo un gran trabajo, ¡sigue así! Sólo me daba pena que la pregunta se fuera al garete sólo por esa frase. Como has dicho, la parte de diseño de la pregunta es interesante. Así que sólo quería ver lo que surge como respuestas, antes de que se cierra como demasiado amplia :D
0 votos
@Golaž Quiero generar corriente constante.@MikeP La carga es desconocida (la resistencia puede cambiar).
0 votos
@mak ¿Con qué precisión necesitas controlar la corriente (por ejemplo, 1mA, 10mA, ...)? También ¿cómo cerca de la corriente de salida tiene que ser lo que se establece (por ejemplo, 1%, 5%, ...)?