Introducción:

Este proyecto demuestra como el uso de un botón enciende o apaga un diodo emisor de luz (LED). Probablemente estas familiarizado con el tradicional interruptor de encendido, el cual controla directamente el paso de la corriente eléctrica que es entregada a una lámpara. En este proyecto, un botón es usado para controlar un LED, no estando directamente conectado a él. En lugar de eso, el botón es usado para establecer una tensión, la cual es “leída” por un pin de entrada o salida (I/O) digital del chipKIT. Con esa tensión, podemos determinar si el botón es pulsado o no (estado del botón). El LED puede iluminarse de acuerdo con el estado del botón: solo se iluminará mientras el botón esté presionado.

1

Figura 1. LED controlado por botón

Antes de comenzar, usted debería:

  • Comprender el material mostrado en el proyecto “Parpadeo de un LED externo”, usando los pines de estado del chipKIT, para controlar un circuito externo.

Una vez realizarlo, usted debería:

  • Comprender el uso de los resistores “pull-up” y “pull-down”.
  • Comprender a cerca de las sentencias y operadores de comparación.
  • Comprender como la placa chipKit “lee” una tensión externa (digital).

INVENTARIO

inv

PASO 1: CONFIGURACIÓN DE LED

  1. Ubique el LED en la protoboard como se muestra en la Figura 2, teniendo en cuenta que el ánodo es el más largo de las patas y el cátodo es la más corta. (En la Figura 2. el cátodo es el pin izquierdo y el ánodo el derecho).  En un proyecto posterior se le añadirán más LEDs al circuito, así que, a pesar del hecho que solo estamos utilizando un LED, se  le denominará LED A. (note que el otro pin usado es para controlar el LED, este es el circuito completo, siendo funcionalmente idéntico al circuito descrito en el proyecto “parpadeo de LED externo”).
Figura 2. Configuración del LED

Figura 2. Configuración del LED

  1.  Usando un cable como puente, conecte el ánodo del LED A al pin 12.
  2. Conecte el pin de tierra (GND) del chipKIT en el carril inferior de la protoboard. Los carriles son a menudo utilizado como bus. Aquí hay múltiples pines de tierra, siendo todos una misma GND. En la Figura 2, El cable es conectado al pin GND más cercano a los 5V.
    • Si a usted no le es familiar el uso de la protoboard, favor leer manuales básicos relacionados a la protoboard. Los rieles (bus) de la protoboard  son las dos filas de la parte superior e inferior.  Todos los agujeros de una fila están eléctricamente conectadas. El bus esta usualmente separado de la sección principal en la protoboard, estando a veces de color rojo y azul.
    • El bus proporciona un conveniente camino, conectando particularmente la tensión (o  tierra) a una variedad de puntos dentro de la sección principal de la protoboard y/o la placa chipKit.
    • Para el resto de este proyecto, el bus conectado al pin GND es usado como referencia a tierra.
  3. Ahora, conecte un terminal del resistor (220Ω) al cátodo del LED A. (los resistores se comportan de la misma manera, independientemente de su orientación). El otro terminal del resistor debe estar ubicado en la tierra que conecta el bus. Esto se puede realizar ubicando el terminal del resistor directamente dentro del bus. Alternativamente, como se muestra en la Figura 2, usted puede insertar el otro extremo del resistor en una columna (o nodo) diferente de la protoboard y luego usar un cable de conexión, desde la columna hacia la tierra del bus.

Cuando hay un único camino para que el flujo de corriente circule a través de dos componentes, se dice que los componentes están en “serie”. El LED en este circuito tiene un resistor en serie a él. Este “resistor en serie” es usado para limitar la corriente que pasa a través de su respectiva rama, tal y como se describe con detalle en el proyecto “parpadeo de un LED externo”, esto también es conocido como una resistencia limitadora de corriente. (Como una pequeña recomendación, los LEDs son dispositivos no lineales y potencialmente puede pasar por ellas una gran cantidad de corriente cuando su tensión umbral es excedida. El “resistor limitador de corriente”  mantiene la corriente en niveles seguros. Esto ayuda a proteger al LED u a la placa chipKit de daños).

BOTÓN Y RESISTORES DE PULL-DOWN

Antes de conectar el botón, es apropiado comprender un poco sobre la teoría del circuito, de este modo entenderemos como un botón es usado para producir una señal que pueda ser leída por un pin digital I/O del chipKit. Obteniendo una señal en donde la tensión apropiada corresponde a los estados del botón. Necesitaremos usar también un resistor pull-up o pull-down.  Si a usted no le es familiar el uso de resistores de pull-up o pull-down con un botón, favor leer la información disponible en los libros correspondientes.

PASO 2: CONFIGURACIÓN DEL BOTÓN

Con lo leído anteriormente, ahora estamos listos para la construcción de esta parte del circuito.

  1. Conectando el pin de 3.3V del chipKit al bus situado sobre del bus de tierra, el cual fue realizado en el paso 1. Con el fin de simplificar el circuito, no se muestra el LED en la Figura 3.
Figura 3. Configuración del botón

