SIK Experiment Guide for the Arduino 101/Genuino 101 Board (Spanish)

This Tutorial is Retired!

This tutorial covers concepts or technologies that are no longer current. It's still here for you to read and enjoy, but may not be as useful as our newest tutorials.

Pages
Contributors: D___Run___
Favorited Favorite 0

Experimento 5: Leer un pulsador

Introducción

Hasta ahora, nos hemos centrado principalmente en las salidas. Ahora vamos a ver las entradas. En el experimento 2, hemos utilizado una entrada analógica para leer el potenciómetro. En este experimento, vamos a leer una de las entradas más comunes y sencillas, un pulsador, mediante una entrada digital. La usaremos para pasar por los diferentes colores del RGB.

Elementos necesarios

Necesitará los siguientes elementos:

  • 1x placa de pruebas
  • 1x placa Arduino 101 o Genuino 101
  • 1x LED RGB
  • 3x resistencia de 100 Ω
  • 8x cables puente
  • 1x pulsador
  • 1x resistencias 10K

¿No tiene el SIK?

Si está realizando este experimento y no dispone del SIK, le sugerimos que use estos elementos:

Breadboard - Self-Adhesive (White)

Breadboard - Self-Adhesive (White)

PRT-12002
$5.50
48
Jumper Wires - Connected 6" (M/M, 20 pack)

Jumper Wires - Connected 6" (M/M, 20 pack)

PRT-12795
$2.10
2
LED - RGB Clear Common Cathode

LED - RGB Clear Common Cathode

COM-00105
$2.25
3
Momentary Pushbutton Switch - 12mm Square

Momentary Pushbutton Switch - 12mm Square

COM-09190
$0.55
4
Resistor 10K Ohm 1/6th Watt PTH - 20 pack

Resistor 10K Ohm 1/6th Watt PTH - 20 pack

COM-11508
$0.95 $0.50

Resistor 100 Ohm 1/4th Watt PTH - 20 pack

COM-13761
Retired

También necesitará una placa Arduino 101 O Genuino 101.

Arduino 101

DEV-13787
9 Retired

Genuino 101

DEV-13984
Retired

Lectura sugerida

Antes de continuar con este tutorial, le recomendamos que se familiarice con los conceptos en los siguientes tutoriales:

Presentación del pulsador

texto alternativo

Un pulsador momentáneo cierra o completa el circuito solo mientras está pulsado. El pulsador tiene cuatro pines, organizados en dos conjuntos de dos pines. Cuando presiona el pulsador y se escucha un "clic", el pulsador conecta los dos conjuntos de pines y permite que la corriente fluya a través del circuito.

¿Cómo puede saber qué pines están emparejados? Los pulsadores incluidos en este kit solo encajan en la muesca de la placa de pruebas en una dirección. Tras encajar el pulsador firmemente en la placa de pruebas (a través de la muesca), los pines se emparejan horizontalmente. Por un lado, se conectan los pines hacia la parte superior de la placa de pruebas y, por otro lado, se conectan los pines hacia el pulsador de la placa de pruebas.

Nota: no todos los pulsadores comparten este formato de pines. Consulte la hoja de datos de su pulsador específico para determinar qué pines están emparejados.

Conexión del hardware

¿Está preparado para comenzar a conectar todo? Consulte el diagrama de cableado y la tabla de conexión siguientes para ver cómo está conectado todo.

Preste especial atención a las marcas de los componentes que indican cómo colocarlo en la placa de pruebas. Los componentes polarizados solo se pueden conectar a un circuito en una sola dirección.

Diagrama de cableado del experimento

texto alternativo

¿Tiene dificultades para ver el circuito? Haga clic en el diagrama de cableado para verlo más de cerca.

Entrada digital

Anteriormente hemos utilizado pines analógicos para la entrada; ahora usaremos pines digitales. Ya que los pines digitales solo conocen las señales ALTO y BAJO, son perfectos para conectar pulsadores e interruptores que solo tengan estados de "encendido" y "apagado".

Conectaremos un lado del pulsador a tierra y el otro lado a un pin digital. Cuando presione el pulsador, el pin se conectará a tierra y, por lo tanto, se leerá "BAJO" en la placa Arduino.

Pero, ¿qué sucede cuando no se presiona el pulsador? En este estado, el pin no está conectado a nada, a esto lo denominamos "estado flotante". ¿Cuál será el estado que se leerá en el pin? ¿ALTO o BAJO? Es difícil de decir, porque no hay ninguna conexión sólida ni a la red de 3,3 V ni a tierra. El pin puede tener cualquier de estos dos valores.

Para solucionar este problema, vamos a conectar una pequeña resistencia (10 K o 10.000 ohmios) entre el pin de señal y la línea de 3,3 V. Esta resistencia "pullup" garantizará que cuando NO esté presionando el pulsador, el pin tendrá una débil conexión a la línea de 3,3 voltios y, por tanto, se leerá ALTO.

