Entradas Analógicas. Lectura de un potenciómetro.

PROGRAMACIÓN BÁSICA


Entradas Analógicas

 

Introducción

A diferencia de las entradas digitales, que solo pueden leer dos estados (alto y bajo), las entradas analógicas pueden leer un rango continuo de valores. Esto es útil para leer sensores que no se limitan a valores binarios, como sensores de temperatura, luz, o potenciómetros. Las placas Arduino generalmente tienen un conversor analógico-digital (ADC) de 10 bits, que convierte una señal analógica en un valor digital entre 0 y 1023.

Las entradas analógicas en Arduino no necesitan ser configuradas explícitamente como entradas. Al utilizar la función analogRead(pin);, el pin se interpreta automáticamente como una entrada analógica. La función analogRead(pin); se utiliza para leer el valor analógico de un pin. Esta función devuelve un valor entre 0 y 1023, que representa la señal analógica medida.
Para convertir el valor digital leído (0-1023) a un voltaje real (0-5V), se puede utilizar la siguiente fórmula:

float voltage = potValue * (5.0 / 1023.0);

Actividad de ejemplo

 

Lectura analógica discretizada.

A continuación, se presenta un código para leer el valor de un potenciómetro, mostrar el valor de cuenta (raw value) y el valor de tensión en el monitor serial, y activar/desactivar un LED en función de un umbral.

La comunicación serial se utiliza para enviar y recibir datos entre el Arduino y una computadora. En este caso, imprimimos los valores leídos del potenciómetro y el voltaje convertido a través del puerto serial.

Conexiones:

- Un extremo del potenciómetro se conecta a 5V, mientras que el otro extremo se conecta a 0V (Gnd). El terminal central (wiper) se conecta a un pin analógico  del Arduino (Por ejemplo: A0).

-El cátodo (pierna más corta) del LED se conecta a GND. El ánodo (pierna más larga) del LED se conecta a una resistencia limitadora de corriente (330 ohmios, por ejemplo), y luego al pin digital 9 del Arduino.

Funcionamiento conceptual.

El potenciómetro proporciona una señal analógica variable entre 0 y 5V. El Arduino lee esta señal analógica y la convierte en un valor digital entre 0 y 1023. Este valor digital se convierte a voltaje y se imprime a través del puerto serial. El LED se enciende si el valor del potenciómetro excede un umbral predefinido y se apaga si está por debajo de este umbral.

// Definición de pines
const int potPin = A0;   // Pin del potenciómetro (entrada analógica)
const int ledPin = 9;    // Pin del LED (salida digital)

// Variables
int potValue = 0;        // Variable para almacenar el valor del potenciómetro
float voltage = 0.0;     // Variable para almacenar el valor de voltaje
const int threshold = 512; // Umbral para activar/desactivar el LED (valor analógico de 0 a 1023)

void setup() {
  // Configurar el pin del LED como salida
  pinMode(ledPin, OUTPUT);

  // Inicializar comunicación serial
  Serial.begin(9600);
}

void loop() {
  // Leer el valor del potenciómetro (valor analógico de 0 a 1023)
  potValue = analogRead(potPin);

  // Convertir el valor leído a voltaje (0 a 5V)
  voltage = potValue * (5.0 / 1023.0);

  // Imprimir el valor del potenciómetro y el voltaje por el puerto serial
  Serial.print("Potentiometer Value: ");
  Serial.print(potValue);
  Serial.print("\t Voltage: ");
  Serial.println(voltage);

  // Controlar el LED según el umbral
  if (potValue > threshold) {
    digitalWrite(ledPin, HIGH);  // Encender el LED si el valor del potenciómetro es mayor al umbral
  } else {
    digitalWrite(ledPin, LOW);   // Apagar el LED si el valor del potenciómetro es menor o igual al umbral
  }

  // Añadir un pequeño retardo para estabilidad
  delay(100);
}
Vistas
4 Número de vistas
4 Vistas de miembros
0 Vistas públicas
Acciones
0 Gustos
0 No me gusta
0 Comentarios
Compartir en redes sociales
Compartir enlace
Compartir por correo

Por favor iniciar sesión para compartir esto webpage por correo.