Robô faz pesquisa no blog

🔍 Buscar no Blog ×
Olá! Digite o assunto ou a palavra-chave que você procura, e eu listarei as postagens do blog para você.

Comutação e Push-buttons: Como Identificar Pinos e Ler Botões no Arduino

Na eletrônica e nos sistemas microcontrolados, entender a interface de entrada de sinais é fundamental. Um dos conceitos mais básicos e essenciais é a comutação e a correta utilização de botões (push-buttons) em portas digitais do Arduino.


1. O que é Comutação?

A comutação é a ação de mudar o estado de um circuito elétrico, conectando ou desconectando dois ou mais pontos entre si. Nos dispositivos mecânicos, essa troca é feita por meio do acionamento de contatos físicos dentro dos botões e chaves.

2. Tipos de Contato e Modos de Operação

Os botões podem ser classificados quanto à sua retenção e quanto ao seu estado inicial de repouso:

A. Retenção Mecânica

  • Contato Momentâneo (Push-button): Funciona apenas enquanto estiver sendo pressionado (ex.: campainhas, teclados, calculadoras). Ao soltar, ele retorna ao estado inicial.
  • Contato Não-Momentâneo (Com Retenção): Funciona com pulsos intercalados (um toque liga, outro toque desliga), como os botões de energia de TVs e aparelhos de som antigos.

B. Estado Lógico Inicial

  • Normalmente Aberto (NA / NO): Na posição de repouso (sem pressionar), não há passagem de corrente. O circuito só fecha quando você pressiona o botão.
  • Normalmente Fechado (NF / NC): Na posição de repouso, o botão conduz normalmente. Quando pressionado, ele interrompe a passagem de corrente (ex.: fechaduras elétricas de segurança e eletroímãs).

3. Entendendo a Pinagem do Push-Button (2 vs 4 Pernas)

Atenção na Montagem: O push-button de 4 pernas possui pares de pinos conectados internamente mesmo quando o botão não está pressionado.

Em um botão tátil padrão de 4 pinos (terminais A, B, C e D):

  • Pinos A e B: Conectados internamente entre si (Curto-circuito / NF em repouso).
  • Pinos C e D: Conectados internamente entre si (Curto-circuito / NF em repouso).
  • Par (A-C) ou (B-D): Aberto em repouso (NA). A conexão se fecha apenas quando o botão é pressionado.

Como identificar os pinos na prática?

  1. Visualmente (Linha no verso): Os pinos conectados na mesma linha metálica no fundo do componente já estão em curto-circuito.
  2. Com o Multímetro: Na escala de continuidade ou resistência ($\Omega$), meça os pinos com o botão solto. Se a resistência der $0\ \Omega$, eles já estão conectados internamente. O par que indicar resistência infinita ($\text{M}\Omega$) só fechará o circuito ($0\ \Omega$) quando o botão for acionado.

4. Lendo o Estado do Botão no Arduino (Circuito Pull-down)

Para ler um botão em uma porta digital (como o pino 2) sem causar o problema de nível lógico flutuante, utilizamos um resistor de 10 k$\Omega$ em Pull-down ligado ao GND. Dessa forma:

  • Botão solto $\rightarrow$ Entrada no pino 2 é $0\text{V}$ (LOW).
  • Botão pressionado $\rightarrow$ Entrada no pino 2 é $5\text{V}$ (HIGH).

Código 1: Leitura com Estrutura Condicional (if/else)

void setup() { pinMode(2, INPUT); // Configura o pino 2 como entrada (Botão) pinMode(13, OUTPUT); // Configura o pino 13 como saída (LED) } void loop() { if (digitalRead(2)) { digitalWrite(13, HIGH); // Acende o LED ao pressionar } else { digitalWrite(13, LOW); // Apaga o LED em repouso } }

Código 2: Simplificado (Atribuição Direta)

Podemos simplificar o código passando o retorno do digitalRead() diretamente para a escrita digital do pino do LED:

void setup() { pinMode(2, INPUT); pinMode(13, OUTPUT); } void loop() { // Transfere o estado lógico lido na porta 2 diretamente para a porta 13 digitalWrite(13, digitalRead(2)); }

Resumo

Dominar os modos de contato dos botões (NA e NF) e a identificação de seus terminais evita curtos-circuitos indesejados no protoboard. Escrever um código limpo no Arduino usando digitalRead() é o primeiro passo para controlar atuadores e integrar projetos mais avançados.

Comentários