sexta-feira, 30 de dezembro de 2016

Botão como entrada digital

Objetivo: controlar o estado de um led (on/off), pela ação de um botão (pressionado/solto)

Carregue o exemplo do botão



A explicação do hardware a ser montado temos no site do arduino Bottun - Botão

A ideia de funcionamento do sketch está no fluxograma abaixo:




Entendendo o sketch



const int

const int buttonPin = 2;
const int ledPin =  13;

Cria variáveis do tipo int constantes (que não mudam durante a execução) para indicar as portas (pinos) utilizadas para ligar o botão (buttonPin) e led (ledPin)

int buttonState = 0;
Cria uma variável para indicar o estado do botão e inicializa ela com o valor zero (Falso)
Note que este tipo é diferente do anterior (const int) pois permite sua modificação durante a execução


void setup()

A função setup () é chamada quando um iniciamos um skecth.
Nela podemos:

  • Inicializar variáveis, 
  • Modos de pino, 
  • Inicializar bibliotecas

A função de setup() será executada apenas uma vez, após cada energização ou reset da placa Arduino.


pinMode()

pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);

Configura o pino especificado se comportar tanto como uma entrada ou uma saída. Veja a descrição dos pinos digitais para obter detalhes sobre a funcionalidade dos pinos.


loop()

Após a configuração de parâmetros iniciais - setup() - a função loop mantem o programa em funcionamento repetindo a sequência de comandos.


digitalRead()

buttonState = digitalRead(buttonPin);

Lê o valor digital especificado em um pino, devolvendo o nível HIGH ou LOW.
No nosso exemplo a variável buttonSate receberá o nível do pino especificado para o botão



if / else

if (buttonState == HIGH)

Avalia condição estabelecida no comando if entre os parenteses. 
No nosso exemplo pergunta se o nível lógico do botão é alto
Se a condição for verdadeira (TRUE ou "1") executa a instrução ou conjunto de instruções entre as chaves após a condição
Se a condição for falsa (FALSE ou "0") executa a instrução ou conjunto de instruções entre as chaves após o else. O else não é obrigatório, podendo existir apenas a instrução para a situação de verdadeiro.


digitalWrite()

digitalWrite(ledPin, HIGH);
digitalWrite(ledPin, LOW);

Escreve HIGH (nível alto, "1") ou LOW (nível baixo, "0") no pino especificado

  



Montagem do sketch


Crie novos sketchs para cada atividade usando como base o exemplo do botão


  1. Modifique a ação do botão em relação ao estado do led.
  2. Modifique os pinos do botão e do led.
  3. Modifique o botão para usar o resistor de pullup.
  4. Coloque 2 entradas e duas saídas de forma que cada botão controle uma saída.
  5. Coloque 2 entradas de forma que elas controle 3 saídas com a seguinte lógica:
    • Saída 1: função AND entre as duas entradas
    • Saída 2: função NOR entre as duas entradas
    • Saída 3: função OR entre as duas entradas



  



Nenhum comentário:

Postar um comentário