Os botões de push buttons possui 4 conexões.
As duas da direita são conectadas, o mesmo aplica-se às da esquerda.
Ao pressionar o botão, as conexões da direita e da esquerda se conectam.
Os microcontroladores trabalham com valores 0 e 1, ou 0v e 5v.
Ao conectarmos botões, é importante NÃO manter estados flutuantes, portanto sempre devemos estar conectados a 0v ou 5v.
Pull Up e Pull Down é uma técnica para atender a essa necessidade, fazendo o uso de um resistor conectado ao 5v (Pull Up) ou 0v/GND (Pull Down).
Pull Up é simples de implementar no Arduino porque ele possui um resistor Pull UP internamente que pode ser habilitado via código.
Outro aspecto importante ao trabalhar com botões é fazer o uso da técnica chamada de debouncing.
Debouncing é uma técnica utilizada para gerar um atraso assim que pressionamos o botão.
Isso é importante pois ao pressionarmos um botão, ele pode gerar múltiplos cliques.
No Arduino podemos fazer o debouncing usando a função delay.
Neste projeto você criará dois circuitos que fazem uso de resistores Pull Up e Pull Down.
Para a criação deste circuito serão necessários os seguintes componentes:
Para montar o circuito, visualize na imagem a seguir como conectar os componentes entre a placa Arduino e a breadboard.
Repare que neste circuito de Pull Up não usamos nenhum resistor na breadboard, e isso se deve ao fato de que a placa Arduino possui internamente conectado aos pinos de GPIO um resistor de 10k, portanto o Pull Up é feito de modo interno e não no nosso circuito.
A seguir temos o schematics do circuito, que detalha suas conexões e fornece detalhes mais específicos do que o circuito da imagem anterior.
Uma vez criado o circuito, use o código fonte a seguir no Arduino IDE para fazer o upload dele na placa Arduino e assim ver o resultado do circuito em funcionamento.
// define o pino onde será conectado o push button
#define BTN_PIN 2
void setup() {
pinMode(BTN_PIN, INPUT_PULLUP); // inicializa o pino do push button como pull up
pinMode(LED_BUILTIN, OUTPUT); // inicializa o led da placa Arduino como saída
}
void loop() {
int valorBtn = digitalRead(BTN_PIN); // faz a leitura do estado corrente do push button
if (valorBtn == HIGH) { // caso não pressionado
digitalWrite(LED_BUILTIN, LOW); // led apagado
} else { // caso push button pressionado
digitalWrite(LED_BUILTIN, HIGH); // acende o led
}
}
Para montar o circuito, visualize na imagem a seguir como conectar os componentes entre a placa Arduino e a breadboard.
Repare que neste circuito de Pull Down usamos um resistor de 10k na breadboard ligado ao terra/gnd, fazendo com que o estado do push button quando solto será Low/baixo (0V).
A seguir temos o schematics do circuito, que detalha suas conexões e fornece detalhes mais específicos do que o circuito da imagem anterior.
Uma vez criado o circuito, use o código fonte a seguir no Arduino IDE para fazer o upload dele na placa Arduino e assim ver o resultado do circuito em funcionamento.
// define o pino onde será conectado o push button
#define BTN_PIN 2
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // inicializa o led como output/saída
pinMode(BTN_PIN, INPUT); // inicializa o pino do push button da placa Arduino como input/entrada
}
void loop() {
int valorBtn = digitalRead(BTN_PIN); // faz a leitura do estado corrente do push button
if (valorBtn == HIGH) { // caso push button pressionado
digitalWrite(LED_BUILTIN, HIGH); // acende o led
} else { // caso não pressionado
digitalWrite(LED_BUILTIN, LOW); // led apagado
}
}