Menu
CoddyTech

La resistencia pull-up interna

Parte de la sección Entradas del Journey de Arduino de Coddy. Lección 3 de 22.

Has usado INPUT_PULLUP desde Lee un botón. Activa una resistencia dentro de la placa, de 20k a 50k ohm, entre el pin y 5V: el pull-down de la lección anterior, pero al revés y sin ningún componente adicional. El botón solo conecta el pin a GND.

El inconveniente es que la lógica está invertida: sin pulsar se lee HIGH, al pulsar se lee LOW, y es fácil equivocarse con == LOW por todo el sketch. Una comparación como digitalRead(2) == LOW es en sí misma true o false, y un bool es una variable que contiene true o false. Guárdala con un nombre que indique lo que significa:

bool pressed = digitalRead(2) == LOW;

if (pressed) {
  // el botón está pulsado
}

A partir de ahí, el código se lee en el sentido correcto. Al imprimir un bool se muestra 1 para true y 0 para false.

challenge icon

Desafío

Fácil

El botón conecta el pin 2 a GND y el LED está en el pin 13:

  • configura el pin 2 como INPUT_PULLUP
  • guarda digitalRead(buttonPin) == LOW en un bool llamado pressed
  • imprime pressed, enciende el LED mientras sea true y después espera 100 ms

Check espera 1 mientras se mantiene presionado el botón y 0 cuando está suelto. Pulsa Run, mantén presionado el botón y después pulsa Check.

Pruébalo tú mismo

const int buttonPin = 2;
const int ledPin = 13;

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
  // activa la resistencia pull-up del pin del botón
}

void loop() {
  // bool pressed = ...
  // imprime su valor, enciende el LED mientras sea true y espera 100 ms
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Entradas

Practica por tu cuenta: Playground de Arduino