Arduino – 8. Push Buttons, encender y apagar un LED

Usualmente existen estos tipos de Push Button de dos y cuatro patas, en la imagen puedes ver cuales están conectados entre si por defecto y cuales se activan cuando están presionado el botón.

Hay dos modos en los cuales podemos configurarlos, Pull Up que por defecto esta en HIGH y al ser presionado en LOW y Pull Down por defecto esta en LOW y cuando se presiona esta en HIGH, tal como lo muestra la imagen podemos lograrlo si cambiamos la posición de la resistencia (usualmente se usa una de 10KΩ) si esta conectada al Voltaje (5V) o a Tierra (GND).

Requerimos

  • Tarjeta UNO R3
  • Protoboard
  • Dos pulsadores / Push Buttons
  • Dos resistencia de 10 KΩ Ohms
  • Cables macho para protoboard o dupont

Sigue las conexiones de los cables, el de la izquierda que va conectado al PIN 4 es Pull Up y el de la derecha conectado al PIN 2 esta en modo Pull Down.

// Variable constante tipo byte para el pin 4 Pull Up
const byte pinPullUp = 4;
// Variable constante tipo byte para el pin 2 Pull Down
const byte pinPullDown = 2;

void setup() {
  // Inicializamos el puerto serie a 9600 baudios
  // para mostrar los mensajes por el puerto serie
  Serial.begin(9600);
  // Inicializamos los pines 4 y 2 como entradas
  pinMode(pinPullUp, INPUT);
  pinMode(pinPullDown, INPUT);
}

void loop() {
  // Si es presionado el Push Button Pull Up
  // Pull Up sin presionar HIGH / presionado LOW
  if (digitalRead(pinPullUp) == LOW) {
      Serial.println("Pull Up Presionado LOW");
  }
  
  // Si es presionado el Push Button Pull Down
  // Pull Down sin presionar LOW / presionado HIGH
  if (digitalRead(pinPullDown) == HIGH) {
      Serial.println("Pull Down Presionado HIGH");
  }
  // Espera 100 milisegundos antes de repetir el loop
  delay(100);
}

Presiona el botón de Iniciar simulación, luego clic a </ Codigo y por ultimo a Monitor en serie.

Ver el ejercicio en una nueva ventana

Encendiendo un LED con Push Button en modo Pull Up

// Declaramos dos variables de tipo byte constante
// Pin 12 para el LED
const byte pinLed = 12;
// Pin 2 para El Push Button
const byte pinPushButton = 2; 

void setup()
{
  // Configuramos el Pin del LED de salida
  pinMode(pinLed, OUTPUT); 
  // Configuramos el pin del Push Button de entrada
  pinMode(pinPushButton, INPUT); 

}

void loop()
{
  // Si el Push Button está presionado
  if (digitalRead(pinPushButton) == LOW){
    // Encendemos el LED
    digitalWrite(pinLed, HIGH);
  // Si no es presionado
  }else if(digitalRead(pinPushButton) == HIGH){
    // Apagamos el LED
    digitalWrite(pinLed, LOW); 
  }
  
}

Ver el ejercicio en una nueva ventana

Push Button en modo Pull Up usando la resistencia interna de Arduino

Arduino cuenta con resistencias internas las cuales podemos utilizar en este ejemplo declarando el pinMode en INPUT_PULLUP pinMode(pinModoPullUp, INPUT_PULLUP);

/*
 Declaramos dos variables de tipo constante,
 es decir que no va a cambiar su valor
 para los Pines del Arduino
*/
const byte pinLed = 12; // Pin 12 para el LED
const byte pinModoPullUp = 2; // Pin 2 para Push Button

void setup(){

  pinMode(pinLed, OUTPUT); // Pin 12 del LED de tipo salida
  pinMode(pinModoPullUp, INPUT_PULLUP); // Pin 2 de tipo entrada PULLUP
  // El INPUT_PULLUP utiliza las resistencias internas de la tarjeta Arduino
  // para hacer funcionar el Push Button
}

void loop(){
  // Si es presionado
  if (digitalRead(pinModoPullUp) ==LOW){
    // Encendemos el LED
    digitalWrite(pinLed, HIGH);
  // De lo contrario
  } else {
    // Apagamos el LED
    digitalWrite(pinLed, LOW); 
  }
}

Ver el ejercicio en una nueva ventana

Apagar y encender un LED, con Push Button Pull Up encender y Pull Down apagar el LED

// Variable constante tipo byte para el pin 4 Pull Up
const byte pinPullUp = 4;
// Variable constante tipo byte para el pin 2 Pull Down
const byte pinPullDown = 2;
// Variable constante tipo byte para el LED pin 12
const byte pinLed = 12;

void setup() {
  // Inicializamos el puerto serie a 9600 baudios
  // para mostrar los mensajes por el puerto serie
  Serial.begin(9600);
  // Inicializamos los pines 4 y 2 como entradas
  pinMode(pinPullUp, INPUT);
  pinMode(pinPullDown, INPUT);
  // Inicializamos el pin 12 como salida
  pinMode(pinLed, OUTPUT);
  
}

void loop() {
  // Si es presionado el Push Button Pull Up
  // Pull Up sin presionar HIGH / presionado LOW
  if (digitalRead(pinPullUp) == LOW) {
    // Encendemos el LED
    digitalWrite(pinLed, HIGH);
  }
  
  // Si es presionado el Push Button Pull Down
  // Pull Down sin presionar LOW / presionado HIGH
  if (digitalRead(pinPullDown) == HIGH) {
    // Apagamos el LED
    digitalWrite(pinLed, LOW);
  }
}

Ver el ejercicio en una nueva ventana

<< Anterior

View more articles
  • Como configurar un entorno de desarrollo para el lenguaje C / C++

    Para crear un entorno de trabajo para poder jugar con el lenguaje C recomiendo 1. Instalar compilador C / C++ Para Windows Descarga e instala MinGW Ejecuta MinGW Installer Manager selecciona los paquetes básicos e instálalos (durara algunos minutos ya que los descarga) Agregar MinGW al PATH Es importante agregarlo a las variables del sistema…

  • Python 101: Instalar entorno de trabajo IDE Visual Studio Code

    Existe un sin fin de editores de código IDE (Integrated development environment / Entorno de desarrollo integrado) especiales para Python como: Pero la que recomiendo es Visual Studio Code (descarga e instala el adecuado para tu Sistema Operativo Windows, Linux o Mac) E instala estas extensiones: En VSC le damos clic al Icono de Extensiones…

  • Instalación de Linux en Windows 11 24H2 con WSL

    Podemos tener las ventajas y todo lo que el entorno Linux nos ofrece en Windows instalando WSL Windows Subsystem for Linux. Recuerda activar la virtualización en el BIOS de tu equipo., te comparto cual es la tecla que tienes que presionar en cuanto arranca tu equipo, busca la opción virtualization y le das Enable /…