Avanzado: Cuando se familiarice con las resistencias pullup y sepa cuándo son necesarias, puede activar las resistencias pullup internas en el procesador ATmega en Arduino. Consulte http://arduino.cc/en/Tutorial/DigitalPins para obtener más información.

Abrir el boceto

Abra el software IDE de Arduino en su ordenador. La codificación en el lenguaje de Arduino controlará el circuito. Abra el código del circuito 5; para ello, acceda a "101 SIK Guide Code" (Guía de códigos de SIK 101) que ha descargado y guardado en la carpeta "Examples" (Ejemplos) anteriormente.

Para abrir el código vaya a: File > Examples > 101 SIK Guide Code > Circuit_05 (Archivo > Ejemplos > Guía de códigos de SIK 101 > Circuito_05)

También puede copiar y pegar el siguiente código en el IDE de Arduino. Cárguelo y vea qué es lo que ocurre.

language:cpp
/*
SparkFun Inventor's Kit
Example sketch 05

PUSH BUTTONS

  Use pushbuttons for digital input

This sketch was written by SparkFun Electronics,
with lots of help from the Arduino community.
This code is completely free for any use.
Visit http://learn.sparkfun.com/products/2 for SIK information.
Visit http://www.arduino.cc to learn about the Arduino.

*/

// First we'll set up constants for the pin numbers.
// This will make it easier to follow the code below.

 // pushbutton pin
 const int buttonPin = 3;

 //RGB LED pins
 const int redPin = 11;    
 const int greenPin = 10;
 const int bluePin = 9;

//create a variable to store a counter and set it to 0
int counter = 0;
void setup()
{
  // Set up the pushbutton pins to be an input:
  pinMode(buttonPin, INPUT);

  // Set up the RGB pins to be an outputs:
  pinMode(redPin, OUTPUT);  
  pinMode(greenPin,OUTPUT);
  pinMode(bluePin,OUTPUT);
}

void loop()
{
 // local variable to hold the pushbutton states
  int buttonState;  

  //read the digital state of buttonPin with digitalRead() function and store the           //value in buttonState variable
  buttonState = digitalRead(buttonPin);

  //if the button is pressed increment counter and wait a tiny bit to give us some          //time to release the button
  if (buttonState == LOW) // light the LED
  {
    counter++;
    delay(150);
  }

  //use the if satement to check the value of counter. If counter is equal to 0 all         //pins are off
  if(counter == 0)
  {
   digitalWrite(redPin,LOW);
   digitalWrite(greenPin,LOW);
   digitalWrite(bluePin,LOW);
  }

  //else if counter is equal to 1, redPin is HIGH
  else if(counter == 1)
  {
   digitalWrite(redPin,HIGH);
   digitalWrite(greenPin,LOW);
   digitalWrite(bluePin,LOW);
  }

  //else if counter is equal to 2 greenPin is HIGH
  else if(counter ==2)
  {
   digitalWrite(redPin,LOW);
   digitalWrite(greenPin,HIGH);
   digitalWrite(bluePin,LOW);
  }

  //else if counter is equal to 3 bluePin is HIGH
  else if(counter ==3)
  {
   digitalWrite(redPin,LOW);
   digitalWrite(greenPin,LOW);
   digitalWrite(bluePin,HIGH);
  }

  //else reset the counter to 0 (which turns all pins off)
  else
  {
   counter =0;
  }
}

Código a tener en cuenta

pinMode(buttonPin, INPUT);

Los pines digitales se pueden utilizar tanto como entradas y salidas. Antes de hacerlo, necesita indicar a la placa Arduino la dirección que se seguirá.

buttonState = digitalRead(buttonPin);

Para leer una entrada digital, utilice la función digitalRead(). Devolverá el valor ALTO si hay una alimentación de 3,3 V en el pin o BAJO si hay una alimentación de 0 V en el pin.

if (button1State == LOW)

Ya que hemos conectado el pulsador a tierra, se leerá BAJO cuando se presione. Aquí estamos usando el operador de "equivalencia" ("==") para ver si el pulsador está presionado.

Lo que debería ver

Debe ver el LED encendido si presiona cualquier pulsador y apagado si presiona ambos pulsadores. (Vea el código para averiguar el motivo). Si no funciona, asegúrese de que ha montado el circuito correctamente y ha verificado y cargado código en la placa; o consulte la sección Solución de problemas.

texto alternativo

Solución de problemas

No se enciende ninguna luz

El pulsador es cuadrado y, debido a esto, es fácil colocarlo de la forma incorrecta. Gire el pulsador 90 grados y observe si funciona.

Demasiado básico

No se preocupe; estos circuitos se han simplificado al máximo para que sea sencillo jugar con los componentes, pero en cuanto los combine todos, el límite es su imaginación.