Figura 3. Configuración del botón

  1. Ubique el botón en la protoboard como se muestra en la Figura 3. Etiquetaremos al botón como botón A. Note la orientación del botón: un parte de las patas están ubicadas a un lado de la “franja” y las otras patas en el otro lado. La mayoría de las protoboards tienen una franja que separa las columnas de la sección principal (ver Figura 3). Incluso si su protoboard no posee la franja, El circuito seguiría siendo funcional, siempre y cuando respete la orientación del botón.
  2. Usando un cable como puente, conecte el lado derecho del botón al bus de 3.3V.
  3. Usando un cable diferente, conecte el pin digital 7 del chipKit al lado izquierdo del botón A.
  4. Conecte un extremo de resistor (10kΩ) al lado izquierdo del botón. (este resistor actúa como resistor de pull-down en el circuito).
  5. Conecte el otro extremo  del resistor a la tierra del bus (puede usar un cable para conectar el resistor al bus, como se muestra en la Figura 3, o conectar directamente el extremo del resistor al bus).
  6. Cuando el botón es presionado, se suministran 3.3V al pin I/O unido. El Max232 y Uno32 de la placa chipKit están designados para reconocer un rango de tensión- desde un mínimo de 2.4V a un máximo de 5.5V- como una entrada HIGH para los pines digitales I/O. Es decir, cuando la función “digitalRead()” del software es llamada, este entrega un HIGH si la tensión del pin es reconocida dentro de ese rango. La función “digitalRead()” será analizada después en este proyecto.

Usted puede preguntarse porque usaremos una resistencia relativamente pequeña (220Ω) para el resistor limitador de corriente en serie con el LED, y una resistencia relativamente grande (10kΩ) para el resistor de pull-down. (Note que la “k” es una abreviación de kilo, el cual significa miles, así que 10kΩ es una forma de escribir 10,000Ω). El tamaño del resistor limitador de corriente fue discrito en el proyecto “parpadeo de un LED externo”. Este resistor necesita ser lo suficientemente grande para asegurar que una cantidad de corriente peligrosa no circule por el LED, pero también lo suficientemente pequeña para que el LED tenga la tensión suficiente, pudiendo así iluminarse. Por otra parte, el resistor necesita en primer lugar proporcionar un camino a tierra, mientras asegura al circuito de una cantidad excesiva de corriente. Podríamos, de hecho, usar resistencias grandes para estos resistores de pull-down, sin embargo, por razones que no explicaremos aquí, los resistores de mucho valor, puede que causen problemas en la lectura de tensión.

CIRCUITO COMPLETO

En este punto, deberíamos tener el botón y el LED en la protroboard como se muestra en la Figura 4 y la representación esquemática se muestra en la Figura  5. El próximo paso es escribir el programa que controla el circuito. Debido a que este programa utiliza la sentencia “if” y operadores de comparación, tendríamos que introducirlos en esas estructuras de programación, el cual se realizará después de explicar la función “digitalRead()”.

Figura 4. Circuito completo

Figura 4. Circuito completo

Figura 5. Representación esquemática del circuito

Figura 5. Representación esquemática del circuito

FUNCIÓN “digitalRead()”

El programa para este proyecto usa una sentencia “if” y la función “digitalRead()”. La función “digitalRead()” toma un solo parámetro del pin leído. La función lee el estado eléctrico del pin, y retorna un HIGH o LOW. En el proyecto “Parpadeo de un LED externo” usamos la función “pinMode()” especificando que pin en particular va a ser usado como salida. Ahora nosotros queremos utilizar el pin como entrada. Asumiendo que el pin 7 será usado como entrada, utilizaremos la siguiente sentencia:

pinMode(7 ,INPUT);

Esta sentencia se ocupa típicamente dentro de la función “setup()”. Ahora, supongamos que queramos almacenar el estado actual en la variable entera “val”. Utilizaremos la siguiente sentencia:

int val;

val = digitalRead(7);

Si en el pin 7 hay una tensión alta cuando la función sea llamada, “val” se podrá en HIGH.  De otro modo, “val” se pondrá en LOW. También podemos configurar el tipo de la variable “val” cuando declaremos la función de lectura. Observe la siguiente sentencia:

int val = digitalRead(7);

SENTENCIA “IF” Y OPERADORES DE COMPARACIÓN

Para tomar una decisión basada en el valor de leído desde una señal de entrada, necesitaremos una estructura de control en nuestro programa, para realizar diversas cosas en base al resultado de la medición. La estructura de control que usaremos aquí es la sentencia “if”. Adicionalmente, se escribirá una expresión de comparación (u operador de comparación) en el interior de la sentencia “if”. Esta comparación sirve como una prueba para decidir lo que se realizará posteriormente. Si usted no está  familiarizado con la sentencia “if” y los operadores de comparación, favor leer la información disponible en el texto correspondiente.)

PASO 3: ESCRIBIR EL PROGRAMA

Con tal que usted comprenda el código mostrado anteriormente, necesitaremos agregar una pequeña iniciación para obtención el programa deseado. A continuación está el programa completo del proyecto. Mantenga en mente esos comentarios (mostrado en verde), los cuales son solamente de información, no afectando el comportamiento del programa. Siendo así, usted no necesita escribir los comentarios mostrado aquí. Aunque comentar su código es de ¡gran ayuda!

7

Una vez el programa sea ingresado en la placa chipKit, el circuito tendría que funcionar por completo. Asumiendo que hizo el trabajo apropiadamente, presione el botón A para encender el LED A.