- 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.