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)
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?
- Visualmente (Linha no verso): Os pinos conectados na mesma linha metálica no fundo do componente já estão em curto-circuito.
- 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
Postar um comentário