Ir al contenido

← Todas las funcionalidades

Banco de ensayo de fusiblesRaspberry PLC 19RI2CAdquisición

Lecturas diferenciales del ADC con cambio automático de ganancia

La medida diferencial con ADS1015 es la forma fiable más barata de leer un shunt de alta corriente desde un PLC Linux. Este ejemplo cablea el shunt de 60 mOhm a los canales A0-A1 y la caída de tensión del fusible a A2-A3, y conmuta automáticamente la ganancia programable entre 2/3 (±6.144 V, seguro) y 16 (±256 mV, máxima resolución). Las fórmulas de conversión exactas provienen de un banco de ensayo de fusibles real en producción que mide hasta 220 A.

Por qué aquí el diferencial gana al single-ended

Un shunt flota al potencial que le imponga el circuito de potencia, y su señal útil son milivoltios montados sobre ruido. Las entradas diferenciales rechazan la componente de modo común y duplican el rango útil. En single-ended habría que forzar una referencia de masa dentro de un lazo de 220 A — receta segura para errores de offset y rebotes de masa.

El truco de la ganancia automática

Cada lectura empieza a ganancia 2/3, de modo que una señal grande nunca puede recortar. Si la tensión estimada cabe dentro de la ventana de ±256 mV, el canal se relee a ganancia 16, multiplicando la resolución por 24. Dos conversiones en vez de una, pero el ADS1015 hace 1600 muestras por segundo — el bucle de monitorización de 500 ms ni lo nota.

De cuentas brutas a amperios

La cadena completa es una línea: I = (raw/65535) · 2 · 0.256 · 200 / 0.06 · 1.02 — de cuentas brutas a voltios en el PGA, a través del acondicionamiento 200:1, dividido por el shunt de 60 mOhm y multiplicado por un factor de calibración de 1.02 medido contra un instrumento de referencia. La caída de tensión en el fusible usa el mismo patrón en A2-A3.

Un fragmento de la implementación

Tal cual del ejemplo desplegado en el Raspberry PLC 19R — cópialo libremente:

def create_adc():
    i2c = busio.I2C(board.SCL, board.SDA)
    ads = ADS.ADS1015(i2c, address=0x48)
    return ads

El ejemplo completo es un programa entero — cabecera de conexionado, setup y bucle principal — listo para adaptar a tu aplicación.

Preguntas frecuentes

¿ADS1015 o ADS1115 para esta aplicación?

El ADS1015 (12 bit, 1600 SPS) es suficiente porque la ganancia automática mantiene la señal cerca del fondo de escala. Elige el ADS1115 (16 bit) si necesitas resolver corrientes muy pequeñas sin acondicionamiento externo.

¿Puedo leer ambos pares diferenciales a la vez?

No, el ADS1015 tiene un único conversor multiplexado. El ejemplo lee shunt y caída de tensión secuencialmente; a 1600 SPS ambas lecturas caben con holgura dentro de un ciclo de monitorización de 500 ms.

¿De dónde sale el factor 1.02?

Es una constante de calibración extremo a extremo obtenida comparando la corriente calculada con un medidor de referencia. Absorbe en un solo número la tolerancia del shunt, el error del divisor y el error de ganancia del PGA.

Funcionalidades relacionadas