Entradas Analógicas y el Potenciómetro

Es momento de utilizar las entradas analógicas de la tarjeta Arduino. Las entradas analógicas brindan a los microcontroladores un mundo de posibilidades, tienen un potencial enorme como para la lectura de sensores o variables contínuas como del ambiente, podemos recordar que la principal desventaja de los sistemas digitales es que el mundo es por naturaleza analógico.

Las entradas analógicas utilizan un convertidor de analógico a digital, se pueden describir por su resolución (en bits) y el voltaje máximo que puede recibir en su entrada. En el caso del Arduino UNO la resolución de su convertidor A/D es de 10 bits y recibe voltajes de hasta 5V. Esto quiere decir que…

1 bit son dos combinaciones, del 0-1

2 bits son 4 combinaciones, del 0-3

3 bits son 8 combinaciones, del 0-7

4 bits son 16 combinaciones, del 0-15

5 bits son 32 combinaciones, del 0-31

6 bits son 64 combinaciones, del 0-63

7 bits son 128 combinaciones, del 0-127

8 bits son 256 combinaciones, del 0-255

9 bits son 512 combinaciones, del 0-511

10 bits son … combinaciones, del 0-…

Partiendo de esta información se puede comenzar a ver las entradas analógicas en el Arduino.

arduino_analog

Se tiene una sección de 6 terminales de entradas analógicas, numeradas como A0 a A5. Cualquiera de estas 6 entradas se puede utilizar como una entrada analógica. Al momento de utilizar la instrucción analogRead en el código de Arduino se deb especificar el número de entrada analógica (0-5) y entonces devolverá un valor entero que representa el valor analógico a la entrada:

int valor = 0;

valor = analogRead(1);

Esto quiere decir que valor arroja un número que representa el voltaje en la entrada analógica A1.

En 10 bits se tienen 1024 combinaciones, valores del 0 al 1023, y si el voltaje de entrada máximo es 5 V, de modo que ante un voltaje de 0 V a la entrada analógica, arrojaría un valor de 0, mientras que en un voltaje de entrada de 5 V entregaría 1023. Para un voltaje de 2.5 V se tendría un valor de alrededor de 512.

Como desarrolladores Arduino, podría resultar útil poder ver el valor que entrega la función analogRead, para eso se puede hacer uso del puerto serie y utilizar la función print de modo que se pueda ver en el monitor serial el valor leído.

Serial.print(“Valor analógico: “);

Serial.println(valor);

Ahora un pequeño ejercicio: Intentar mostrar en el monitor serial el valor digital que corresponde a una entrada analógica del Arduino UNO.

Arduino:

int pinAnalog = 0; // Podemos usar una variable que defina el pin de la entrada analógica para no tener que recordarlo
int valor = 0;

void setup() {
  Serial.begin(9600);
}

void loop() {
  valor = analogRead(pinAnalog);
  Serial.print("Valor analógico: ");

  Serial.println(valor);
  delay(100);
}

Si la entrada analógica no tiene conectado nada (al aire), el valor que se obtenga puede ser impredecible, para probar se puede poner directamente 5 V y ver que valor muestra, conectar GND y ver de nuevo que valor arroja.

Ahora algo más entretenido, un potenciómetro.

pots

Los potenciómetros son resistencias variables, que al girar una perilla podemos cambiar su valor desde 0 Ohms hasta el valor máximo que se tenga, por ejemplo 10k.

Se tienen 3 terminales, la terminal del centro es la que varía, de modo que al colocar la perilla al extremo izquierdo se tendrán 0 Ohms entre la terminal central y la terminal izquierda, mientras que se tendrá la máxima resistencia con la terminal derecha. Al mover la perilla se varía entonces la resistencia entre la terminal central y sus extremos. Si se mide la resistencia entre las terminales de los extremos, siempre se tendrá la resistencia máxima (por ejemplo 10k) y no variará.

Si se conecta GND y 5 V en las terminales de los extremos respectivamente, tendremos un voltaje variables en la terminal central, desde 0 a 5 V. Esto podría servir para conectar a una entrada analógica del Arduino:

arduino_pot

Volver a probar el programa anterior y ver los nuevos valores al girar el potenciómetro.

Ejercicios:

5B: Agregar una condición para que se muestre un letrero en el monitor serial que diga cuando el valor está por debajo de la mitad y otro diferente cuando esté por arriba de la mitad. “Menos que 512” o “Más de 512”.

5C: Agregar al programa un cálculo para que muestre el voltaje correspondiente, por ejemplo para un valor de 1023 diga: “5.0 Volts”, para un valor de 512 diga: “2.5 Volts”, etc., para esto utilizar una regla de 3. Para lograr esto, se requiere utilizar una variable de tipo float.

5D: Encender un LED cuando el voltaje de entrada sea mayor a 3 V y apagar cuando sea menor.

(2218)

Acerca de jfvilla

Juan Francisco Villa Medina es ingeniero en Sistemas Computacionales (graduado con mención honorífica), en 2013 obtuvo el grado de Maestro en Sistemas Computacionales (graduado con mención honorífica), en 2021 obtuvo el grado de Doctor en Ciencias por el Instituto Politécnico Nacional (IPN), es Profesor-Investigador en la Universidad Autónoma de Baja California Sur (UABCS). Trabaja también en el Centro de Investigaciones Biológicas del Noroeste (CIBNOR), donde es desarrollador de software y circuitos electrónicos enfocado en vehículos autónomos. Cuenta con diversas publicaciones científicas y ha sido asesor de estudiantes en diversos eventos de tecnología a nivel nacional. También es co-fundador de 7robot, una empresa de tecnología enfocada a la robótica y automatización.

Un comentario en «Entradas Analógicas y el Potenciómetro»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *