jueves, 26 de marzo de 2015

Arduino Shield. Programa 1

Vamos a comenzar las pruebas con el shield que hemos construido. Para ello nos vamos a centrar en el pulsador. Como lo hemos conectado al PIN 2, vamos a crear un programa que sea capaz de leer el estado del pulsador y dependiendo del estado de éste, iluminará un segmento del display. El segmento elegido es el correspondiente al punto del display.

Es conveniente ser ordenado en los programas, y documentar cualquier actuación nueva pues nos facilitará una futura revisión de los mismos. Teniendo esto en cuenta, declararemos unas variables que contendrán los números de pin del pulsador, el pin del punto en el display y el estado del pulsador:

    int pin_pulsador = 2;
    int pin_punto = 10;
    int pulsador;

 Una vez que hemos declarado todas las variables, pasaremos a describir los pasos necesarios para la configuración de los pines. Recordad que si vamos a utilizar un pin, debemos decirle a Arduino si queremos usarlo como entrada o como salida. Y todo ello lo situaremos en la función SETUP:

        pinMode(pin_pulsador, INPUT);
        pinMode(pin_punto, OUTPUT);

Observamos que como pretendo utilizar como entrada el pin donde está conectado el pulsador para leer su estado, lo configuro con la primera línea, y si voy a usar el pin donde está conectado el punto del display para enviar datos hacia fuera, debo configurarlo como salida.

Ya está terminada la configuración, ahora pasamos a las tareas que estará realizando continuamente ARDUINO, y que situaremos en la función LOOP:
        
        pulsador = digitalRead(pin_pulsador);
        if (pulsador == 0) digitalWrite(pin_punto, HIGH);
        else digitalWrite(pin_punto, LOW);

La primera tarea consistirá en la lectura del estado del pulsador, para ello usaremos la función "digitalRead" indicándole el pin que deseamos leer, y enviando el resultado hacia la variable pulsador.

En la siguiente línea, se emplea la primera parte de una estructura de control de tipo IF... ELSE. En esta línea se analiza el valor de la variable "pulsador" comparándola con "0" [if (pulsador = = 0)]. En caso de que se cumpla la condición, la acción a ejecutar se encuentra en la misma línea a continuación  [digitalWrite (pin_punto, HIGH)], que consistirá en enviar un estado alto hacia el pin punto del display.

En la última línea se utiliza la segunda parte de la estructura IF... ELSE. En ella colocamos, detrás de "else" la acción a ejecutar si no se cumple la condición analizada en la anterior línea. La acción que hemos elegido nosotros es la de enviar un estado bajo hacia el pin punto del display.

Como todo lo situado en la función LOOP se estará ejecutando continuamente (en un bucle), tendremos que nuestro Arduino estará todo el rato indicando mediante el led punto del display si activamos o no el pulsador.




A continuación tienes el programa completo:

    // Consulta el estado del pulsador, indicándolo mediante el segmento punto del display

    int pin_pulsador = 2;
    int pin_punto = 10;
    int pulsador;
    void setup()
    {
        pinMode(pin_pulsador, INPUT);
        pinMode(pin_punto, OUTPUT);
       
    }
   
    void loop()
    {
        pulsador = digitalRead(pin_pulsador);
        if (pulsador = = 0) digitalWrite(pin_punto, HIGH);
        else digitalWrite(pin_punto, LOW);
    }