Por que usar resistores com botões de pressão e interruptores no Arduino

Por que usar resistores com botões de pressão e interruptores no Arduino

Este tutorial explica por que usar um resistor com botões de pressão e interruptores conectados a um Arduino é crucial para um funcionamento confiável. Compreender esse conceito é fundamental para qualquer projeto com Arduino que envolva entrada do usuário. Esse conhecimento evita comportamentos inesperados e garante que seus projetos funcionem corretamente. Aqui estão algumas ideias de projetos em que esse conhecimento é essencial:

  • Interruptor simples liga/desliga para um LED
  • Controlador de jogo interativo
  • Controle remoto para eletrodomésticos
  • Sistema de segurança com ativação por botão

Vamos explorar as razões por trás do uso de resistores nesses circuitos.

Arduino wiring for Push button wihthout resistor

Hardware/Componentes

Os componentes principais necessários para este projeto são mínimos: uma placa Arduino, um botão de pressão e um resistor (maior que 300 ohms). O valor do resistor não é crítico; valores como 1kΩ, 10kΩ ou mesmo 100kΩ geralmente funcionarão bem (no vídeo em 00:41).

Guia de fiação

Existem duas configurações principais de fiação (no vídeo em 00:30):

  1. Configuração 1:Conecte o botão pulsador entre o pino do Arduino e +5V. O outro lado do botão está ligado ao terra por meio de um resistor. Quando o botão é pressionado, o pino lê HIGH; quando é liberado, lê LOW.
  2. Configuração 2:Conecte o botão entre o pino do Arduino e o terra. O outro lado do botão está conectado a +5V por meio de um resistor. Quando o botão é pressionado, o pino lê LOW; quando liberado, lê HIGH.

Arduino wriring for push button and LED
Arduino wriring for push button and LED

Um diagrama de fiação visual seria útil aqui.

Explicação do código

O código do Arduino utiliza opinMode()função para configurar o pino como entrada. A parte crucial é o uso deINPUT_PULLUP(no vídeo em 04:06, 04:23). Este resistor de pull-up interno elimina a necessidade de um resistor externo em certas configurações, simplificando a fiação. OdigitalRead()função lê o estado do pino, e um simplesif-elseA instrução determina se o botão está pressionado (LOW) ou não (HIGH) (no vídeo em 08:34).


pinMode(2, INPUT_PULLUP); // Configures pin 2 as input with internal pull-up resistor
int pushButton = digitalRead(2); // Reads the state of pin 2
if (pushButton == LOW) {
  // Button is pressed
} else {
  // Button is not pressed
}

Projeto ao vivo/Demonstração

O vídeo demonstra ambas as configurações de fiação e seus respectivos comportamentos. Ele destaca os problemas que podem surgir quando o resistor é omitido, como leituras erráticas devido a ruído e acoplamento capacitivo (no vídeo em 06:18, 06:39, 07:21). A demonstração mostra claramente a operação estável e confiável alcançada com o resistor no lugar (no vídeo em 08:08).

Capítulos

  • [00:00] Introdução
  • [00:30] Configurações de fiação
  • [04:12] Explicação do código usando INPUT_PULLUP
  • [05:36] Remoção do resistor: Demonstração prática
  • [08:33] Explicação do Código

Imagens

Por que devemos usar um resistor com um botão pressionado no Arduino?
Por que devemos usar um resistor com um botão pressionado no Arduino?
Por que devemos usar um resistor com um botão de pressão com Arduino?
Por que devemos usar um resistor com um botão de pressão com Arduino?
2 pin tactile push button switch
2 pin tactile push button switch
Arduino wriring for push button and LED
Arduino wriring for push button and LED
Arduino wiring for Push button with resistor-2
Arduino wiring for Push button with resistor-2
Arduino wiring for Push button with resistor-1
Arduino wiring for Push button with resistor-1
Arduino wiring for Push button wihthout resistor
Arduino wiring for Push button wihthout resistor
132-Code example using a resistor
Idioma: C++
133-Code example using INPUT_PULLUP without a resistor
Idioma: C++
Copiado!

Coisas que você pode precisar

Recursos e referências

Ainda não há recursos.

Arquivos📁

Nenhum arquivo disponível.