Dispositivos e Sensores

Aprenda o conceito e o modo de funcionamento dos componentes que utiliza nos seus projetos.

Push-button

O push button (botão ou interruptor) liga dois pontos num circuito quando é pressionado.

Quando o botão está aberto (não pressionado) não há ligação entre as duas pernas do botão, então o pino é ligado ao terra (através do resistor pull-down) e lemos um LOW (valor zero). Quando o botão é fechado (pressionado), é feita uma ligação entre as suas duas pernas, ligando o pino a 5 volts, de modo que lemos um HIGH (valor um).

Este botão pode ser usado de duas formas num circuito:

  • Usando o resistor pull up interno da nossa placa de Arduino;

  • Usando um resistor de 10K no circuito.

 

No que concerne à programação ela é muito idêntica divergindo em apenas um ponto, a forma como definimos o pinMode do botão. Vejamos:

  • Começamos por definir uma constante para o pino do botão. Este passo é muito importante para não ser necessário escrever o número da porta toda a vez que quisermos usar este pino no nosso código. Isso facilitará a nossa vida, especialmente se houver a necessidade de ligar o botão a outro pino mais tarde. Desta forma, só teremos de modificar esta linha do código que está na parte superior do programa e, portanto, mais fácil de encontrar.

  • No void setup() inicializamos o Monitor de Série, para podermos monitorizar os dados que recebemos do botão.
    Para inicializar o botão utilizamos a função pinMode() com 2 argumentos: primeiro o pino do botão, aqui porta_bt que será substituído por “4”, e depois o modo que queremos para o pino. Como vamos ler os dados do botão e não escrever, escolhemos um modo de entrada (INPUT). Neste caso temos duas situações possíveis: INPUT ou INPUT_PULLUP. No primeiro caso, como não utilizamos nenhum resistor no circuito, usaremos INPUT_PULLUP para usar o resistor pull up interno da placa Arduino. Já no segundo caso utilizaremos apenas o INPUT.

  • Para ler o estado do botão, no void loop() vamos usar a função digitalRead(), com um argumento que é o pino usado para o botão - porta_bt, no nosso caso pino 4. O resultado obtido vai ser 1 - HIGH - ou  0 - LOW. Temos de ter em atenção o seguinte: se estivermos a utilizar a configuração INPUT_PULLUP o resultado será o seguinte: 1 - HIGH - quando o botão não estiver pressionado - ou  0 - LOW - quando o botão for pressionado. No entanto, se estivermos a utilizar a configuração INPUT o resultado será: 1 - HIGH - quando o botão for pressionado - ou  0 - LOW - quando o botão não estiver pressionado.