les vencimos · offline

L15. Digital y analógico

Sensores (38–54%)

Maestro

Digital es sí o no. Analógico, en el Uno, es un número de 0 a 1023. Ese número no es «más calidad de vida». Es una medida: el chip parte el rango entre 0 voltios y la referencia, casi siempre 5, en 1024 escalones. 10 bits son eso, 2 elevado a 10. Hoy no se cablea. Hoy se sabe qué significa el número antes de creerlo.

digitalRead devuelve HIGH o LOW. Sirve para un botón, un final de carrera, un módulo que ya decidió. analogRead devuelve un entero de 0 a 1023 en el Uno. Cero es la masa. 1023 es la referencia, normalmente los 5 voltios del Uno. 512 es la mitad de la escala, unos 2,5 voltios. No es la mitad por poesía: 1023 partido por dos, y el entero se queda en 511 o 512 según cómo redondees. En el curso, el umbral de en medio será 512, holgado y fácil de leer.

Esos pines son A0, A1, A2, A3, A4 y A5. Se llaman analógicos porque miden, no porque saquen una tensión analógica ellos solos. Sacar un valor intermedio de verdad, un voltaje a medias, no es analogWrite en el sentido que la gente cree: eso será el PWM, más adelante, y es un parpadeo rápido, no una tensión limpia. No los mezcles hoy.

La cuenta inversa también ayuda. Si lees 200, estás cerca de masa, no a media escala. Si lees 900, estás cerca de 5 voltios. Sin esa traducción, un sensor «da números» y no sabes si sube la luz o el cable suelto.

Placa de 3,3 voltios: el 1023 sería 3,3, no 5, y además no le metas un divisor pensado para 5. El curso mide con el Uno.

Montaje

digital: solo dosanalógico en el Uno: 1024 escalones, de 0 a 1023
Abajo, muchos escalones. Arriba, solo dos cajas. El pin 13 no se vuelve analógico por desearlo.

Pines de esta lección

Uno R3 · 5 V · mira la serigrafía, no la memoriaA00 a 102313sigue sí o no5 VtechoGNDsuelo
A0 se lee. El 13 se escribe. No son el mismo tipo de número.

Por qué

Una entrada digital distingue dos zonas: cerca de 0 V y cerca de 5 V. Una entrada analógica del Uno, A0 a A5, mide y devuelve un entero de 0 a 1023. 0 es masa. 1023 es cerca de 5 V. 512 está a mitad, unos 2,5 V. No hay decimales. No hay voltios en el número hasta que tú los calculas.

analogRead no enciende nada. Solo pregunta. El LED sigue siendo digital hasta la lección de PWM. Si escribes analogRead(13) no estás midiendo el LED: el 13 no es un canal analógico. Los canales son A0, A1, A2, A3, A4 y A5.

El conversor necesita un voltaje quieto un instante. Un pin flotando, sin potenciómetro ni divisor, da números que bailan. No está roto el chip. Está midiendo el aire. Hasta que no haya un circuito en A0, no interpretes el baile.

A4 y A5 son a la vez analógicos y, más adelante, el bus I2C. Si un día cuelgas ahí una pantalla, deja de usarlos como potenciómetro. Hoy están libres.

Práctica

  1. Sin cablear aún, escribe en el papel la escala: 0 masa, 1023 los 5 V, 512 el medio.
  2. Señala A0 en la placa. Comprueba que no es el pin 0 de RX.
  3. Calcula qué número sería 1 V aproximado: 1023 por 1 entre 5, cerca de 205. No hace falta el decimal.
  4. Di qué función lee y qué función escribe: analogRead lee, digitalWrite escribe.
  5. Explica por qué un LED en el 13 no puede mostrar 512 niveles con digitalWrite. Solo tiene dos.
  6. Deja A0 sin tocar hasta la lección del potenciómetro. Un dedo en el pin solo mete ruido.
  7. Anota que el resultado se verá en el LED 13 con un umbral, no en el monitor. El monitor llega en la lección de Serial.

Anota el montaje

Escribe qué cable va a qué pin, o qué has entendido del paso. Se guarda en este aparato.

Ejemplos resueltos

Se espera un 2,5 en la variable

Alguien compara analogRead con 2, creyendo que son voltios. Casi cualquier luz o posición supera 2, y la condición está siempre cumplida.

El número va de 0 a 1023. Medio camino es 512, no 2,5. Si quieres voltios, los calculas aparte; la comparación del curso usa el entero.

Se lee el pin 13

El LED está en el 13 y se pide analogRead(13). Eso no devuelve el brillo. En el Uno, analogRead quiere A0 y sus vecinos.

Se mide A0. Se actúa sobre el 13. Una patilla pregunta y otra contesta.

En la mesa

Sin potenciómetro todavía, escribe en una línea la escala y tres marcas: cero, quinientos doce, mil veintitrés. Debajo, en voltios aproximados: cero, dos y medio, cinco. No hace falta más precisión. Si alguien te dice que analogRead devuelve voltios, corrígelo con esta línea. El entero es lo que el if va a comparar. Los voltios son una traducción para ti.

Señala A0 y el pin 0 con las dos manos a la vez, para sentir que están en lados distintos de la placa. El día que el monitor serie entre, el pin 0 se ocupa solo. A0 sigue libre. Confundirlos es el fallo de una letra, y cuesta una tarde. Dilo: A cero mide, cero a secas habla con el USB.

Cierra la lección sin cablear el dedo en A0. Un dedo no es un sensor: es una antena húmeda. La tentación de ver números moviéndose es fuerte y enseña lo contrario de un circuito. Espera al potenciómetro, que sí tiene dos extremos y un cursor.

Ejercicio

Sin placa, completa tres huecos: lectura 0 significa …, lectura 512 significa …, lectura 1023 significa …. En voltios, para un Uno a 5 V.

Autoevaluación

1. ¿Qué rango da analogRead en el Uno?

2. ¿Qué tensión representa, más o menos, el valor 512?

3. ¿analogRead saca una tensión por el pin?