Actividad 6

       

      Lectura analógica de un potenciómetro

      Para afianzar el concepto de entrada analógica y comunicación serial, vamos a realizar la lectura de un potenciómetro de 50kOhm que conectaremos entre 5V y GND, para así observar cómo según la tensión existente en el pin de medida, obtendremos un valor analógico u otro.



      Es recomendable, en primer lugar, repasar la fórmula para un divisor de tensión resistivo.

      Cuando conectamos dos resistencias en serie, la tensión en el punto intermedio responde a la siguiente expresión:





      Dado que el potenciómetro se comporta como un divisor de tensión en el que cambian continuamente los valores de ambas resistencias, podemos aplicar la fórmula anterior.

      Para realizar la lectura del potenciómetro haremos uso de la función analogRead(pin) que nos devuelve como valor entero la tensión existente en el pin indicado codificada entre 0-1023.

       

       

      Además, queremos poder leer el valor de lectura en el ordenador por lo que haremos uso del monitor serie y la comunicación Serial.

      Podemos añadir un voltímetro a nuestro montaje para confirmar que la tensión medida coincide con la tensión real existente en el pin. Para convertir el valor medido (0-1023) a un voltaje (0-5V), podemos aplicar una simple regla de tres/factor de conversión para poder comparar con la tensión medida por el multímetro.

      El montaje una vez añadido el voltímetro quedaría como sigue:


      // Definimos el pin donde conectamos el potenciometro
      const int pin_potenciometro = A0;

      void setup() {

        // Inicializamos la comunicación serial
        Serial.begin(9600);

        // No es necesario configurar los pines que funcionarán como
        // entradas en el setup, ya que por defecto funcionan ya
        // como entradas.

      }

      void loop() {

        // Leemos el valor analógico del pin
        int lectura = analogRead(pin_potenciometro);

        // Calculamos el valor leído en voltaje, es importante operar con números
        // de tipo float para obtener un resultado final del mismo tipo
        float voltaje = 5.00 * lectura / 1023.00;

        Serial.print("Valor medido: ");         // Imprimimos un mensaje
        Serial.print(lectura);                  // Imprimimos el valor de lectura
        Serial.print(" | Voltaje calculado: "); // Imprimimos un mensaje
        Serial.println(voltaje);                // Imprimimos el valor de voltaje

        delay(1000); // Esperamos 1000ms = 1s antes de volver a leer

      }
      Vistas
      31 Número de vistas
      31 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.