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
}

/*************************************************************************
 *   Lectura del sensor CNY70                                           *
 *   Dispositivo: Arduino UNO                                            *
 *   Sensor: CNY70                                                       *
 *   Lenguaje: Arduino                                                   *
 *   Rev: 1.0                                                            *
 *   Fecha: 05/11/24                                                     *
 ************************************************************************/

// Definición del pin de entrada analógica
const int sensorPin = A0;  // Pin donde está conectado el sensor CNY70

void setup() {
    // Inicialización de la comunicación serial
    Serial.begin(9600);  
    // Configuración del pin como entrada
    pinMode(sensorPin, INPUT);
}

void loop() {
    // Lectura del valor analógico del sensor
    int sensorValue = analogRead(sensorPin);

    // Impresión del valor en el monitor serial
    Serial.print("Valor del sensor CNY70: ");
    Serial.println(sensorValue);

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

📓Actividad


🧠 Ejercicios


❓Preguntas


❗Véase también


✔️ Referencias


👁️‍🗨️ Otros temas


📚 Tabla de contenido

🗓️ Semana 9 - 📗 Señales analógicas y adquisición de datos

Lectura de señales mediante convertidor ADC

Visualización de señales en entorno serial o display

Manejo de sensores analógicos

AC05 - Sensor analógico

AFU03 - Máquina de Estados

🗓️ Semana 10 - 📗 Manejo de tiempo y comunicación de datos

Temporización

Comunicación serie y protocolos de intercambio básico de datos

AC06 - Control de salidas

AFU04 - Interfaz de salida visual

🗓️ Semana 11 - 📗 Interfaces de salida

Maquina de estados

Manejo de pantallas

Control de dispositivos de salida

AC07 - Visualización de datos

AFU05 - Protocolos de comunicación

🗓️ Semana 12 - 📗 Entradas, salidas analógicas y control de cargas

Índice programa académico

  1. Fundamentos de sistemas electrónicos y programación
  2. Desarrollo de firmware y técnicas de comunicación de datos
  3. Procesamiento de señales, gestión de datos y interfaces de usuario
  4. Optimización y aplicaciones avanzadas de sistemas electrónicos
  5. PIA