Tabla de contenido

🔶 Introducción


En el mundo de los microcontroladores, la capacidad de leer valores analógicos es fundamental para interactuar con una variedad de sensores y dispositivos que envían señales continuas. Esta habilidad permite que los microcontroladores capturen datos del entorno, como la intensidad de luz, la temperatura o la posición de un potenciómetro, y los transformen en valores digitales que pueden ser procesados en aplicaciones de control y monitoreo.

📘 Fundamento Teórico


📖 Tema: Lectura de Valores Analógicos en Microcontroladores

Los microcontroladores, como el Arduino, tienen la capacidad de leer señales analógicas gracias a su conversor analógico a digital (ADC). Este convertidor toma un voltaje de entrada y lo transforma en un valor numérico discreto que el microcontrolador puede procesar.

📄 Principio de funcionamiento del ADC

El ADC de un microcontrolador convierte un voltaje de entrada analógico en un valor digital. En el caso de un Arduino UNO, el ADC tiene una resolución de 10 bits, lo que significa que puede representar el voltaje de entrada en 1024 niveles distintos (de 0 a 1023). La fórmula para calcular el voltaje de entrada basado en el valor leído es:

$$ V_{entrada} = \frac{Valor_{ADC}}{1023} \times V_{ref}

$$

Donde VrefV_{ref}Vref​ es la referencia de voltaje, típicamente 5V o 3.3V.

📄 Ejemplos de sensores analógicos

  1. Potenciómetro: Dispositivo que actúa como un divisor de voltaje variable.
  2. Sensor de luz (LDR): Varía su resistencia dependiendo de la cantidad de luz que recibe.
  3. Sensor de temperatura: Como el LM35, que proporciona un voltaje proporcional a la temperatura.
/*************************************************************************
 *   Lectura de un potenciómetro                                         *
 *   Dispositivo: Arduino UNO                                            *
 *   Lenguaje: Arduino                                                   *
 *   Rev: 1.0                                                            *
 *   Fecha: 05/11/24                                                     *
 ************************************************************************/

// Definición del pin de entrada analógica
const int potPin = A0;  // Pin donde está conectado el potenciómetro

void setup() {
    // Inicialización de la comunicación serial
    Serial.begin(9600);
    // Configuración del pin como entrada (opcional, ya que analogRead lo hace automáticamente)
    pinMode(potPin, INPUT);
}

void loop() {
    // Lectura del valor analógico del potenciómetro
    int potValue = analogRead(potPin);

    // Impresión del valor en el monitor serial
    Serial.print("Valor del potenciómetro: ");
    Serial.println(potValue);

    // Pequeña pausa para evitar saturar el monitor serial
    delay(500);  // 500 ms de espera
}