01 · Punto de partida
El enlace entre el sensor y el código
En el tema anterior vimos cómo es un sensor por dentro y cómo entrega la medida. Ahora ocupamos el espacio entre el sensor y el firmware: los conductores, resistencias y reglas de comunicación que hacen que el valor llegue completo. En el escritorio, con cables cortos y un solo sensor, casi cualquier conexión funciona. En un producto, con varios sensores, cables más largos, ruido y años de uso, los detalles aparecen.
Un hecho tranquilizador: tanto I²C como SPI están pensados para que muchos dispositivos compartan pocos cables. La contracara es que compartir exige reglas, y esas reglas (direcciones, resistencias, capacidad máxima) son lo que este tema enseña a respetar.
Los fragmentos de C++ siguen el estilo Arduino para ESP32; las ideas valen para cualquier microcontrolador.
02 · Panorama
Las formas de conectar un sensor
| Interfaz | Hilos | Velocidad típica | Dispositivos por bus | Distancia razonable | Uso típico |
|---|---|---|---|---|---|
| Analógica | 1 señal por sensor (más alimentación y masa) | Depende del conversor y del muestreo | Uno por entrada | Decenas de centímetros | Termistores, fotoresistencias, sensores simples |
| I²C | 2 (SDA, SCL), compartidos | 100 kHz a 400 kHz (hasta MHz en modos rápidos) | Hasta 100 aproximadamente, limitado por la capacitancia | Decenas de centímetros a pocos metros | Sensores digitales de baja velocidad |
| SPI | 3 compartidos (SCK, MOSI, MISO) más 1 de selección por dispositivo | De 1 MHz a decenas de MHz | Los que permitan los pines de selección | Decenas de centímetros | Sensores rápidos, memorias, pantallas |
| UART | 2 por dispositivo (TX, RX) | 9600 a 115.200 baudios o más | Uno por puerto | Metros; hasta kilómetros con RS-485 | Sensores de CO₂, partículas, GPS, módulos |
| 1-Wire | 1 de datos (compartido) más masa | Baja (unos 16 kbit/s) | Muchos, cada uno con identificador único | Decenas de metros | Sondas de temperatura en cables largos |
| Digital simple / interrupción | 1 por señal | Eventos | Uno por pin | Metros | Interruptores, sensores PIR, alertas |
La elección más común en IoT es I²C por su economía de pines y por la cantidad de sensores que lo usan. SPI aparece cuando hace falta velocidad, y la conexión analógica queda para sensores baratos o de respuesta continua. Las cuatro opciones coexisten sin problema en un mismo microcontrolador moderno, que dispone de varios periféricos de cada tipo.
03 · Señal analógica
Entrada analógica y conversor
Un conversor analógico-digital (ADC) transforma una tensión en un número. La relación es lineal: con n bits y una tensión de referencia Vref, un valor de entrada V produce el código V / Vref × (2n − 1). Con 12 bits y 3,3 V, el rango 0–3,3 V se divide en 4096 pasos de unos 0,8 mV.
La lectura, como cualquier medida, tiene problemas prácticos que conviene conocer:
- Rango de entrada. La entrada no admite tensiones mayores que la alimentación. Un sensor de 0–5 V conectado a un microcontrolador de 3,3 V puede dañarlo; se adapta con un divisor de tensión. Por ejemplo, 10 kΩ en serie y 18 kΩ a masa dan 5 × 18 / 28 ≈ 3,21 V con 5 V a la entrada. Un divisor de resistencias grandes tiene alta impedancia de salida y puede distorsionar la lectura; si hace falta, se usa una resistencia menor o un amplificador separador.
- Ruido. Una lectura aislada varía unos pasos. Promediar N lecturas reduce el ruido aleatorio en un factor √N: con 16 lecturas, cuatro veces.
- No linealidad y calibración. Los conversores integrados de algunos microcontroladores no son perfectamente lineales, sobre todo en los extremos, y su referencia varía entre chips. Para medidas exigentes se calibra contra un valor conocido.
- Competencia con la radio. En algunos chips los canales analógicos comparten recursos con el Wi-Fi y no pueden leerse mientras la radio está activa, o se ven afectados por el ruido de sus ráfagas de corriente. Conviene verificar en la hoja de datos qué pines usar.
const int PIN_SENSOR = 34; // pin con entrada analógica
const int MUESTRAS = 16;
int leerPromedio(int pin, int n) {
long suma = 0;
for (int i = 0; i < n; i++) {
suma += analogRead(pin); // 0 a 4095 con 12 bits
delay(2); // pausa corta entre lecturas
}
return suma / n;
}
void setup() {
Serial.begin(115200);
}
void loop() {
int bruto = leerPromedio(PIN_SENSOR, MUESTRAS);
float milivolts = bruto * 3300.0 / 4095.0; // convertir código a tensión
Serial.print(milivolts);
Serial.println(" mV");
delay(1000);
}
Observá la estructura: el valor bruto del conversor se convierte a una unidad física (milivolts) y recién después se interpreta. Separar esos pasos hace que el código sea más fácil de calibrar y de probar.
04 · Bus I²C
El bus I²C
I²C usa dos líneas compartidas: SDA (datos) y SCL (reloj). Un dispositivo, el controlador (antes llamado maestro), inicia todas las comunicaciones; los demás son periféricos. Cada periférico tiene una dirección de 7 bits, y el controlador la escribe al comienzo de cada transacción para decir con quién habla.
El funcionamiento eléctrico es el rasgo clave: las líneas son de colector abierto. Ningún dispositivo empuja la línea hacia arriba; solo puede conectarla a masa (nivel bajo) o soltarla. Las resistencias de pull-up la llevan a nivel alto cuando nadie la baja. Gracias a eso varios dispositivos comparten las líneas sin cortocircuitos, y de ahí su aviso permanente: sin pull-ups, un bus I²C no funciona. Muchas placas de sensores ya las traen soldadas; cuando se conectan varias, quedan en paralelo y la resistencia equivalente baja.
Tres reglas de las direcciones:
- No pueden repetirse en un mismo bus. Dos sensores con la misma dirección fija se pisan y no responde ninguno bien.
- Algunos sensores ofrecen dos o cuatro direcciones mediante un pin de selección o un puente soldable, para poder usar dos iguales.
- Si no hay opción, se usa un segundo bus I²C del microcontrolador o un multiplexor I²C, un chip que conecta a un solo ramal a la vez.
Un recurso invaluable al armar un circuito es el escáner de direcciones: un programa que prueba todas las direcciones posibles e informa cuáles responden. Confirma que el sensor está conectado y revela la dirección real, que a veces difiere de la que dice el tutorial.
#include <Wire.h>
void setup() {
Serial.begin(115200);
Wire.begin(); // usa los pines I2C por defecto de la placa
Serial.println("Buscando dispositivos I2C...");
int encontrados = 0;
for (byte direccion = 1; direccion < 127; direccion++) {
Wire.beginTransmission(direccion);
if (Wire.endTransmission() == 0) { // 0 significa que alguien contestó
Serial.print("Respondió: 0x");
Serial.println(direccion, HEX);
encontrados++;
}
}
Serial.print("Total: ");
Serial.println(encontrados);
}
void loop() {}
Si el escáner no encuentra nada, la causa suele ser eléctrica: alimentación o masa sin conectar, SDA y SCL cruzados, o falta de pull-ups. Si encuentra más direcciones de las esperadas, algún módulo trae otro chip (por ejemplo, una memoria) en el mismo bus.
05 · Pull-ups y capacitancia
Pull-ups y capacitancia del bus
La resistencia de pull-up tiene que cumplir dos requisitos opuestos. Si es demasiado grande, la señal sube despacio: cada línea, con sus cables y los pines de los dispositivos, se comporta como un condensador de capacidad Cb que se carga a través de la resistencia, y la subida tarda del orden de R × C. Si es demasiado chica, los dispositivos no logran llevar la línea a nivel bajo, porque deberían absorber una corriente excesiva.
La fórmula de la izquierda usa el tiempo de subida máximo que fija la especificación: 1000 ns a 100 kHz y 300 ns a 400 kHz. La de la derecha es la corriente mínima que un dispositivo debe poder absorber (3 mA). Con 3,3 V, la resistencia mínima es unos 970 Ω. Entre ambos límites queda un rango de resistencias válidas, que se achica a medida que crece la capacitancia o la velocidad.
La capacitancia total se estima sumando la de cada pin (unos 10 pF por dispositivo, contando el controlador) y la del cable (unos 50 pF por metro):
La norma limita Cb a 400 pF. Superado ese valor, ninguna resistencia salva el bus: la señal no llega a subir a tiempo con una corriente aceptable. Hay que acortar el cable, quitar dispositivos, bajar la velocidad o dividir el bus con un multiplexor.
06 · Bus SPI
El bus SPI
SPI es un bus pensado para velocidad. Usa tres líneas compartidas, un reloj (SCK), datos hacia el periférico (MOSI) y datos desde el periférico (MISO), más una línea de selección (CS o SS) por cada periférico. El controlador baja la línea de selección del dispositivo con el que habla; los demás ignoran lo que pasa en el bus. No hay direcciones, sino pines.
Frente a I²C, SPI es más rápido (de megahercios a decenas de megahercios), transmite en los dos sentidos al mismo tiempo y no necesita resistencias de pull-up, porque sus líneas se empujan activamente. A cambio, requiere más pines (cada dispositivo suma uno) y no tiene un mecanismo de confirmación.
| Criterio | I²C | SPI |
|---|---|---|
| Pines del controlador | 2 para todos los dispositivos | 3 más 1 por dispositivo |
| Cómo se elige el dispositivo | Por dirección de 7 bits | Por línea de selección |
| Velocidad | Hasta 400 kHz (comúnmente) | Megahercios |
| Resistencias necesarias | Pull-ups obligatorios | Ninguna |
| Confirmación de recepción | Sí (bit de reconocimiento) | No |
| Ideal para | Muchos sensores lentos | Pocos dispositivos rápidos (memorias, pantallas, sensores de alta frecuencia) |
En IoT con sensores de lectura ocasional, la velocidad de SPI no se aprovecha, por lo que I²C suele ganar. SPI aparece en sensores que entregan grandes cantidades de datos (acelerómetros que registran vibraciones, por ejemplo) o cuando hay que manejar una memoria flash o una pantalla.
07 · Cableado práctico
Cableado práctico
Los problemas que más tiempo cuestan no están en el código sino en el cableado. Una lista de comprobaciones simples evita la mayoría:
- Masa común. Todos los dispositivos deben compartir la referencia de 0 V. Un sensor con otra alimentación y sin masa común produce lecturas erráticas.
- Niveles de tensión. No conectes una salida de 5 V a una entrada de 3,3 V: puede dañarla. Si hay niveles distintos, se usa un adaptador de nivel.
- Desacoplo. Un condensador de 100 nF cerca de la alimentación de cada sensor filtra los picos de corriente; es la mejora más barata y más efectiva.
- Cables cortos. I²C y SPI están pensados para distancias de centímetros. Con cables largos, bajá la velocidad, usá cable trenzado o blindado, o cambiá a un enlace diferencial como RS-485.
- Ruido de la radio y de los motores. Mantené los cables de señal lejos de las antenas y de las cargas inductivas; evitá lazos grandes entre señal y masa.
- Pines con función especial. En muchos microcontroladores algunos pines definen el modo de arranque o están reservados para la memoria o la radio. Si un pin tiene un sensor que lo fuerza a un nivel durante el arranque, el chip puede no iniciar. Consultá la hoja de datos antes de elegir los pines.
- Contactos. En un producto, los cables en protoboard se sustituyen por soldaduras o conectores con traba: un falso contacto intermitente es muy difícil de diagnosticar.
Y una recomendación final: probá el sensor aislado antes de incorporarlo al producto completo. Con un programa mínimo que lee y muestra el valor, un fallo se atribuye con certeza al sensor o al cableado, y no a la interacción con el resto del código.
08 · Analogía con programación
Verificar un bus I²C en Python
Las fórmulas de los pull-ups se pueden volcar a una función que, para un bus dado, calcula la capacitancia, el rango de resistencias válidas y el tiempo de subida con la resistencia elegida, y dice si funciona. El modelo usa 10 pF por dispositivo (más uno por el controlador) y 50 pF por metro de cable, una alimentación de 3,3 V y los límites de la norma: 400 pF de capacitancia máxima y un tiempo de subida de 1000 ns a 100 kHz o 300 ns a 400 kHz.
Python en tu navegador. Los bloques son editables: cambiá los valores y presioná «Ejecutar Python». La primera vez tarda unos segundos en cargar.
VCC = 3.3
C_PIN_PF = 10 # capacitancia de cada dispositivo (y del microcontrolador)
C_CABLE_PF_M = 50 # capacitancia del cable por metro
I_MIN_MA = 3.0 # corriente que un dispositivo debe poder absorber en nivel bajo
CB_MAX_PF = 400 # límite de capacitancia del bus según la norma
TR_MAX_NS = {100: 1000, 400: 300} # tiempo de subida máximo según la velocidad (kHz)
def bus_i2c(dispositivos, cable_m, khz, rp_ohm):
cb = C_PIN_PF * (dispositivos + 1) + C_CABLE_PF_M * cable_m # picofaradios
rp_max = TR_MAX_NS[khz] * 1e-9 / (0.8473 * cb * 1e-12)
rp_min = (VCC - 0.4) / (I_MIN_MA / 1000)
subida_ns = 0.8473 * rp_ohm * cb * 1e-12 * 1e9
if cb > CB_MAX_PF:
veredicto = "demasiada capacitancia"
elif rp_ohm < rp_min:
veredicto = "corriente excesiva"
elif subida_ns > TR_MAX_NS[khz]:
veredicto = "flanco muy lento"
else:
veredicto = "funciona"
return cb, rp_min, rp_max, subida_ns, veredicto
print("disp cable kHz pull-up Cb Rp mín Rp máx subida resultado")
for disp, cable, khz, rp in [(1, 0.1, 400, 4700), (4, 1, 400, 4700), (4, 1, 400, 2200),
(8, 1, 400, 4700), (8, 1, 100, 4700), (8, 3, 400, 1000),
(8, 3, 400, 2200), (8, 10, 100, 1000)]:
cb, rmin, rmax, tr, v = bus_i2c(disp, cable, khz, rp)
print(f"{disp:>4} {cable:>5} {khz:>4} {rp:>7} {cb:>4.0f} pF {rmin:>5.0f} {rmax:>7.0f} {tr:>6.0f} ns {v}")
Resultado con los valores iniciales: un sensor con 10 cm de cable y 4,7 kΩ a 400 kHz funciona (25 pF, subida de 100 ns). Con cuatro sensores y 1 m de cable (100 pF), el máximo es 3541 Ω y los 4,7 kΩ no sirven (398 ns contra 300): con 2,2 kΩ la subida es de 186 ns y funciona. Con ocho sensores y 1 m (140 pF), 4,7 kΩ a 400 kHz sube en 558 ns y falla, pero a 100 kHz sí funciona, porque el límite es 1000 ns. Con ocho sensores y 3 m (240 pF), a 400 kHz el rango válido es de 967 a 1475 Ω: 1 kΩ funciona (203 ns) y 2,2 kΩ no (447 ns). Y con 10 m de cable la capacitancia llega a 590 pF y ninguna resistencia sirve.
El modelo deja una lección práctica: el valor de 4,7 kΩ que aparece en todos los tutoriales no es universal. Sirve para un bus corto y liviano; cuando se agregan sensores o cable, hay que recalcularlo. Bajar la velocidad es la solución más simple y suele bastar en IoT, donde los sensores se leen de a ratos.
09 · Exploración interactiva
¿Funciona mi bus?, de extremo a extremo
Este laboratorio ejecuta el mismo modelo del código anterior. Elegí cuántos sensores hay en el bus, la longitud del cable, la velocidad y el valor de la resistencia de pull-up. La banda celeste muestra el rango de resistencias válidas, la marca naranja es tu elección y las barras comparan el tiempo de subida con el máximo permitido. Los parámetros eléctricos son estimaciones típicas.
Verificación de un bus I²C
Elegí los parámetros y presioná «Verificar el bus».
Recorrido guiado
- Con los valores iniciales (4 sensores, 1 m, 400 kHz, 4,7 kΩ), verificá. La capacitancia es 100 pF, el máximo permitido para la resistencia es 3541 Ω y la subida es de 398 ns contra 300: «Flanco muy lento». El tutorial con 4,7 kΩ falla en este bus.
- Cambiá a 2,2 kΩ: la subida baja a 186 ns y funciona. Cambiá a 1 kΩ: 85 ns, también funciona, pero gasta 3,30 mA cuando la línea está en bajo.
- Con 4,7 kΩ, bajá la velocidad a 100 kHz. El límite sube a 1000 ns y los 398 ns alcanzan. Reducir la velocidad es la salida más barata.
- Pasá a 8 sensores y 3 m a 400 kHz. La capacitancia es 240 pF y el rango válido es 967 a 1475 Ω. Solo funciona 1 kΩ; 2,2 kΩ ya no (447 ns). El margen es pequeño.
- Con 8 sensores y 3 m, bajá a 100 kHz: el rango válido se ensancha (hasta 4918 Ω): 2,2 kΩ funciona cómodamente (447 ns) y 4,7 kΩ apenas (956 ns contra 1000).
- Elegí 10 m de cable: 590 pF, «Demasiada capacitancia», con cualquier resistencia y velocidad. Se necesita otro enlace (por ejemplo RS-485), un multiplexor o acortar el cable.
Desafío: dos resistencias de pull-up en paralelo
Si dos módulos de sensores traen cada uno su pull-up de 4,7 kΩ soldado y los conectás al mismo bus, las dos resistencias quedan en paralelo: 4,7 × 4,7 / (4,7 + 4,7) = 2,35 kΩ. Con cuatro módulos así, la equivalente baja a 1,18 kΩ, cerca del mínimo de 967 Ω. Por eso, un bus que funcionaba con tres módulos puede empezar a fallar al sumar uno más, aunque la capacitancia siga siendo baja: la corriente que deben absorber los dispositivos supera los 3 mA. Al armar un bus con módulos comerciales, contá las resistencias que traen y retirá las que sobren.
10 · Método de trabajo
Cómo poner en marcha un sensor nuevo
Cuando incorporás un sensor que no conocés, seguí siempre el mismo orden. Cada paso descarta una familia de problemas antes de pasar al siguiente:
- Hoja de datos. Alimentación, niveles de tensión, interfaz, dirección o modo de selección, tiempo de arranque.
- Alimentación y masa. Medí la tensión en el sensor, con el microcontrolador funcionando y la radio transmitiendo.
- Conexión mínima. Un solo sensor, cables cortos, sin el resto del circuito.
- Presencia. Ejecutá el escáner I²C (o leé el identificador del chip en SPI) y comprobá que responde donde se espera.
- Lectura bruta. Leé el valor sin interpretar y verificá que cambia cuando cambia el fenómeno.
- Conversión y unidades. Aplicá las fórmulas del fabricante y comparalas con una referencia.
- Integración. Sumá el resto de los sensores y el programa completo, y revisá si aparecen interferencias.
- Condiciones reales. Probá con el cable definitivo, la fuente de producción y los casos extremos de temperatura y batería.
Si un paso falla, no avances: corregilo allí. La gran mayoría de los problemas de sensores se resuelven en los pasos 2, 3 y 4.
11 · Comprensión
Confusiones frecuentes
«El I²C funciona sin resistencias porque ya lo hice así»
A veces funciona porque el microcontrolador activa resistencias internas muy débiles (decenas de kilohmios) o porque la placa del sensor ya trae las suyas. Con un bus más largo o más rápido, esas resistencias no alcanzan. Para un diseño confiable se calculan y se agregan las externas.
«Con 4,7 kΩ siempre anda»
Es un valor razonable para un bus corto y de pocos dispositivos. Con más capacitancia o con 400 kHz puede ser demasiado grande. El valor correcto se calcula a partir de la capacitancia del bus y la velocidad.
«Más bits en el conversor mejoran la exactitud»
Mejoran la resolución, no la exactitud. Con un sensor que tiene error de ±1 °C, pasar de 10 a 16 bits da más decimales y el mismo error. Y los bits bajos suelen quedar ocultos por el ruido.
«Puedo conectar tantos sensores como direcciones haya»
Hay 112 direcciones útiles, pero la capacitancia total limita el bus a 400 pF, lo que equivale a pocas decenas de dispositivos con cables cortos. El límite eléctrico llega antes que el de direcciones.
«SPI siempre es mejor porque es más rápido»
Es más rápido, pero consume más pines, no tiene confirmación de recepción y complica el cableado. Para sensores que se leen de a ratos, la velocidad extra no aporta nada y I²C es más simple.
«Si el escáner no ve el sensor, el sensor está roto»
Lo más probable es una falla eléctrica: alimentación, masa, SDA y SCL cruzados o falta de pull-ups. También puede ser que el sensor use otra dirección o esté en un modo que no responde hasta recibir un comando. Revisá el cableado antes de descartar el sensor.
12 · Práctica guiada
Predecí antes de comprobar
1. Elegir la interfaz
Proponé una interfaz para: (a) una sonda de temperatura en un cable de 20 m dentro de un tanque; (b) cuatro sensores ambientales digitales a 20 cm del microcontrolador; (c) un acelerómetro que registra vibraciones a 1000 muestras por segundo.
Ver solución
(a) 1-Wire (o un enlace RS-485): funciona con cables largos y un solo hilo de datos. (b) I²C: dos hilos para los cuatro, con direcciones distintas. (c) SPI: la velocidad y el volumen de datos lo justifican.
2. Resolución de la entrada analógica
Una entrada de 12 bits con referencia de 3,3 V mide un sensor de 10 mV/°C. ¿Cuántos pasos distintos se obtienen entre 0 y 3,3 V y qué resolución en °C resulta? ¿Cuánto se reduce el ruido promediando 16 lecturas?
Ver solución
Hay 4096 pasos de 3,3 V / 4096 ≈ 0,806 mV, que a 10 mV/°C son 0,08 °C. Promediando 16 lecturas, el ruido aleatorio baja en un factor √16 = 4.
3. Adaptar un rango
Un sensor entrega 0 a 5 V y el microcontrolador tolera hasta 3,3 V. Calculá un divisor con 10 kΩ y 18 kΩ y la tensión que llega con 5 V a la entrada.
Ver solución
La tensión es 5 V × 18 / (10 + 18) ≈ 3,21 V, dentro del límite. La resistencia de salida del divisor es 10 || 18 ≈ 6,4 kΩ; si la lectura resulta distorsionada, se reducen los valores (por ejemplo, 5,6 kΩ y 10 kΩ) o se agrega un amplificador separador.
4. Un bus con cuatro sensores
Cuatro sensores en un bus de 1 m a 400 kHz y 3,3 V. Calculá la capacitancia, el rango de resistencias válidas y decidí si sirven 1 kΩ, 2,2 kΩ o 4,7 kΩ.
Ver solución
Cb = 10 × 5 + 50 × 1 = 100 pF. El máximo es 300 ns / (0,8473 × 100 pF) ≈ 3541 Ω y el mínimo es 2,9 V / 3 mA ≈ 967 Ω. Sirven 1 kΩ y 2,2 kΩ; los 4,7 kΩ no (398 ns > 300 ns). La de 2,2 kΩ gasta menos corriente en bajo (1,5 mA contra 3,3 mA) y es la mejor opción.
5. Dos sensores iguales
Dos sensores de humedad tienen dirección fija 0x40 y querés usar ambos en el mismo microcontrolador. ¿Qué opciones tenés?
Ver solución
(1) Segundo bus I²C del microcontrolador, que casi todos tienen, con un sensor en cada uno. (2) Multiplexor I²C que conecta uno u otro a la vez. (3) Si el modelo lo permite, usar otra variante con dirección alternativa. (4) Cambiar a un sensor con SPI, que se distingue por la línea de selección.
6. Contar pines
Querés conectar cinco sensores. ¿Cuántos pines del microcontrolador necesitás con I²C, con SPI y con UART (suponiendo un puerto por sensor)?
Ver solución
I²C: 2 pines para los cinco. SPI: 3 compartidos + 5 de selección = 8. UART: 2 por sensor = 10, además de que el microcontrolador debería tener cinco puertos disponibles. De ahí la popularidad de I²C para sensores.
13 · Síntesis
Ideas para recordar
- Un sensor puede conectarse por entrada analógica, I²C, SPI, UART, 1-Wire o una señal digital simple; para IoT, los sensores digitales por I²C son los más cómodos.
- El conversor analógico-digital da un código proporcional a la tensión; más bits dan más resolución, pero la exactitud depende del sensor y la calibración.
- Hay que adaptar el rango de la señal al de la entrada (con un divisor, por ejemplo) y promediar lecturas para reducir el ruido.
- I²C usa dos líneas compartidas, direcciones de 7 bits y colector abierto; no funciona sin resistencias de pull-up.
- Las direcciones no pueden repetirse en un bus; el escáner I²C confirma qué dispositivos responden y en qué dirección.
- La resistencia de pull-up tiene un rango válido que depende de la capacitancia del bus y la velocidad; con más cable o más dispositivos el rango se achica y a 400 pF desaparece.
- SPI es más rápido y no necesita pull-ups, pero exige un pin de selección por dispositivo y no confirma la recepción.
- La masa común, los niveles de tensión coherentes, el desacoplo y los cables cortos evitan la mayoría de los fallos de cableado.
- Un sensor nuevo se pone en marcha en pasos: hoja de datos, alimentación, conexión mínima, presencia, lectura bruta, unidades e integración.
¿Listo para el tema 9?
Antes de avanzar, conectá un sensor digital a tu placa, ejecutá el escáner I²C y anotá la dirección que aparece. Después calculá la capacitancia de tu cableado, el rango de resistencias válidas y comprobá si la que tenés instalada está dentro. Si el sensor responde y los números cierran, estás listo para decidir cada cuánto leerlo.
En el próximo tema estudiamos el muestreo y la frecuencia de lectura: cada cuánto medir según la rapidez con que cambia la variable, qué es el teorema del muestreo en la práctica y qué cuesta medir de más.