Actividad 9

 

Lectura de Pulsadores en PCB v2.2

En los próximos ejercicios haremos uso de la PCB Escornabot V2.2 proporcionada y el Arduino Nano.

En primer lugar, conectamos el Arduino Nano en el zócalo, prestando atención a la correcta colocación del microcontrolador. Para ello, la PCB presenta serigrafiado el pin TX que deberemos hacer coincidir con el pin TX de nuestro Arduino Nano. Si está bien conectada, debe verse como en la siguiente imagen.


Una vez conectado, abriremos el Arduino IDE y comprobaremos que nuestra placa Arduino Nano es detectada.

En este primer ejemplo, realizaremos una lectura analógica del pin A7 y la mostraremos por puerto serie. Así podremos confirmar las lecturas del conversor analógico-digital que hemos calculado anteriormente. Una vez comprobadas, crearemos un código que sea capaz de indicarnos por puerto serie cuál de los botones ha sido pulsado en función de la lectura analógica.

Como vamos a necesitar el valor mínimo y máximo para establecer el rango de los distintos pulsadores, como se vio en la última tabla, ya disponemos de ellos en nuestra librería declarados como SX_valor_minimo y SX_valor_maximo, donde X es el número del pulsador.

(Recuerda que tienes disponibles los pines de todos los componentes del Escornabot en nuestra librería para realizar los próximos ejercicios sin necesidad de buscar en qué pin está conectado cada elemento)

/*
    Ejemplo [ Pulsadores.ino ] para comprobar el funcionamiento de los pulsadores
    en el Escornabot.
*/

// Incluimos la libreria con funciones y variables para Escornabot
#include "Escornabot.h"

/*
    Inicializamos la clase en la variable de nombre Escornabot.
    Como en este ejemplo no vamos a utilizar los motores, podemos
    pasar el argumento para el constructor de la clase Escornabot
    con cualquier valor.
*/
Escornabot Escornabot(10);

// Rutina de Setup
void setup() {

    // En el setup no es necesario hacer nada más que
    // inicializar la comunicación Serial
    Serial.begin(9600);

}

void loop() {

    int lectura_pulsador = analogRead(Escornabot.entrada_pulsadores);

    // Comprobamos la lectura dentro del rango del boton S1
    if (
      (Escornabot.S1_valor_minimo < lectura_pulsador) &&
      (lectura_pulsador < Escornabot.S1_valor_maximo)
    ) {
        Serial.println("Se ha pulsado el boton S1.");
        Serial.print("Lectura digital: ");
        Serial.println(lectura_pulsador);
        Serial.print("Lectura estimada en V: ");
        Serial.println(map(lectura_pulsador, 0102305));
        delay(1000);
    }

    // Comprobamos la lectura dentro del rango del boton S2
    else if (
      (Escornabot.S2_valor_minimo < lectura_pulsador) &&
      (lectura_pulsador < Escornabot.S2_valor_maximo)
    ) {
        Serial.println("Se ha pulsado el boton S2.");
        Serial.print("Lectura digital: ");
        Serial.println(lectura_pulsador);
        Serial.print("Lectura estimada en V: ");
        Serial.println(map(lectura_pulsador, 0102305));
        delay(1000);
    }

    // Comprobamos la lectura dentro del rango del boton S3
    else if (
      (Escornabot.S3_valor_minimo < lectura_pulsador) &&
      (lectura_pulsador < Escornabot.S3_valor_maximo)
    ) {
        Serial.println("Se ha pulsado el boton S3.");
        Serial.print("Lectura digital: ");
        Serial.println(lectura_pulsador);
        Serial.print("Lectura estimada en V: ");
        Serial.println(map(lectura_pulsador, 0102305));
        delay(1000);
    }

    // Comprobamos la lectura dentro del rango del boton S4
    else if (
      (Escornabot.S4_valor_minimo < lectura_pulsador) &&
      (lectura_pulsador < Escornabot.S4_valor_maximo)
    ) {
        Serial.println("Se ha pulsado el boton S4.");
        Serial.print("Lectura digital: ");
        Serial.println(lectura_pulsador);
        Serial.print("Lectura estimada en V: ");
        Serial.println(map(lectura_pulsador, 0102305));
        delay(1000);
    }

    // Comprobamos la lectura dentro del rango del boton S5
    if (
      (Escornabot.S5_valor_minimo < lectura_pulsador) &&
      (lectura_pulsador < Escornabot.S5_valor_maximo)
    ) {
        Serial.println("Se ha pulsado el boton S5.");
        Serial.print("Lectura digital: ");
        Serial.println(lectura_pulsador);
        Serial.print("Lectura estimada en V: ");
        Serial.println(map(lectura_pulsador, 0102305));
        delay(1000);
    }

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