04 - Push Button Switch
04 - Push Button Switch
Vamos então entender mais sobre esse recurso simples e barato, que é extremamente
versátil.
Então quando queremos usar um botão com nossa placa, basta conectá-lo
corretamente a um pino que esteja configurado como entrada e poderemos detectar se o botão
está pressionado ou solto.
Pinos configurados como entrada (INPUT) com pinMode() são ditos estarem em um
estado de alta-impedância. Se você configurar um pino como INPUT, e ler o estado de um botão
conectado a 5V, por exemplo, quando o botão estiver em
estado aberto, a entrada estará "flutuando", resultando em
leituras imprevisíveis. Isso acontece porque quando o botão
está aberto, o pino não está conectado a nenhuma tensão. Para
assegurar uma leitura correta quando o botão está aberto, um
resistor de pull-up ou pull-down deve ser usado.
Além disso temos mais uma opção. O microcontrolador ATmega na maioria das placas
Arduino possui resistores pull-up internos (resistores conectados a alimentação internamente)
que você pode acessar. Se você preferir usar estes em vez de resistores de pull-up externos,
você pode usar o argumento INPUT_PULLUP na função pinMode().
Cuidado! Pinos configurados como entradas com ambos INPUT ou INPUT_PULLUP
podem ser danificados ou destruídos se são conectados a tensões abaixo de zero (tensões
negativas) ou acima da tensão de alimentação (5V ou 3V).
Para retirar essas flutuações que prejudicam a interpretação dos sinais, nós utilizamos
normalmente um resistor de pull-down. Ele atua garantindo que o sinal de GND chegue até o
pino enquanto o botão não for pressionado, e protege o circuito contra um curto circuito
quando você aperta o botão. Veja um exemplo de ligação na imagem abaixo.
4.1.3 Pushbutton
O botão é um componente que conecta dois
pontos do circuito quando está pressionado. Um
botão, ou pulsador, é utilizado para ativar alguma
função. Os botões são em geral ativados ao serem
pulsados. Um botão em um dispositivo eletrônico
funciona geralmente como um interruptor elétrico. No
seu interior há dois contatos, e se é um dispositivo
normalmente fechado ou normalmente aberto, ao
pulsar o botão, se ativará a função inversa à que se
está realizando no momento.
4.2 Lendo um botão
4.2.1 Lista de materiais
Você precisará dos seguintes materiais:
É para isso que entra a estrutura condicional if...else. Ela realiza um teste lógico para
decidir entre dois trechos de código. Ela executa o primeiro se a condição for verdadeira e o
segundo se a condição for falsa. Observe o fluxograma que explica graficamente o que acontece
durante a execução do código:
• && (“E” lógico) Verdadeiro apenas se os dois operandos forem verdadeiros, ou seja, a
primeira condição e a segunda forem verdadeiras;
• || (“OU” lógico) Verdadeiro se algum dos operandos for verdadeiro, ou seja, se a
primeira ou a segunda condição for verdadeira;
• ! (negação) Verdadeiro apenas se o operando for falso.
4.4.2 Exercício 2
Faça mais uma modificação no código fonte do exemplo 4.3 para que você possa
acender o LED do pino 13 pressionando ou o botão 1 ou o botão 2. Ao deixar de pressionar, o
LED se apaga.