Como usar uma chave de botão com o Arduino

How to Use a Push Button Switch with the Arduino

Os interruptores de botão são comumente usados ​​em eletrônicos para controlar dispositivos ou acionar ações específicas. Com um Arduino, você pode ler facilmente o estado de um botão e usá -lo em seus projetos. Este tutorial o guiará através da configuração e usando uma chave de botão com o Arduino, juntamente com exemplos de como incorporá -lo ao seu código.


O que você precisará

  1. Board Arduino (por exemplo, Uno, Mega, Nano)
  2. Interruptor de botão
  3. Resistor de 10k-ohm (para configuração de puxar)
  4. Fios de pão e jumper
  5. Um computador com o Arduino IDE instalado

Etapa 1: Compreendendo interruptores de botão

Uma chave de botão é um dispositivo simples que conecta ou desconecta um circuito quando pressionado. Normalmente, possui quatro pinos, dois dos quais estão conectados internamente, formando um único interruptor.

Configurações comuns

  • Resistor de puxar: Garante que o pino de entrada lê baixo quando o botão não é pressionado.
  • Resistor de pull-up: Garante que o pino de entrada lê alto quando o botão não é pressionado (pode usar o resistor de pull-up interno do Arduino).

Etapa 2: Fiação do botão para Arduino

Configuração do resistor puxador

Pino do botão Conexão
Um lado Arduino Pin 2
Outro lado 5V
Resistor (10k) Arduino Pin 2 para GND

Etapa 3: lendo o estado do botão

Use o digitalRead() função para determinar se o botão é pressionado (alto) ou não (baixo).

Exemplo Código: LEIA BASIC BUTTON

#define buttonPin 2 // Button connected to pin 2

void setup() {
  pinMode(buttonPin, INPUT); // Set pin 2 as input
  Serial.begin(9600);
  Serial.println("Button Test");
}

void loop() {
  int buttonState = digitalRead(buttonPin); // Read the button state

  if (buttonState == HIGH) {
    Serial.println("Button Pressed");
  } else {
    Serial.println("Button Released");
  }

  delay(100); // Small delay for readability
}

Etapa 4: Usando o resistor de pull-up interno

O Arduino possui resistores de pull-up embutidos que podem simplificar a fiação, eliminando a necessidade de um resistor externo.

Fiação para pull-up interna

Pino do botão Conexão
Um lado Arduino Pin 2
Outro lado Gnd

Código de exemplo: usando pull-up interno

#define buttonPin 2 // Button connected to pin 2

void setup() {
  pinMode(buttonPin, INPUT_PULLUP); // Enable internal pull-up resistor
  Serial.begin(9600);
  Serial.println("Button Test with Pull-Up");
}

void loop() {
  int buttonState = digitalRead(buttonPin); // Read the button state

  if (buttonState == LOW) { // LOW means button is pressed
    Serial.println("Button Pressed");
  } else {
    Serial.println("Button Released");
  }

  delay(100); // Small delay for readability
}

Etapa 5: Debouncing o botão

Os botões mecânicos geralmente produzem ruído ou "salto" quando pressionados, causando várias leituras. O debouscing garante leituras estáveis.

Exemplo Código: Debouncing um botão

#define buttonPin 2 // Button connected to pin 2

unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 50; // 50ms debounce time
int lastButtonState = HIGH;
int buttonState;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  Serial.begin(9600);
}

void loop() {
  int reading = digitalRead(buttonPin);

  // If the button state has changed, reset the debounce timer
  if (reading != lastButtonState) {
    lastDebounceTime = millis();
  }

  // Check if the debounce time has passed
  if ((millis() - lastDebounceTime) > debounceDelay) {
    if (reading != buttonState) {
      buttonState = reading;

      if (buttonState == LOW) {
        Serial.println("Button Pressed");
      }
    }
  }

  lastButtonState = reading;
}

Etapa 6: controlando um LED com o botão

Você pode usar o botão para controlar um LED. Por exemplo, alterne o estado do LED com cada botão Pressione.

Código de exemplo: o botão alterna o LED

#define buttonPin 2 // Button connected to pin 2
#define ledPin 13   // LED connected to pin 13

bool ledState = false;
bool lastButtonState = HIGH;

void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, LOW);
}

void loop() {
  int buttonState = digitalRead(buttonPin);

  if (buttonState == LOW && lastButtonState == HIGH) {
    ledState = !ledState; // Toggle LED state
    digitalWrite(ledPin, ledState ? HIGH : LOW);
    delay(200); // Debounce delay
  }

  lastButtonState = buttonState;
}

Aplicações de botões de push

  1. Iniciar/parar interruptores
  2. Entrada do usuário para selecionar modos
  3. Botões de redefinição em circuitos
  4. Iluminação ou aparelhos de controle

Solução de problemas

  • Botão que não está respondendo: Verifique a fiação e verifique se o pinmode correto é usado.
  • Leituras instáveis: Adicione a lógica Debounce ou use um resistor de pull-up/pull-down.
  • LED não iluminação: Confirme a orientação do LED e use um resistor para limitar a corrente.

Conclusão

Você aprendeu a usar um botão de botão com o Arduino, incluindo a leitura de seu estado, debouscing e controle de dispositivos como LEDs. Os botões de pressão são um componente fundamental na eletrônica, e dominar seu uso será aberto

Deixe um comentário

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.