Como funciona la función analogRead Arduino

El comando analogRead en el lenguaje Arduino IDE se utiliza para leer la señal analógica de los puertos marcados en las placas Arduino como Ananlog In. Esta función se utiliza para sondear sensores analógicos conectados al microcontrolador, tales como: termistor, fotorresistencia, sensor de temperatura LM35, etc. Consideremos el uso de analogRead() en el programa en un ejemplo simple con una conexión de resistencia variable.

Para esta actividad necesitaremos:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • LED y resistencia de 220 Ohm
  • módulo de potenciómetro
  • placa de pruebas
  • cables de conexion

Para que sirve función analogRead en Arduino

Conexión potenciómetro y LED con Arduino
Conexión potenciómetro y LED con Arduino

La función analogRead Arduino lee el valor de tensión en la entrada especificada del microcontrolador. La placa Arduino Uno / Nano tiene 6 entradas analógicas conectadas a un ADC (convertidor analógico a digital) de 10 bits. Esto significa que el voltaje de entrada del sensor de 0 a 5 voltios se convierte en un valor digital entero de 0 a 1023. La resolución resultante es 5 / 1024, es decir, la precisión de la medición es de 0,0049 Voltios.

Función analogRead Arduino IDE descripción

analogRead(pin);
  • pin – número de la entrada analógica que debe controlarse

En el siguiente ejemplo conectaremos un potenciómetro (resistencia variable) a la entrada analógica A1 del microcontrolador Arduino (el diagrama de cableado está arriba). Al girar el mando del potenciómetro cambiará la variable val, que se mostrará en el monitor del puerto IDE de Arduino. Dependiendo del valor de la variable, el comando analogWrite Arduino cambiará el brillo del LED conectado al pin 10, que soporta modulación PWM.

Programa Arduino para función analogRead()

void setup() {
  Serial.begin(9600);
 
  pinMode(10, OUTPUT);
  pinMode(A1, INPUT);
}

void loop() {
  int val = analogRead(A1); // leer datos de la entrada A1
  val = val / 4;
  Serial.println(val); // mostrar datos en el monitor del puerto
 
  analogWrite(10, val); // cambiar el brillo del LED
  delay(100);
}

Explicación del código Arduino para función analogRead():

  1. los pines analógicos se utilizan como entradas por defecto. Por lo tanto, no es necesario configurarlos con pinMode antes de llamar a analogRead(), a diferencia del digitalWrite();
  2. el valor del puerto A1 (variable val) se envía al monitor de puertos.

Nota: Si la entrada analógica del microcontrolador se deja desconectada, el valor devuelto por analogRead() puede ser aleatorio. Los valores fluctuarán dependiendo de muchos factores – el valor de otras entradas analógicas, campos electromagnéticos, etc. La tensión de referencia por defecto es de 5 voltios: puede utilizar un valor diferente si es necesario.

Conclusión. Hemos visto lo que significa analogRead en el lenguaje Arduino IDE y hemos mostrado el uso de la función analog Read en un sketch con un potenciómetro (resistencia variable). Pero puedes utilizar cualquier otro sensor analógico, como una fotorresistencia o un sensor de nivel de agua. La conversión analógico-digital (Arduino ADC) tarda unos 100 µs, por lo que la velocidad máxima de medición es de unas 10.000 veces por segundo.


Deja una respuesta

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